{
SendDestroyEvent();
- m_isBeingDeleted = true;
-
MacInvalidateBorders() ;
#ifndef __WXUNIVERSAL__
if ( frame )
{
if ( frame->GetLastFocus() == this )
- frame->SetLastFocus((wxWindow*)NULL);
+ frame->SetLastFocus(NULL);
break;
}
}
wxFont font ;
#if wxOSX_USE_ATSU_TEXT
- ControlSize size ;
ThemeFontID themeFont = kThemeSystemFont ;
// we will get that from the settings later
switch ( variant )
{
case wxWINDOW_VARIANT_NORMAL :
- size = kControlSizeNormal;
themeFont = kThemeSystemFont ;
break ;
case wxWINDOW_VARIANT_SMALL :
- size = kControlSizeSmall;
themeFont = kThemeSmallSystemFont ;
break ;
case wxWINDOW_VARIANT_MINI :
// not always defined in the headers
- size = 3 ;
themeFont = 109 ;
break ;
case wxWINDOW_VARIANT_LARGE :
- size = kControlSizeLarge;
themeFont = kThemeSystemFont ;
break ;
void wxWindowMac::DoCaptureMouse()
{
wxApp::s_captureWindow = (wxWindow*) this ;
+ m_peer->CaptureMouse() ;
}
wxWindow * wxWindowBase::GetCapture()
void wxWindowMac::DoReleaseMouse()
{
wxApp::s_captureWindow = NULL ;
+
+ m_peer->ReleaseMouse() ;
}
#if wxUSE_DRAG_AND_DROP
m_peer->GetContentArea( left, top, innerwidth, innerheight );
m_peer->GetSize( outerwidth, outerheight );
- sizeTotal.x += left + (outerwidth-innerwidth);
- sizeTotal.y += top + (outerheight-innerheight);
+ sizeTotal.x += outerwidth-innerwidth;
+ sizeTotal.y += outerheight-innerheight;
sizeTotal.x += MacGetLeftBorderSize() + MacGetRightBorderSize() ;
sizeTotal.y += MacGetTopBorderSize() + MacGetBottomBorderSize() ;
wxASSERT_MSG( m_cursor.Ok(),
wxT("cursor must be valid after call to the base version"));
- wxWindowMac *mouseWin = 0 ;
-#if wxOSX_USE_CARBON
- {
- wxNonOwnedWindow *tlw = MacGetTopLevelWindow() ;
- WindowRef window = (WindowRef) ( tlw ? tlw->GetWXWindow() : 0 ) ;
-
- ControlPartCode part ;
- ControlRef control ;
- Point pt ;
- #if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5
- HIPoint hiPoint ;
- HIGetMousePosition(kHICoordSpaceWindow, window, &hiPoint);
- pt.h = hiPoint.x;
- pt.v = hiPoint.y;
- #else
- GetGlobalMouse( &pt );
- int x = pt.h;
- int y = pt.v;
- ScreenToClient(&x, &y);
- pt.h = x;
- pt.v = y;
-#endif
- control = FindControlUnderMouse( pt , window , &part ) ;
- if ( control )
- mouseWin = wxFindWindowFromWXWidget( (WXWidget) control ) ;
-
- }
-#endif
-
- if ( mouseWin == this && !wxIsBusy() )
- m_cursor.MacInstall() ;
+ if ( GetPeer() != NULL )
+ GetPeer()->SetCursor( m_cursor );
return true ;
}
#endif
}
-void wxWindowMac::MacHandleControlClick(WXWidget WXUNUSED(control),
- wxInt16 WXUNUSED(controlpart),
- bool WXUNUSED(mouseStillDown))
+void wxWindowMac::TriggerScrollEvent( wxEventType WXUNUSED(scrollEvent) )
{
}
return wxWindowBase::IsShownOnScreen();
}
+bool wxWindowMac::HandleKeyEvent( 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
//