- wxMacCarbonEvent wakeupEvent;
- wakeupEvent.Create( 'WXMC', 'WXMC', GetCurrentEventTime(),
- kEventAttributeNone );
- err = PostEventToQueue(GetMainEventQueue(), wakeupEvent,
- kEventPriorityHigh );
-#endif
-}
-
-#endif // wxUSE_BASE
-
-#if wxUSE_GUI
-
-// ----------------------------------------------------------------------------
-// Native Struct Conversions
-// ----------------------------------------------------------------------------
-
-void wxMacRectToNative( const wxRect *wx , Rect *n )
-{
- n->left = wx->x;
- n->top = wx->y;
- n->right = wx->x + wx->width;
- n->bottom = wx->y + wx->height;
-}
-
-void wxMacNativeToRect( const Rect *n , wxRect* wx )
-{
- wx->x = n->left;
- wx->y = n->top;
- wx->width = n->right - n->left;
- wx->height = n->bottom - n->top;
-}
-
-void wxMacPointToNative( const wxPoint* wx , Point *n )
-{
- n->h = wx->x;
- n->v = wx->y;
-}
-
-void wxMacNativeToPoint( const Point *n , wxPoint* wx )
-{
- wx->x = n->h;
- wx->y = n->v;
-}
-
-// ----------------------------------------------------------------------------
-// Carbon Event Support
-// ----------------------------------------------------------------------------
-
-OSStatus wxMacCarbonEvent::GetParameter(EventParamName inName, EventParamType inDesiredType, UInt32 inBufferSize, void * outData)
-{
- return ::GetEventParameter( m_eventRef , inName , inDesiredType , NULL , inBufferSize , NULL , outData );
-}
-
-OSStatus wxMacCarbonEvent::SetParameter(EventParamName inName, EventParamType inType, UInt32 inBufferSize, const void * inData)
-{
- return ::SetEventParameter( m_eventRef , inName , inType , inBufferSize , inData );
-}
-
-// ----------------------------------------------------------------------------
-// Control Access Support
-// ----------------------------------------------------------------------------
-
-#if wxMAC_USE_QUICKDRAW
-
-IMPLEMENT_DYNAMIC_CLASS( wxMacControl , wxObject )
-
-wxMacControl::wxMacControl()
-{
- Init();
-}
-
-wxMacControl::wxMacControl(wxWindow* peer , bool isRootControl )
-{
- Init();
- m_peer = peer;
- m_isRootControl = isRootControl;
-}
-
-wxMacControl::wxMacControl( wxWindow* peer , ControlRef control )
-{
- Init();
- m_peer = peer;
- m_controlRef = control;
-}
-
-wxMacControl::wxMacControl( wxWindow* peer , WXWidget control )
-{
- Init();
- m_peer = peer;
- m_controlRef = (ControlRef) control;
-}
-
-wxMacControl::~wxMacControl()
-{
-}
-
-void wxMacControl::Init()
-{
- m_peer = NULL;
- m_controlRef = NULL;
- m_needsFocusRect = false;
- m_isRootControl = false;
-}
-
-void wxMacControl::Dispose()
-{
- wxASSERT_MSG( m_controlRef != NULL , wxT("Control Handle already NULL, Dispose called twice ?") );
- wxASSERT_MSG( IsValidControlHandle(m_controlRef) , wxT("Invalid Control Handle (maybe already released) in Dispose") );
-
- // we cannot check the ref count here anymore, as autorelease objects might delete their refs later
- // we can have situations when being embedded, where the control gets deleted behind our back, so only
- // CFRelease if we are safe
- if ( IsValidControlHandle(m_controlRef) )
- CFRelease(m_controlRef);
- m_controlRef = NULL;
-}
-
-void wxMacControl::SetReference( URefCon data )
-{
- SetControlReference( m_controlRef , data );
-}
-
-OSStatus wxMacControl::GetData(ControlPartCode inPartCode , ResType inTag , Size inBufferSize , void * inOutBuffer , Size * outActualSize ) const
-{
- return ::GetControlData( m_controlRef , inPartCode , inTag , inBufferSize , inOutBuffer , outActualSize );
-}
-
-OSStatus wxMacControl::GetDataSize(ControlPartCode inPartCode , ResType inTag , Size * outActualSize ) const
-{
- 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 )
-{
- return SendEventToEventTargetWithOptions( event,
- HIObjectGetEventTarget( (HIObjectRef) m_controlRef ), inOptions );
-}
-
-OSStatus wxMacControl::SendHICommand( HICommand &command , OptionBits inOptions )
-{
- wxMacCarbonEvent event( kEventClassCommand , kEventCommandProcess );
-
- event.SetParameter<HICommand>(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 )
-{
- unsigned long finalTicks;
-
- HiliteControl( m_controlRef , part );
- Delay( ticks , &finalTicks );
- HiliteControl( m_controlRef , kControlNoPart );
-}
-
-SInt32 wxMacControl::GetValue() const
-{
- return ::GetControl32BitValue( m_controlRef );
-}
-
-SInt32 wxMacControl::GetMaximum() const
-{
- return ::GetControl32BitMaximum( m_controlRef );
-}
-
-SInt32 wxMacControl::GetMinimum() const
-{
- return ::GetControl32BitMinimum( m_controlRef );
-}
-
-void wxMacControl::SetValue( SInt32 v )
-{
- ::SetControl32BitValue( m_controlRef , v );
-}
-
-void wxMacControl::SetMinimum( SInt32 v )
-{
- ::SetControl32BitMinimum( m_controlRef , v );
-}
-
-void wxMacControl::SetMaximum( SInt32 v )
-{
- ::SetControl32BitMaximum( m_controlRef , v );
-}
-
-void wxMacControl::SetValueAndRange( SInt32 value , SInt32 minimum , SInt32 maximum )
-{
- ::SetControl32BitMinimum( m_controlRef , minimum );
- ::SetControl32BitMaximum( m_controlRef , maximum );
- ::SetControl32BitValue( m_controlRef , value );
-}
-
-OSStatus wxMacControl::SetFocus( ControlFocusPart focusPart )
-{
- return SetKeyboardFocus( GetControlOwner( m_controlRef ), m_controlRef, focusPart );
-}
-
-bool wxMacControl::HasFocus() const
-{
- ControlRef control;
- GetKeyboardFocus( GetUserFocusWindow() , &control );
- return control == m_controlRef;
-}
-
-void wxMacControl::SetNeedsFocusRect( bool needs )
-{
- m_needsFocusRect = needs;
-}
-
-bool wxMacControl::NeedsFocusRect() const
-{
- return m_needsFocusRect;
-}
-
-void wxMacControl::VisibilityChanged(bool WXUNUSED(shown))
-{
-}
-
-void wxMacControl::SuperChangedPosition()
-{
-}
-
-void wxMacControl::SetFont( const wxFont & font , const wxColour& foreground , long windowStyle )
-{
- m_font = font;
-#if wxMAC_USE_CORE_TEXT
- if ( UMAGetSystemVersion() >= 0x1050 )
- {
- HIViewPartCode part = 0;
- HIThemeTextHorizontalFlush flush = kHIThemeTextHorizontalFlushDefault;
- if ( ( windowStyle & wxALIGN_MASK ) & wxALIGN_CENTER_HORIZONTAL )
- flush = kHIThemeTextHorizontalFlushCenter;
- else if ( ( windowStyle & wxALIGN_MASK ) & wxALIGN_RIGHT )
- flush = kHIThemeTextHorizontalFlushRight;
- HIViewSetTextFont( m_controlRef , part , (CTFontRef) font.MacGetCTFont() );
- HIViewSetTextHorizontalFlush( m_controlRef, part, flush );
-
- if ( foreground != *wxBLACK )
- {
- ControlFontStyleRec fontStyle;
- foreground.GetRGBColor( &fontStyle.foreColor );
- fontStyle.flags = kControlUseForeColorMask;
- ::SetControlFontStyle( m_controlRef , &fontStyle );
- }
-
- }