wxMenu *pSubMenu)
: wxMenuItemBase(pParentMenu, id, text, strHelp, kind, pSubMenu)
{
+ // TO DISCUSS on dev : whether we can veto id 0
+ // wxASSERT_MSG( id != 0 || pSubMenu != NULL , wxT("A MenuItem ID of Zero does not work under Mac") ) ;
+
// In other languages there is no difference in naming the Exit/Quit menu item between MacOS and Windows guidelines
// therefore these item must not be translated
- if ( wxStripMenuCodes(m_text).Upper() == "EXIT" )
+ if ( wxStripMenuCodes(m_text).Upper() == wxT("EXIT") )
{
- m_text = "Quit\tCtrl+Q" ;
+ m_text =wxT("Quit\tCtrl+Q") ;
}
m_radioGroup.start = -1;
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()
void wxMenuItem::Check(bool bDoCheck)
{
- wxCHECK_RET( IsCheckable(), "only checkable items may be checked" );
+ wxCHECK_RET( IsCheckable(), wxT("only checkable items may be checked") );
if ( m_isChecked != bDoCheck )
{