]> git.saurik.com Git - wxWidgets.git/commitdiff
added direct HICommand updating
authorStefan Csomor <csomor@advancedconcepts.ch>
Tue, 15 Apr 2003 19:39:44 +0000 (19:39 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Tue, 15 Apr 2003 19:39:44 +0000 (19:39 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20224 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/mac/carbon/menuitem.cpp
src/mac/menuitem.cpp

index 807f2a8ee0903f4da8229c380fd475f7e1df368f..b44993e3705f7cf43f26e7a4f09ba399c5eadd8f 100644 (file)
@@ -99,21 +99,39 @@ void wxMenuItem::UpdateItemStatus()
     if ( !m_parentMenu )
         return ;
         
-    MenuHandle mhandle = MAC_WXHMENU(m_parentMenu->GetHMenu()) ;
-    MenuItemIndex index = m_parentMenu->MacGetIndexFromItem( this ) ;
-    if( mhandle == NULL || index == 0)
-        return ;
-
-      UMAEnableMenuItem( mhandle , index , m_isEnabled ) ;
-      if ( IsCheckable() && IsChecked() )
-        ::SetItemMark( mhandle , index , 0x12 ) ; // checkmark
-    else
-        ::SetItemMark( mhandle , index , 0 ) ; // no mark
+#if TARGET_CARBON
+    if ( UMAGetSystemVersion() >= 0x1000 && GetId() == wxApp::s_macPreferencesMenuItemId)
+    {
+        if ( !IsEnabled() )
+            DisableMenuCommand( NULL , kHICommandPreferences ) ;
+        else
+            EnableMenuCommand( NULL , kHICommandPreferences ) ;
+    }
+    if ( UMAGetSystemVersion() >= 0x1000 && GetId() == wxApp::s_macExitMenuItemId)
+    {
+        if ( !IsEnabled() )
+            DisableMenuCommand( NULL , kHICommandQuit ) ;
+        else
+            EnableMenuCommand( NULL , kHICommandQuit ) ;
+    }
+#endif
+    { 
+        MenuHandle mhandle = MAC_WXHMENU(m_parentMenu->GetHMenu()) ;
+        MenuItemIndex index = m_parentMenu->MacGetIndexFromItem( this ) ;
+        if( mhandle == NULL || index == 0)
+            return ;
+
+          UMAEnableMenuItem( mhandle , index , m_isEnabled ) ;
+          if ( IsCheckable() && IsChecked() )
+            ::SetItemMark( mhandle , index , 0x12 ) ; // checkmark
+        else
+            ::SetItemMark( mhandle , index , 0 ) ; // no mark
 
-       UMASetMenuItemText( mhandle , index , m_text ) ; 
-       wxAcceleratorEntry *entry = wxGetAccelFromString( m_text ) ;
-    UMASetMenuItemShortcut( mhandle , index , entry ) ;
-    delete entry ;
+           UMASetMenuItemText( mhandle , index , m_text ) ; 
+           wxAcceleratorEntry *entry = wxGetAccelFromString( m_text ) ;
+        UMASetMenuItemShortcut( mhandle , index , entry ) ;
+        delete entry ;
+    }
 }
 
 void wxMenuItem::UpdateItemText() 
index 807f2a8ee0903f4da8229c380fd475f7e1df368f..b44993e3705f7cf43f26e7a4f09ba399c5eadd8f 100644 (file)
@@ -99,21 +99,39 @@ void wxMenuItem::UpdateItemStatus()
     if ( !m_parentMenu )
         return ;
         
-    MenuHandle mhandle = MAC_WXHMENU(m_parentMenu->GetHMenu()) ;
-    MenuItemIndex index = m_parentMenu->MacGetIndexFromItem( this ) ;
-    if( mhandle == NULL || index == 0)
-        return ;
-
-      UMAEnableMenuItem( mhandle , index , m_isEnabled ) ;
-      if ( IsCheckable() && IsChecked() )
-        ::SetItemMark( mhandle , index , 0x12 ) ; // checkmark
-    else
-        ::SetItemMark( mhandle , index , 0 ) ; // no mark
+#if TARGET_CARBON
+    if ( UMAGetSystemVersion() >= 0x1000 && GetId() == wxApp::s_macPreferencesMenuItemId)
+    {
+        if ( !IsEnabled() )
+            DisableMenuCommand( NULL , kHICommandPreferences ) ;
+        else
+            EnableMenuCommand( NULL , kHICommandPreferences ) ;
+    }
+    if ( UMAGetSystemVersion() >= 0x1000 && GetId() == wxApp::s_macExitMenuItemId)
+    {
+        if ( !IsEnabled() )
+            DisableMenuCommand( NULL , kHICommandQuit ) ;
+        else
+            EnableMenuCommand( NULL , kHICommandQuit ) ;
+    }
+#endif
+    { 
+        MenuHandle mhandle = MAC_WXHMENU(m_parentMenu->GetHMenu()) ;
+        MenuItemIndex index = m_parentMenu->MacGetIndexFromItem( this ) ;
+        if( mhandle == NULL || index == 0)
+            return ;
+
+          UMAEnableMenuItem( mhandle , index , m_isEnabled ) ;
+          if ( IsCheckable() && IsChecked() )
+            ::SetItemMark( mhandle , index , 0x12 ) ; // checkmark
+        else
+            ::SetItemMark( mhandle , index , 0 ) ; // no mark
 
-       UMASetMenuItemText( mhandle , index , m_text ) ; 
-       wxAcceleratorEntry *entry = wxGetAccelFromString( m_text ) ;
-    UMASetMenuItemShortcut( mhandle , index , entry ) ;
-    delete entry ;
+           UMASetMenuItemText( mhandle , index , m_text ) ; 
+           wxAcceleratorEntry *entry = wxGetAccelFromString( m_text ) ;
+        UMASetMenuItemShortcut( mhandle , index , entry ) ;
+        delete entry ;
+    }
 }
 
 void wxMenuItem::UpdateItemText()