X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d13ea1bd962a1b66de387443249e4c8e81d75a39..02f463e9cc49326438c4b2f8dfb28dc4ecf7557e:/src/mac/carbon/utils.cpp diff --git a/src/mac/carbon/utils.cpp b/src/mac/carbon/utils.cpp index 916b83725d..258c28bcf1 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) @@ -1277,11 +1281,64 @@ OSStatus wxMacCarbonEvent::GetParameter(EventParamName inName, EventParamType in return ::GetEventParameter( m_eventRef , inName , inDesiredType , NULL , inBufferSize , NULL , outData ) ; } -OSStatus wxMacCarbonEvent::SetParameter(EventParamName inName, EventParamType inType, UInt32 inBufferSize, void * inData) +OSStatus wxMacCarbonEvent::SetParameter(EventParamName inName, EventParamType inType, UInt32 inBufferSize, const void * inData) { 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 ) ; +} + +OSStatus wxMacControl::SendEvent( EventRef event , OptionBits inOptions ) +{ +#if TARGET_API_MAC_OSX + return SendEventToEventTargetWithOptions( event, + HIObjectGetEventTarget( (HIObjectRef) m_controlRef ), inOptions ); +#else + #pragma unused(inOptions) + return SendEventToEventTarget(event,GetControlEventTarget( m_controlRef ) ) ; +#endif +} + +OSStatus wxMacControl::SendHICommand( HICommand &command , OptionBits inOptions ) +{ + wxMacCarbonEvent event( kEventClassCommand , kEventCommandProcess ) ; + event.SetParameter(kEventParamDirectObject,command) ; + return SendEvent( event , inOptions ) ; +} + +OSStatus wxMacControl::SendHICommand( UInt32 commandID , OptionBits inOptions ) +{ + HICommand command ; + memset( &command, 0 , sizeof(command) ) ; + command.commandID = commandID ; + return SendHICommand( command , inOptions ) ; +} + +void wxMacControl::Flash( ControlPartCode part , UInt32 ticks ) +{ + HiliteControl( m_controlRef , part ) ; + unsigned long finalTicks ; + Delay( ticks , &finalTicks ) ; + HiliteControl( m_controlRef , kControlNoPart ) ; +} + // ---------------------------------------------------------------------------- // debugging support // ----------------------------------------------------------------------------