X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ada175836e7b9e456b7f32d82bfb5f6b21d5608d..c26400bd067ce812a7dd3b090dce0928b8b0e80e:/src/osx/carbon/app.cpp diff --git a/src/osx/carbon/app.cpp b/src/osx/carbon/app.cpp index 22dfa62edd..f4a209b0a7 100644 --- a/src/osx/carbon/app.cpp +++ b/src/osx/carbon/app.cpp @@ -513,7 +513,7 @@ wxMenu* wxFindMenuFromMacCommand( const HICommand &command , wxMenuItem* &item ) GetMenuItemRefCon( command.menu.menuRef , command.menu.menuItemIndex , &refCon ) ; itemMenu = wxFindMenuFromMacMenu( command.menu.menuRef ) ; if ( itemMenu != NULL && refCon != 0) - item = ((wxMenuItemImpl*) refCon)->GetWXPeer() ; + item = (wxMenuItem*) refCon; } } #endif @@ -866,20 +866,12 @@ bool wxApp::ProcessIdle() return wxAppBase::ProcessIdle(); } -#if wxOSX_USE_COCOA_OR_CARBON - int wxApp::OnRun() { wxMacAutoreleasePool pool; return wxAppBase::OnRun(); } -#else - -// iPhone version in utils.mm - -#endif - #if wxOSX_USE_CARBON bool wxApp::DoInitGui() { @@ -1072,6 +1064,13 @@ wxApp::wxApp() m_macCurrentEvent = NULL ; m_macCurrentEventHandlerCallRef = NULL ; m_macEventPosted = NULL ; + m_macPool = new wxMacAutoreleasePool(); +} + +wxApp::~wxApp() +{ + if (m_macPool) + delete m_macPool; } CFMutableArrayRef GetAutoReleaseArray() @@ -1087,6 +1086,13 @@ void wxApp::MacAddToAutorelease( void* cfrefobj ) CFArrayAppendValue( GetAutoReleaseArray(), cfrefobj ); } +void wxApp::MacReleaseAutoreleasePool() +{ + if (m_macPool) + delete m_macPool; + m_macPool = new wxMacAutoreleasePool(); +} + void wxApp::OnIdle(wxIdleEvent& WXUNUSED(event)) { // If they are pending events, we must process them: pending events are @@ -1309,6 +1315,12 @@ int wxMacKeyCodeToModifier(wxKeyCode key) } #endif +#if wxOSX_USE_COCOA && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6 + +// defined in utils.mm + +#elif wxOSX_USE_COCOA_OR_CARBON + wxMouseState wxGetMouseState() { wxMouseState ms; @@ -1317,7 +1329,6 @@ wxMouseState wxGetMouseState() ms.SetX(pt.x); ms.SetY(pt.y); -#if wxOSX_USE_CARBON UInt32 buttons = GetCurrentButtonState(); ms.SetLeftDown( (buttons & 0x01) != 0 ); ms.SetMiddleDown( (buttons & 0x04) != 0 ); @@ -1328,12 +1339,12 @@ wxMouseState wxGetMouseState() ms.SetShiftDown(modifiers & shiftKey); ms.SetAltDown(modifiers & optionKey); ms.SetMetaDown(modifiers & cmdKey); -#else - // TODO -#endif + return ms; } +#endif + // TODO : once the new key/char handling is tested, move all the code to wxWindow bool wxApp::MacSendKeyDownEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey , wxChar uniChar )