X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/facd6764872eede45605ba7c9dfa0e1d0c708fa2..adb799d6ef8e1ba754ab08b26e64fa40219f95f8:/src/mac/carbon/utils.cpp diff --git a/src/mac/carbon/utils.cpp b/src/mac/carbon/utils.cpp index 45e9cde839..5c4da3a625 100644 --- a/src/mac/carbon/utils.cpp +++ b/src/mac/carbon/utils.cpp @@ -198,11 +198,15 @@ long wxGetFreeMemory() void wxUsleep(unsigned long milliseconds) { + // TODO remove if we don't encounter any other problemsy + /* clock_t start = clock() ; do { YieldToAnyThread() ; } while( clock() - start < milliseconds / 1000.0 * CLOCKS_PER_SEC ) ; + */ + wxThread::Sleep( milliseconds ) ; } void wxSleep(int nSecs) @@ -533,15 +537,6 @@ bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree) // wxMac Specific utility functions //--------------------------------------------------------------------------- -Rect wxMacGetBoundsForControl( wxWindow* window , const wxPoint& pos , const wxSize &size ) -{ - int x ,y , w ,h ; - - window->MacGetBoundsForControl( pos , size , x , y, w, h ) ; - Rect bounds = { y , x , y+h , x+w }; - return bounds ; -} - void wxMacStringToPascal( const wxString&from , StringPtr to ) { wxCharBuffer buf = from.mb_str( wxConvLocal ) ; @@ -1233,6 +1228,49 @@ void wxMacConvertNewlines10To13( wxChar * data ) } #endif +// ---------------------------------------------------------------------------- +// Common Event Support +// ---------------------------------------------------------------------------- + +#endif // wxUSE_GUI + +#if wxUSE_BASE + +extern ProcessSerialNumber gAppProcess ; + +void wxMacWakeUp() +{ + ProcessSerialNumber psn ; + Boolean isSame ; + psn.highLongOfPSN = 0 ; + psn.lowLongOfPSN = kCurrentProcess ; + SameProcess( &gAppProcess , &psn , &isSame ) ; + if ( isSame ) + { +#if TARGET_CARBON + EventRef dummyEvent ; + OSStatus err = MacCreateEvent(nil, 'WXMC', 'WXMC', GetCurrentEventTime(), + kEventAttributeNone, &dummyEvent); + if (err == noErr) + { + err = PostEventToQueue(GetMainEventQueue(), dummyEvent, + kEventPriorityHigh); + } +#else + PostEvent( nullEvent , 0 ) ; +#endif + } + else + { + WakeUpProcess( &gAppProcess ) ; + } +} + +#endif // wxUSE_BASE + +#if wxUSE_GUI + + // ---------------------------------------------------------------------------- // Carbon Event Support // ---------------------------------------------------------------------------- @@ -1248,6 +1286,25 @@ OSStatus wxMacCarbonEvent::SetParameter(EventParamName inName, EventParamType in return ::SetEventParameter( m_eventRef , inName , inType , inBufferSize , inData ) ; } +// ---------------------------------------------------------------------------- +// Control Access Support +// ---------------------------------------------------------------------------- + +OSStatus wxMacControl::GetData(ControlPartCode inPartCode , ResType inTag , Size inBufferSize , void * inOutBuffer , Size * outActualSize ) +{ + return ::GetControlData( m_controlRef , inPartCode , inTag , inBufferSize , inOutBuffer , outActualSize ) ; +} + +OSStatus wxMacControl::GetDataSize(ControlPartCode inPartCode , ResType inTag , Size * outActualSize ) +{ + return ::GetControlDataSize( m_controlRef , inPartCode , inTag , outActualSize ) ; +} + +OSStatus wxMacControl::SetData(ControlPartCode inPartCode , ResType inTag , Size inSize , const void * inData) +{ + return ::SetControlData( m_controlRef , inPartCode , inTag , inSize , inData ) ; +} + // ---------------------------------------------------------------------------- // debugging support // ----------------------------------------------------------------------------