X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/655719367ac5e131d9642e5783f3ecf64d1a3385..2f36e8dce5df017e609309190bc94fd45bad5293:/src/mac/classic/app.cpp diff --git a/src/mac/classic/app.cpp b/src/mac/classic/app.cpp index 85c556b21d..a607598c22 100644 --- a/src/mac/classic/app.cpp +++ b/src/mac/classic/app.cpp @@ -9,10 +9,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "app.h" -#endif - #include "wx/defs.h" #include "wx/window.h" @@ -85,15 +81,12 @@ static EventTime sleepTime = kEventDurationNoWait ; static long sleepTime = 0 ; #endif -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler) BEGIN_EVENT_TABLE(wxApp, wxEvtHandler) EVT_IDLE(wxApp::OnIdle) EVT_END_SESSION(wxApp::OnEndSession) EVT_QUERY_END_SESSION(wxApp::OnQueryEndSession) END_EVENT_TABLE() -#endif - const short kMacMinHeap = (29 * 1024) ; // platform specific static variables @@ -389,7 +382,7 @@ MenuEventHandler( EventHandlerCallRef handler , EventRef event , void *data ) // due to the rather low-level event API of wxWidgets, we cannot use RunApplicationEventLoop // but have to use ReceiveNextEvent dealing with events manually, therefore we also have -// deal with clicks in the menu bar explicitely +// to deal with clicks in the menu bar explicitly pascal OSStatus wxMacWindowEventHandler( EventHandlerCallRef handler , EventRef event , void *data ) ; @@ -1479,7 +1472,7 @@ void wxApp::MacHandleModifierEvents( WXEVENTREF evr ) event.m_x = ev->where.h; event.m_y = ev->where.v; - event.m_timeStamp = ev->when; + event.SetTimestamp( ev->when ); wxWindow* focus = wxWindow::FindFocus() ; event.SetEventObject(focus); @@ -1533,7 +1526,7 @@ void wxApp::MacHandleMouseDownEvent( WXEVENTREF evr ) ::GetWindowAttributes( frontWindow , &frontWindowAttributes ) ; short windowPart = ::FindWindow(ev->where, &window); - wxTopLevelWindowMac* win = wxFindWinFromMacWindow( window ) ; + wxTopLevelWindowMac* win = wxFindWinFromMacWindow( (WXWindow) window ) ; if ( wxPendingDelete.Member(win) ) return ; @@ -1707,7 +1700,7 @@ void wxApp::MacHandleMouseUpEvent( WXEVENTREF evr ) break ; default: { - wxTopLevelWindowMac* win = wxFindWinFromMacWindow( window ) ; + wxTopLevelWindowMac* win = wxFindWinFromMacWindow( (WXWindow) window ) ; if ( win ) win->MacMouseUp( ev , windowPart ) ; } @@ -1853,21 +1846,12 @@ int wxKeyCodeToMacModifier(wxKeyCode key) bool wxGetKeyState(wxKeyCode key) //virtual key code if < 10.2.x, else see below { -#if __WXMAC_CARBON__ -//#ifdef __DARWIN__ -// wxHIDKeyboard keyboard; -// return keyboard.IsActive(key); -//#else -// TODO: Have it use HID Manager on OSX... -//if OS X > 10.2 (i.e. 10.2.x) -//a known apple bug prevents the system from determining led -//states with GetKeys... can only determine caps lock led - return !!(GetCurrentKeyModifiers() & wxKeyCodeToMacModifier(key)); -#else - KeyMap keymap; - GetKeys(keymap); - return !!(BitTst(keymap, (sizeof(KeyMap)*8) - key)); -#endif + wxASSERT_MSG(key != WXK_LBUTTON && key != WXK_RBUTTON && key != + WXK_MBUTTON, wxT("can't use wxGetKeyState() for mouse buttons")); + + KeyMap keymap; + GetKeys(keymap); + return !!(BitTst(keymap, (sizeof(KeyMap)*8) - key)); } #if !TARGET_CARBON @@ -1960,7 +1944,7 @@ bool wxApp::MacSendKeyDownEvent( wxWindow* focus , long keymessage , long modifi event.m_x = wherex; event.m_y = wherey; - event.m_timeStamp = when; + event.SetTimestamp(when); event.SetEventObject(focus); handled = focus->GetEventHandler()->ProcessEvent( event ) ; if ( handled && event.GetSkipped() ) @@ -2025,7 +2009,7 @@ bool wxApp::MacSendKeyDownEvent( wxWindow* focus , long keymessage , long modifi { // if window is not having a focus still testing for default enter or cancel // TODO add the UMA version for ActiveNonFloatingWindow - wxWindow* focus = wxFindWinFromMacWindow( FrontWindow() ) ; + wxWindow* focus = wxFindWinFromMacWindow( (WXWindow) FrontWindow() ) ; if ( focus ) { if ( keyval == WXK_RETURN ) @@ -2087,7 +2071,7 @@ bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifier event.m_x = wherex; event.m_y = wherey; - event.m_timeStamp = when; + event.SetTimestamp(when); event.SetEventObject(focus); handled = focus->GetEventHandler()->ProcessEvent( event ) ; @@ -2109,7 +2093,7 @@ void wxApp::MacHandleActivateEvent( WXEVENTREF evr ) // if it is a floater we activate/deactivate the front non-floating window instead window = ::FrontNonFloatingWindow() ; } - wxTopLevelWindowMac* win = wxFindWinFromMacWindow( window ) ; + wxTopLevelWindowMac* win = wxFindWinFromMacWindow( (WXWindow) window ) ; if ( win ) win->MacActivate( ev->when , activate ) ; } @@ -2119,7 +2103,7 @@ void wxApp::MacHandleUpdateEvent( WXEVENTREF evr ) { EventRecord* ev = (EventRecord*) evr ; WindowRef window = (WindowRef) ev->message ; - wxTopLevelWindowMac * win = wxFindWinFromMacWindow( window ) ; + wxTopLevelWindowMac * win = wxFindWinFromMacWindow( (WXWindow) window ) ; if ( win ) { if ( !wxPendingDelete.Member(win) ) @@ -2177,13 +2161,13 @@ void wxApp::MacHandleOSEvent( WXEVENTREF evr ) if ( oldFrontWindow ) { - wxTopLevelWindowMac* win = wxFindWinFromMacWindow( oldFrontWindow ) ; + wxTopLevelWindowMac* win = wxFindWinFromMacWindow( (WXWindow) oldFrontWindow ) ; if ( win ) win->MacActivate( ev->when , false ) ; } if ( newFrontWindow ) { - wxTopLevelWindowMac* win = wxFindWinFromMacWindow( newFrontWindow ) ; + wxTopLevelWindowMac* win = wxFindWinFromMacWindow( (WXWindow) newFrontWindow ) ; if ( win ) win->MacActivate( ev->when , true ) ; } @@ -2226,7 +2210,7 @@ void wxApp::MacHandleOSEvent( WXEVENTREF evr ) event.m_metaDown = ev->modifiers & cmdKey; event.m_x = ev->where.h; event.m_y = ev->where.v; - event.m_timeStamp = ev->when; + event.SetTimestamp( ev->when ); event.SetEventObject(this); if ( wxWindow::s_lastMouseWindow ) @@ -2265,7 +2249,7 @@ void wxApp::MacHandleOSEvent( WXEVENTREF evr ) { case inContent : { - wxTopLevelWindowMac* win = wxFindWinFromMacWindow( window ) ; + wxTopLevelWindowMac* win = wxFindWinFromMacWindow( (WXWindow) window ) ; if ( win ) win->MacMouseMoved( ev , windowPart ) ; else @@ -2329,7 +2313,7 @@ void wxApp::MacHandleMouseMovedEvent(wxInt32 x , wxInt32 y ,wxUint32 modifiers , event.m_x = x; event.m_y = y; - event.m_timeStamp = timestamp; + event.SetTimestamp(timestamp); if ( wxWindow::s_lastMouseWindow ) {