]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/app.cpp
Add wxTextEntryBase::ForwardEnableTextChangedEvents().
[wxWidgets.git] / src / osx / carbon / app.cpp
index e413badf9713f0c125793b9afd181ff6ff8cbc79..f4a209b0a78911ff2f73ba4a921c04353a6d3475 100644 (file)
@@ -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,6 +866,12 @@ bool wxApp::ProcessIdle()
     return wxAppBase::ProcessIdle();
 }
 
+int wxApp::OnRun()
+{
+    wxMacAutoreleasePool pool;
+    return wxAppBase::OnRun();
+}
+
 #if wxOSX_USE_CARBON
 bool wxApp::DoInitGui()
 {
@@ -939,6 +945,7 @@ void wxApp::DoCleanUp()
 
 void wxApp::CleanUp()
 {
+    wxMacAutoreleasePool autoreleasepool;
 #if wxUSE_TOOLTIPS
     wxToolTip::RemoveToolTips() ;
 #endif
@@ -1057,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()
@@ -1072,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
@@ -1294,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;
@@ -1302,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 );
@@ -1313,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 )