]> git.saurik.com Git - wxWidgets.git/commitdiff
preferences menu implementation
authorStefan Csomor <csomor@advancedconcepts.ch>
Thu, 16 Jan 2003 06:54:47 +0000 (06:54 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Thu, 16 Jan 2003 06:54:47 +0000 (06:54 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18766 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/mac/app.cpp
src/mac/carbon/app.cpp

index 29dc8af328dea24239cefb5c0cb3b664b6bc0315..cb46018f471393317189594ca0edc58ab0c7695d 100644 (file)
@@ -113,6 +113,7 @@ pascal OSErr AEHandleODoc( const AppleEvent *event , AppleEvent *reply , long re
 pascal OSErr AEHandleOApp( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
 pascal OSErr AEHandlePDoc( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
 pascal OSErr AEHandleQuit( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
 pascal OSErr AEHandleOApp( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
 pascal OSErr AEHandlePDoc( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
 pascal OSErr AEHandleQuit( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
+pascal OSErr AEHandlePreferences( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
 
 
 pascal OSErr AEHandleODoc( const AppleEvent *event , AppleEvent *reply , long WXUNUSED(refcon) )
 
 
 pascal OSErr AEHandleODoc( const AppleEvent *event , AppleEvent *reply , long WXUNUSED(refcon) )
@@ -139,6 +140,22 @@ pascal OSErr AEHandleQuit( const AppleEvent *event , AppleEvent *reply , long WX
     return wxTheApp->MacHandleAEQuit( (AppleEvent*) event , reply) ;
 }
 
     return wxTheApp->MacHandleAEQuit( (AppleEvent*) event , reply) ;
 }
 
+pascal OSErr AEHandlePreferences( const AppleEvent *event , AppleEvent *reply , long WXUNUSED(refcon) )
+{
+    // GD: UNUSED wxApp* app = (wxApp*) refcon ;
+
+    wxMenuBar* mbar = wxMenuBar::MacGetInstalledMenuBar() ;
+    wxMenu* menu = NULL ;
+    wxMenuItem* item = NULL ;
+    if ( mbar )
+    {
+        item = mbar->FindItem( wxApp::s_macPreferencesMenuItemId , &menu ) ;
+    }
+    if ( item != NULL && menu != NULL && mbar != NULL )
+               menu->SendEvent( wxApp::s_macPreferencesMenuItemId ,  -1 ) ;
+       return noErr ;
+}
+
 // new virtual public method in wxApp
 void wxApp::MacOpenFile(const wxString & fileName )
 {
 // new virtual public method in wxApp
 void wxApp::MacOpenFile(const wxString & fileName )
 {
@@ -1183,14 +1200,26 @@ bool wxApp::Initialized()
 
 int wxApp::MainLoop()
 {
 
 int wxApp::MainLoop()
 {
-  m_keepGoing = TRUE;
+       m_keepGoing = TRUE;
 
 
-  while (m_keepGoing)
-  {
-        MacDoOneEvent() ;
-  }
+#if TARGET_CARBON
+       if ( UMAGetSystemVersion() >= 0x1000 )
+       {
+               if ( s_macPreferencesMenuItemId )
+               {
+                       EnableMenuCommand( NULL , kHICommandPreferences ) ;
+                   AEInstallEventHandler( kCoreEventClass , kAEShowPreferences ,
+                                          NewAEEventHandlerUPP(AEHandlePreferences) ,
+                                          (long) wxTheApp , FALSE ) ;
+               }
+       }
+#endif
+       while (m_keepGoing)
+       {
+           MacDoOneEvent() ;
+       }
 
 
-  return 0;
+       return 0;
 }
 
 // Returns TRUE if more time is needed.
 }
 
 // Returns TRUE if more time is needed.
index 29dc8af328dea24239cefb5c0cb3b664b6bc0315..cb46018f471393317189594ca0edc58ab0c7695d 100644 (file)
@@ -113,6 +113,7 @@ pascal OSErr AEHandleODoc( const AppleEvent *event , AppleEvent *reply , long re
 pascal OSErr AEHandleOApp( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
 pascal OSErr AEHandlePDoc( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
 pascal OSErr AEHandleQuit( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
 pascal OSErr AEHandleOApp( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
 pascal OSErr AEHandlePDoc( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
 pascal OSErr AEHandleQuit( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
+pascal OSErr AEHandlePreferences( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
 
 
 pascal OSErr AEHandleODoc( const AppleEvent *event , AppleEvent *reply , long WXUNUSED(refcon) )
 
 
 pascal OSErr AEHandleODoc( const AppleEvent *event , AppleEvent *reply , long WXUNUSED(refcon) )
@@ -139,6 +140,22 @@ pascal OSErr AEHandleQuit( const AppleEvent *event , AppleEvent *reply , long WX
     return wxTheApp->MacHandleAEQuit( (AppleEvent*) event , reply) ;
 }
 
     return wxTheApp->MacHandleAEQuit( (AppleEvent*) event , reply) ;
 }
 
+pascal OSErr AEHandlePreferences( const AppleEvent *event , AppleEvent *reply , long WXUNUSED(refcon) )
+{
+    // GD: UNUSED wxApp* app = (wxApp*) refcon ;
+
+    wxMenuBar* mbar = wxMenuBar::MacGetInstalledMenuBar() ;
+    wxMenu* menu = NULL ;
+    wxMenuItem* item = NULL ;
+    if ( mbar )
+    {
+        item = mbar->FindItem( wxApp::s_macPreferencesMenuItemId , &menu ) ;
+    }
+    if ( item != NULL && menu != NULL && mbar != NULL )
+               menu->SendEvent( wxApp::s_macPreferencesMenuItemId ,  -1 ) ;
+       return noErr ;
+}
+
 // new virtual public method in wxApp
 void wxApp::MacOpenFile(const wxString & fileName )
 {
 // new virtual public method in wxApp
 void wxApp::MacOpenFile(const wxString & fileName )
 {
@@ -1183,14 +1200,26 @@ bool wxApp::Initialized()
 
 int wxApp::MainLoop()
 {
 
 int wxApp::MainLoop()
 {
-  m_keepGoing = TRUE;
+       m_keepGoing = TRUE;
 
 
-  while (m_keepGoing)
-  {
-        MacDoOneEvent() ;
-  }
+#if TARGET_CARBON
+       if ( UMAGetSystemVersion() >= 0x1000 )
+       {
+               if ( s_macPreferencesMenuItemId )
+               {
+                       EnableMenuCommand( NULL , kHICommandPreferences ) ;
+                   AEInstallEventHandler( kCoreEventClass , kAEShowPreferences ,
+                                          NewAEEventHandlerUPP(AEHandlePreferences) ,
+                                          (long) wxTheApp , FALSE ) ;
+               }
+       }
+#endif
+       while (m_keepGoing)
+       {
+           MacDoOneEvent() ;
+       }
 
 
-  return 0;
+       return 0;
 }
 
 // Returns TRUE if more time is needed.
 }
 
 // Returns TRUE if more time is needed.