BEGIN_EVENT_TABLE(wxWindowMac, wxWindowBase)
EVT_NC_PAINT(wxWindowMac::OnNcPaint)
EVT_ERASE_BACKGROUND(wxWindowMac::OnEraseBackground)
- EVT_PAINT(wxWindowMac::OnPaint)
EVT_MOUSE_EVENTS(wxWindowMac::OnMouseEvent)
END_EVENT_TABLE()
{
SendDestroyEvent();
- m_isBeingDeleted = true;
-
MacInvalidateBorders() ;
#ifndef __WXUNIVERSAL__
void wxWindowMac::DoCaptureMouse()
{
wxApp::s_captureWindow = (wxWindow*) this ;
-#ifdef wxOSX_USE_COCOA
- // TODO do we really need this ?
- m_peer->SetFocus() ;
-#endif
m_peer->CaptureMouse() ;
}
// TODO: REMOVE
MacRepositionScrollBars() ; // we might have a real position shift
+ if (sizeFlags & wxSIZE_FORCE_EVENT)
+ {
+ wxSizeEvent event( wxSize(width,height), GetId() );
+ event.SetEventObject( this );
+ HandleWindowEvent( event );
+ }
+
return;
}
wxPaintEvent event;
event.SetTimestamp(time);
event.SetEventObject(this);
- HandleWindowEvent(event);
+ if ( !HandleWindowEvent(event) )
+ {
+ // for native controls: call their native paint method
+ if ( !MacIsUserPane() || ( IsTopLevel() && GetBackgroundStyle() == wxBG_STYLE_SYSTEM ) )
+ {
+ if ( wxTheApp->MacGetCurrentEvent() != NULL && wxTheApp->MacGetCurrentEventHandlerCallRef() != NULL
+ && GetBackgroundStyle() != wxBG_STYLE_TRANSPARENT )
+ CallNextEventHandler(
+ (EventHandlerCallRef)wxTheApp->MacGetCurrentEventHandlerCallRef() ,
+ (EventRef) wxTheApp->MacGetCurrentEvent() ) ;
+ }
+ }
+
handled = true ;
}
}
}
-void wxWindowMac::OnPaint( wxPaintEvent & WXUNUSED(event) )
-{
-#if wxOSX_USE_COCOA_OR_CARBON
- // for native controls: call their native paint method
- if ( !MacIsUserPane() || ( IsTopLevel() && GetBackgroundStyle() == wxBG_STYLE_SYSTEM ) )
- {
- if ( wxTheApp->MacGetCurrentEvent() != NULL && wxTheApp->MacGetCurrentEventHandlerCallRef() != NULL
- && GetBackgroundStyle() != wxBG_STYLE_TRANSPARENT )
- CallNextEventHandler(
- (EventHandlerCallRef)wxTheApp->MacGetCurrentEventHandlerCallRef() ,
- (EventRef) wxTheApp->MacGetCurrentEvent() ) ;
- }
-#endif
-}
-
-void wxWindowMac::MacHandleControlClick(WXWidget WXUNUSED(control),
- wxInt16 WXUNUSED(controlpart),
- bool WXUNUSED(mouseStillDown))
+void wxWindowMac::TriggerScrollEvent( wxEventType WXUNUSED(scrollEvent) )
{
}
return bounds ;
}
-bool wxWindowMac::HandleClicked( double timestampsec )
+bool wxWindowMac::OSXHandleClicked( double timestampsec )
{
return false;
}
wxInt32 wxWindowMac::MacControlHit(WXEVENTHANDLERREF WXUNUSED(handler) , WXEVENTREF event )
{
#if wxOSX_USE_COCOA_OR_CARBON
- if ( HandleClicked( GetEventTime((EventRef)event) ) )
+ if ( OSXHandleClicked( GetEventTime((EventRef)event) ) )
return noErr;
return eventNotHandledErr ;
return wxWindowBase::IsShownOnScreen();
}
+bool wxWindowMac::OSXHandleKeyEvent( wxKeyEvent& event )
+{
+ bool handled = HandleWindowEvent( event ) ;
+ if ( handled && event.GetSkipped() )
+ handled = false ;
+
+#if wxUSE_ACCEL
+ if ( !handled && event.GetEventType() == wxEVT_KEY_DOWN)
+ {
+ wxWindow *ancestor = this;
+ while (ancestor)
+ {
+ int command = ancestor->GetAcceleratorTable()->GetCommand( event );
+ if (command != -1)
+ {
+ wxEvtHandler * const handler = ancestor->GetEventHandler();
+
+ wxCommandEvent command_event( wxEVT_COMMAND_MENU_SELECTED, command );
+ handled = handler->ProcessEvent( command_event );
+
+ if ( !handled )
+ {
+ // accelerators can also be used with buttons, try them too
+ command_event.SetEventType(wxEVT_COMMAND_BUTTON_CLICKED);
+ handled = handler->ProcessEvent( command_event );
+ }
+
+ break;
+ }
+
+ if (ancestor->IsTopLevel())
+ break;
+
+ ancestor = ancestor->GetParent();
+ }
+ }
+#endif // wxUSE_ACCEL
+
+ return handled ;
+}
+
//
// wxWidgetImpl
//