// headers & declarations
// ============================================================================
+#include "wx/app.h"
#include "wx/menu.h"
#include "wx/menuitem.h"
-#include <wx/mac/uma.h>
+#include "wx/mac/uma.h"
// ============================================================================
// implementation
// ============================================================================
// remove inappropriate characters, if useShortcuts is false, the ampersand will not auto-generate a mac menu-shortcut
-wxMenuItem::MacBuildMenuString(StringPtr outMacItemText, SInt16 *outMacShortcutChar , UInt8 *outMacModifiers , const char *inItemText , bool useShortcuts )
+int wxMenuItem::MacBuildMenuString(StringPtr outMacItemText, SInt16 *outMacShortcutChar , UInt8 *outMacModifiers , const char *inItemText , bool useShortcuts )
{
char *p = (char *) &outMacItemText[1] ;
short macModifiers = 0 ;
// ctor & dtor
// -----------
-wxMenuItem::wxMenuItem(wxMenu *pParentMenu, int id,
- const wxString& text, const wxString& strHelp,
- bool bCheckable,
+wxMenuItem::wxMenuItem(wxMenu *pParentMenu,
+ int id,
+ const wxString& text,
+ const wxString& strHelp,
+ wxItemKind kind,
wxMenu *pSubMenu)
+ : wxMenuItemBase(pParentMenu, id, text, strHelp, kind, pSubMenu)
{
- wxASSERT( pParentMenu != NULL );
-
- m_parentMenu = pParentMenu;
- m_subMenu = pSubMenu;
- m_isEnabled = TRUE;
- m_isChecked = FALSE;
- m_id = id;
- m_text = text;
- m_isCheckable = bCheckable;
- m_help = strHelp;
-
-
- if ( m_text == "E&xit" ||m_text == "Exit" )
+ // VZ: what about translations?? (FIXME)
+ if ( m_text == "E&xit" ||m_text == "Exit" ||m_text.Left(5) == "Exit\t" || m_text.Left(6) == "E&xit\t" )
{
m_text = "Quit\tCtrl+Q" ;
}
if ( m_subMenu == NULL )
{
// normal menu item
- if ( m_parentMenu->GetHMenu() )
+ if ( MAC_WXHMENU(m_parentMenu->GetHMenu()) )
{
int index = m_parentMenu->MacGetIndexFromItem( this ) ;
if ( index >= 1 )
{
if ( bDoEnable )
- UMAEnableMenuItem( m_parentMenu->GetHMenu() , index ) ;
+ UMAEnableMenuItem( MAC_WXHMENU(m_parentMenu->GetHMenu()) , index ) ;
else
- UMADisableMenuItem( m_parentMenu->GetHMenu() , index ) ;
+ UMADisableMenuItem( MAC_WXHMENU(m_parentMenu->GetHMenu()) , index ) ;
}
}
}
else
{
// submenu
- if ( m_parentMenu->GetHMenu() )
+ if ( MAC_WXHMENU(m_parentMenu->GetHMenu()) )
{
int index = m_parentMenu->MacGetIndexFromItem( this ) ;
if ( index >= 1 )
{
if ( bDoEnable )
- UMAEnableMenuItem( m_parentMenu->GetHMenu() , index ) ;
+ UMAEnableMenuItem( MAC_WXHMENU(m_parentMenu->GetHMenu()) , index ) ;
else
- UMADisableMenuItem( m_parentMenu->GetHMenu() , index ) ;
+ UMADisableMenuItem( MAC_WXHMENU(m_parentMenu->GetHMenu()) , index ) ;
}
}
}
if ( m_isChecked != bDoCheck )
{
m_isChecked = bDoCheck;
- if ( m_parentMenu->GetHMenu() )
+ if ( MAC_WXHMENU(m_parentMenu->GetHMenu()) )
{
int index = m_parentMenu->MacGetIndexFromItem( this ) ;
if ( index >= 1 )
{
if ( bDoCheck )
- ::SetItemMark( m_parentMenu->GetHMenu() , index , 0x12 ) ; // checkmark
+ ::SetItemMark( MAC_WXHMENU(m_parentMenu->GetHMenu()) , index , 0x12 ) ; // checkmark
else
- ::SetItemMark( m_parentMenu->GetHMenu() , index , 0 ) ; // no mark
+ ::SetItemMark( MAC_WXHMENU(m_parentMenu->GetHMenu()) , index , 0 ) ; // no mark
}
}
}
// OWNER_DRAWN_ONLY( wxOwnerDrawn::SetName(text) );
wxCHECK_RET( m_parentMenu && m_parentMenu->GetHMenu(), wxT("menuitem without menu") );
- if ( m_parentMenu->GetHMenu() )
+ if ( MAC_WXHMENU(m_parentMenu->GetHMenu()) )
{
int index = m_parentMenu->MacGetIndexFromItem( this ) ;
if ( index >= 1 )
{
Str255 label;
MacBuildMenuString( label , NULL , NULL , text ,false);
- UMASetMenuItemText( m_parentMenu->GetHMenu() , index , label ) ; // checkmark
+ ::SetMenuItemText( MAC_WXHMENU(m_parentMenu->GetHMenu()) , index , label ) ; // checkmark
}
}
int id,
const wxString& name,
const wxString& help,
- bool isCheckable,
+ wxItemKind kind,
wxMenu *subMenu)
{
- return new wxMenuItem(parentMenu, id, name, help, isCheckable, subMenu);
+ return new wxMenuItem(parentMenu, id, name, help, kind, subMenu);
}