Menu label consistency changes

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48023 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2007-08-11 17:54:59 +00:00
parent afb6a92fee
commit 52af3158e9
39 changed files with 304 additions and 195 deletions

View File

@@ -102,8 +102,8 @@ public:
virtual void EnableTop(size_t pos, bool enable); virtual void EnableTop(size_t pos, bool enable);
virtual bool IsEnabledTop(size_t pos) const; virtual bool IsEnabledTop(size_t pos) const;
virtual void SetLabelTop(size_t pos, const wxString& label); virtual void SetMenuLabel(size_t pos, const wxString& label);
virtual wxString GetLabelTop(size_t pos) const; virtual wxString GetMenuLabel(size_t pos) const;
virtual void Attach(wxFrame *frame); virtual void Attach(wxFrame *frame);
virtual void Detach(); virtual void Detach();

View File

@@ -63,7 +63,7 @@ protected:
// ------------------------------------------------------------------------ // ------------------------------------------------------------------------
public: public:
// override base class virtuals to update the item appearance on screen // override base class virtuals to update the item appearance on screen
virtual void SetText(const wxString& text); virtual void SetItemLabel(const wxString& text);
virtual void SetCheckable(bool checkable); virtual void SetCheckable(bool checkable);
virtual void Enable(bool enable = TRUE); virtual void Enable(bool enable = TRUE);

View File

@@ -34,8 +34,8 @@ public:
virtual wxMenuItem* FindItem( int id, wxMenu **menu = NULL ) const; virtual wxMenuItem* FindItem( int id, wxMenu **menu = NULL ) const;
virtual void EnableTop( size_t pos, bool flag ); virtual void EnableTop( size_t pos, bool flag );
virtual void SetLabelTop( size_t pos, const wxString& label ); virtual void SetMenuLabel( size_t pos, const wxString& label );
virtual wxString GetLabelTop( size_t pos ) const; virtual wxString GetMenuLabel( size_t pos ) const;
void SetLayoutDirection(wxLayoutDirection dir); void SetLayoutDirection(wxLayoutDirection dir);
wxLayoutDirection GetLayoutDirection() const; wxLayoutDirection GetLayoutDirection() const;

View File

@@ -28,7 +28,8 @@ public:
virtual ~wxMenuItem(); virtual ~wxMenuItem();
// implement base class virtuals // implement base class virtuals
virtual void SetText( const wxString& str ); virtual void SetItemLabel( const wxString& str );
virtual wxString GetItemLabel() const;
virtual void Enable( bool enable = TRUE ); virtual void Enable( bool enable = TRUE );
virtual void Check( bool check = TRUE ); virtual void Check( bool check = TRUE );
virtual bool IsChecked() const; virtual bool IsChecked() const;
@@ -77,6 +78,5 @@ private:
DECLARE_DYNAMIC_CLASS(wxMenuItem) DECLARE_DYNAMIC_CLASS(wxMenuItem)
}; };
#endif #endif
//__GTKMENUITEMH__ //__GTKMENUITEMH__

View File

@@ -34,8 +34,8 @@ public:
virtual wxMenuItem* FindItem( int id, wxMenu **menu = NULL ) const; virtual wxMenuItem* FindItem( int id, wxMenu **menu = NULL ) const;
virtual void EnableTop( size_t pos, bool flag ); virtual void EnableTop( size_t pos, bool flag );
virtual void SetLabelTop( size_t pos, const wxString& label ); virtual void SetMenuLabel( size_t pos, const wxString& label );
virtual wxString GetLabelTop( size_t pos ) const; virtual wxString GetMenuLabel( size_t pos ) const;
// implementation only from now on // implementation only from now on
void SetInvokingWindow( wxWindow *win ); void SetInvokingWindow( wxWindow *win );

View File

@@ -28,7 +28,8 @@ public:
virtual ~wxMenuItem(); virtual ~wxMenuItem();
// implement base class virtuals // implement base class virtuals
virtual void SetText( const wxString& str ); virtual void SetItemLabel( const wxString& str );
virtual wxString GetItemLabel() const;
virtual void Enable( bool enable = TRUE ); virtual void Enable( bool enable = TRUE );
virtual void Check( bool check = TRUE ); virtual void Check( bool check = TRUE );
virtual bool IsChecked() const; virtual bool IsChecked() const;
@@ -73,6 +74,5 @@ private:
DECLARE_DYNAMIC_CLASS(wxMenuItem) DECLARE_DYNAMIC_CLASS(wxMenuItem)
}; };
#endif #endif
//__GTKMENUITEMH__ //__GTKMENUITEMH__

View File

@@ -119,8 +119,8 @@ public:
virtual wxMenuItem* FindItem( int id, wxMenu **menu = NULL ) const; virtual wxMenuItem* FindItem( int id, wxMenu **menu = NULL ) const;
virtual void EnableTop( size_t pos, bool flag ); virtual void EnableTop( size_t pos, bool flag );
virtual void SetLabelTop( size_t pos, const wxString& label ); virtual void SetMenuLabel( size_t pos, const wxString& label );
virtual wxString GetLabelTop( size_t pos ) const; virtual wxString GetMenuLabel( size_t pos ) const;
virtual bool Enable( bool enable = TRUE ); virtual bool Enable( bool enable = TRUE );
// for virtual function hiding // for virtual function hiding
virtual void Enable( int itemid, bool enable ) virtual void Enable( int itemid, bool enable )

View File

@@ -35,7 +35,7 @@ public:
virtual ~wxMenuItem(); virtual ~wxMenuItem();
// override base class virtuals // override base class virtuals
virtual void SetText(const wxString& strName); virtual void SetItemLabel(const wxString& strName);
virtual void Enable(bool bDoEnable = true); virtual void Enable(bool bDoEnable = true);
virtual void Check(bool bDoCheck = true); virtual void Check(bool bDoCheck = true);

View File

@@ -237,6 +237,9 @@ public:
void SetLabel(int itemid, const wxString& label); void SetLabel(int itemid, const wxString& label);
wxString GetLabel(int itemid) const; wxString GetLabel(int itemid) const;
// Returns the stripped label
wxString GetLabelText(int itemid) const { return wxMenuItem::GetLabelText(GetLabel(itemid)); }
virtual void SetHelpString(int itemid, const wxString& helpString); virtual void SetHelpString(int itemid, const wxString& helpString);
virtual wxString GetHelpString(int itemid) const; virtual wxString GetHelpString(int itemid) const;
@@ -424,8 +427,11 @@ public:
virtual bool IsEnabledTop(size_t WXUNUSED(pos)) const { return true; } virtual bool IsEnabledTop(size_t WXUNUSED(pos)) const { return true; }
// get or change the label of the menu at given position // get or change the label of the menu at given position
virtual void SetLabelTop(size_t pos, const wxString& label) = 0; virtual void SetMenuLabel(size_t pos, const wxString& label) = 0;
virtual wxString GetLabelTop(size_t pos) const = 0; virtual wxString GetMenuLabel(size_t pos) const = 0;
// get the stripped label of the menu at given position
virtual wxString GetMenuLabelText(size_t pos) const { return wxMenuItem::GetLabelText(GetMenuLabel(pos)); }
// item search // item search
// ----------- // -----------
@@ -490,6 +496,12 @@ public:
virtual bool CanBeOutsideClientArea() const { return true; } virtual bool CanBeOutsideClientArea() const { return true; }
#if WXWIN_COMPATIBILITY_2_8
// get or change the label of the menu at given position
wxDEPRECATED( void SetLabelTop(size_t pos, const wxString& label) );
wxDEPRECATED( wxString GetLabelTop(size_t pos) const );
#endif
protected: protected:
// the list of all our menus // the list of all our menus
wxMenuList m_menus; wxMenuList m_menus;
@@ -500,6 +512,19 @@ protected:
DECLARE_NO_COPY_CLASS(wxMenuBarBase) DECLARE_NO_COPY_CLASS(wxMenuBarBase)
}; };
#if WXWIN_COMPATIBILITY_2_8
// get or change the label of the menu at given position
void wxMenuBarBase::SetLabelTop(size_t pos, const wxString& label)
{
SetMenuLabel(pos, label);
}
wxString wxMenuBarBase::GetLabelTop(size_t pos) const
{
return GetMenuLabel(pos);
}
#endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// include the real class declaration // include the real class declaration
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -60,16 +60,23 @@ public:
// the item's text (or name) // the item's text (or name)
// //
// NB: the item's text includes the accelerators and mnemonics info (if // NB: the item's label includes the accelerators and mnemonics info (if
// any), i.e. it may contain '&' or '_' or "\t..." and thus is // any), i.e. it may contain '&' or '_' or "\t..." and thus is
// different from the item's label which only contains the text shown // different from the item's text which only contains the text shown
// in the menu // in the menu. This used to be called SetText.
virtual void SetText(const wxString& str); virtual void SetItemLabel(const wxString& str);
wxString GetLabel() const { return GetLabelFromText(m_text); }
const wxString& GetText() const { return m_text; }
// get the label from text (implemented in platform-specific code) // return the item label including any mnemonics and accelerators.
static wxString GetLabelFromText(const wxString& text); // This used to be called GetText.
virtual wxString GetItemLabel() const { return m_text; }
// return just the text of the item label, without any mnemonics
// This used to be called GetLabel.
virtual wxString GetItemLabelText() const { return GetLabelText(m_text); }
// return just the text part of the given label (implemented in platform-specific code)
// This used to be called GetLabelFromText.
static wxString GetLabelText(const wxString& label);
// what kind of menu item we are // what kind of menu item we are
wxItemKind GetKind() const { return m_kind; } wxItemKind GetKind() const { return m_kind; }
@@ -111,7 +118,19 @@ public:
#if WXWIN_COMPATIBILITY_2_8 #if WXWIN_COMPATIBILITY_2_8
// compatibility only, use new functions in the new code // compatibility only, use new functions in the new code
wxDEPRECATED( void SetName(const wxString& str) ); wxDEPRECATED( void SetName(const wxString& str) );
wxDEPRECATED( const wxString& GetName() const ); wxDEPRECATED( wxString GetName() const );
// Now use GetItemLabelText
wxDEPRECATED( wxString GetLabel() const ) ;
// Now use GetItemLabel
wxDEPRECATED( const wxString& GetText() const );
// Now use GetLabelText to strip the accelerators
wxDEPRECATED( static wxString GetLabelFromText(const wxString& text) );
// Now use SetItemLabel
wxDEPRECATED( virtual void SetText(const wxString& str) );
#endif // WXWIN_COMPATIBILITY_2_8 #endif // WXWIN_COMPATIBILITY_2_8
static wxMenuItem *New(wxMenu *parentMenu, static wxMenuItem *New(wxMenu *parentMenu,
@@ -152,9 +171,13 @@ private:
#if WXWIN_COMPATIBILITY_2_8 #if WXWIN_COMPATIBILITY_2_8
inline void wxMenuItemBase::SetName(const wxString &str) inline void wxMenuItemBase::SetName(const wxString &str)
{ SetText(str); } { SetItemLabel(str); }
inline const wxString& wxMenuItemBase::GetName() const inline wxString wxMenuItemBase::GetName() const
{ return GetText(); } { return GetItemLabel(); }
inline wxString wxMenuItemBase::GetLabel() const
{ return GetLabelFromText(m_text); }
inline const wxString& wxMenuItemBase::GetText() const { return m_text; }
inline void wxMenuItemBase::SetText(const wxString& text) { SetItemLabel(text); }
#endif // WXWIN_COMPATIBILITY_2_8 #endif // WXWIN_COMPATIBILITY_2_8
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -130,8 +130,8 @@ public:
virtual wxMenuItem* FindItem( int id, wxMenu **menu = NULL ) const; virtual wxMenuItem* FindItem( int id, wxMenu **menu = NULL ) const;
virtual void EnableTop( size_t pos, bool flag ); virtual void EnableTop( size_t pos, bool flag );
virtual void SetLabelTop( size_t pos, const wxString& label ); virtual void SetMenuLabel( size_t pos, const wxString& label );
virtual wxString GetLabelTop( size_t pos ) const; virtual wxString GetMenuLabel( size_t pos ) const;
// implementation only from now on // implementation only from now on
// ------------------------------- // -------------------------------

View File

@@ -33,7 +33,7 @@ public:
virtual ~wxMenuItem(); virtual ~wxMenuItem();
// accessors (some more are inherited from wxOwnerDrawn or are below) // accessors (some more are inherited from wxOwnerDrawn or are below)
virtual void SetText(const wxString& label); virtual void SetItemLabel(const wxString& label);
virtual void Enable(bool enable = true); virtual void Enable(bool enable = true);
virtual void Check(bool check = true); virtual void Check(bool check = true);
// included SetBitmap and GetBitmap as copied from the GTK include file // included SetBitmap and GetBitmap as copied from the GTK include file

View File

@@ -163,8 +163,8 @@ public:
virtual wxMenu *Remove(size_t pos); virtual wxMenu *Remove(size_t pos);
virtual void EnableTop( size_t pos, bool flag ); virtual void EnableTop( size_t pos, bool flag );
virtual void SetLabelTop( size_t pos, const wxString& label ); virtual void SetMenuLabel( size_t pos, const wxString& label );
virtual wxString GetLabelTop( size_t pos ) const; virtual wxString GetMenuLabel( size_t pos ) const;
// implementation from now on // implementation from now on
WXHMENU Create(); WXHMENU Create();

View File

@@ -40,7 +40,7 @@ public:
virtual ~wxMenuItem(); virtual ~wxMenuItem();
// override base class virtuals // override base class virtuals
virtual void SetText(const wxString& strName); virtual void SetItemLabel(const wxString& strName);
virtual void SetCheckable(bool checkable); virtual void SetCheckable(bool checkable);
virtual void Enable(bool bDoEnable = true); virtual void Enable(bool bDoEnable = true);

View File

@@ -226,10 +226,10 @@ public:
virtual void EnableTop( size_t nPos virtual void EnableTop( size_t nPos
,bool bFlag ,bool bFlag
); );
virtual void SetLabelTop( size_t nPos virtual void SetMenuLabel( size_t nPos
,const wxString& rLabel ,const wxString& rLabel
); );
virtual wxString GetLabelTop(size_t nPos) const; virtual wxString GetMenuLabel(size_t nPos) const;
// //
// Implementation from now on // Implementation from now on

View File

@@ -64,7 +64,7 @@ public:
// //
// Override base class virtuals // Override base class virtuals
// //
virtual void SetText(const wxString& rStrName); virtual void SetItemLabel(const wxString& rStrName);
virtual void SetCheckable(bool bCheckable); virtual void SetCheckable(bool bCheckable);
virtual void Enable(bool bDoEnable = true); virtual void Enable(bool bDoEnable = true);

View File

@@ -144,8 +144,8 @@ public:
virtual wxMenu *Remove(size_t pos); virtual wxMenu *Remove(size_t pos);
virtual void EnableTop( size_t pos, bool flag ); virtual void EnableTop( size_t pos, bool flag );
virtual void SetLabelTop( size_t pos, const wxString& label ); virtual void SetMenuLabel( size_t pos, const wxString& label );
virtual wxString GetLabelTop( size_t pos ) const; virtual wxString GetMenuLabel( size_t pos ) const;
// implementation from now on // implementation from now on
WXHMENU Create(); WXHMENU Create();

View File

@@ -40,7 +40,7 @@ public:
virtual ~wxMenuItem(); virtual ~wxMenuItem();
// override base class virtuals // override base class virtuals
virtual void SetText(const wxString& strName); virtual void SetItemLabel(const wxString& strName);
virtual void SetCheckable(bool checkable); virtual void SetCheckable(bool checkable);
virtual void Enable(bool bDoEnable = TRUE); virtual void Enable(bool bDoEnable = TRUE);

View File

@@ -155,8 +155,8 @@ public:
virtual void EnableTop(size_t pos, bool enable); virtual void EnableTop(size_t pos, bool enable);
virtual bool IsEnabledTop(size_t pos) const; virtual bool IsEnabledTop(size_t pos) const;
virtual void SetLabelTop(size_t pos, const wxString& label); virtual void SetMenuLabel(size_t pos, const wxString& label);
virtual wxString GetLabelTop(size_t pos) const; virtual wxString GetMenuLabel(size_t pos) const;
virtual void Attach(wxFrame *frame); virtual void Attach(wxFrame *frame);
virtual void Detach(); virtual void Detach();

View File

@@ -29,7 +29,7 @@ public:
virtual ~wxMenuItem(); virtual ~wxMenuItem();
// override base class virtuals to update the item appearance on screen // override base class virtuals to update the item appearance on screen
virtual void SetText(const wxString& text); virtual void SetItemLabel(const wxString& text);
virtual void SetCheckable(bool checkable); virtual void SetCheckable(bool checkable);
virtual void Enable(bool enable = true); virtual void Enable(bool enable = true);

View File

@@ -719,7 +719,7 @@ void MyFrame::OnGetLabelMenu(wxCommandEvent& WXUNUSED(event))
wxCHECK_RET( count, _T("no last menu?") ); wxCHECK_RET( count, _T("no last menu?") );
wxLogMessage(_T("The label of the last menu item is '%s'"), wxLogMessage(_T("The label of the last menu item is '%s'"),
mbar->GetLabelTop(count - 1).c_str()); mbar->GetMenuLabel(count - 1).c_str());
} }
#if wxUSE_TEXTDLG #if wxUSE_TEXTDLG
@@ -734,13 +734,13 @@ void MyFrame::OnSetLabelMenu(wxCommandEvent& WXUNUSED(event))
( (
_T("Enter new label: "), _T("Enter new label: "),
_T("Change last menu text"), _T("Change last menu text"),
mbar->GetLabelTop(count - 1), mbar->GetMenuLabel(count - 1),
this this
); );
if ( !label.empty() ) if ( !label.empty() )
{ {
mbar->SetLabelTop(count - 1, label); mbar->SetMenuLabel(count - 1, label);
} }
} }
@@ -874,14 +874,14 @@ void MyFrame::OnSetLabelMenuItem(wxCommandEvent& WXUNUSED(event))
( (
_T("Enter new label: "), _T("Enter new label: "),
_T("Change last menu item text"), _T("Change last menu item text"),
item->GetLabel(), item->GetItemLabel(),
this this
); );
label.Replace( _T("\\t"), _T("\t") ); label.Replace( _T("\\t"), _T("\t") );
if ( !label.empty() ) if ( !label.empty() )
{ {
item->SetText(label); item->SetItemLabel(label);
} }
} }
} }

View File

@@ -215,11 +215,11 @@ bool wxMenuBar::IsEnabledTop(size_t pos) const
return false; return false;
} }
void wxMenuBar::SetLabelTop(size_t pos, const wxString& label) void wxMenuBar::SetMenuLabel(size_t pos, const wxString& label)
{ {
} }
wxString wxMenuBar::GetLabelTop(size_t pos) const wxString wxMenuBar::GetMenuLabel(size_t pos) const
{ {
wxMenu *menu = GetMenu(pos); wxMenu *menu = GetMenu(pos);
int itemindex = [m_cocoaNSMenu indexOfItemWithSubmenu:menu->GetNSMenu()]; int itemindex = [m_cocoaNSMenu indexOfItemWithSubmenu:menu->GetNSMenu()];

View File

@@ -98,7 +98,7 @@ wxMenuItem *wxMenuItemBase::New(wxMenu *parentMenu,
} }
/* static */ /* static */
wxString wxMenuItemBase::GetLabelFromText(const wxString& text) wxString wxMenuItemBase::GetLabelText(const wxString& text)
{ {
return wxStripMenuCodes(text); return wxStripMenuCodes(text);
} }
@@ -281,9 +281,9 @@ void wxMenuItem::Check(bool check)
} }
} }
void wxMenuItem::SetText(const wxString& label) void wxMenuItem::SetItemLabel(const wxString& label)
{ {
wxMenuItemBase::SetText(label); wxMenuItemBase::SetItemLabel(label);
wxCHECK_RET(m_kind != wxITEM_SEPARATOR, wxT("Separator items do not have titles.")); wxCHECK_RET(m_kind != wxITEM_SEPARATOR, wxT("Separator items do not have titles."));
[m_cocoaNSMenuItem setTitle: wxNSStringWithWxString(wxStripMenuCodes(label))]; [m_cocoaNSMenuItem setTitle: wxNSStringWithWxString(wxStripMenuCodes(label))];
CocoaSetKeyEquivalent(); CocoaSetKeyEquivalent();

View File

@@ -71,7 +71,7 @@ wxMenuItemBase::wxMenuItemBase(wxMenu *parentMenu,
if (m_id == wxID_SEPARATOR) if (m_id == wxID_SEPARATOR)
m_kind = wxITEM_SEPARATOR; m_kind = wxITEM_SEPARATOR;
SetText(text); SetItemLabel(text);
SetHelp(help); SetHelp(help);
} }
@@ -84,7 +84,7 @@ wxMenuItemBase::~wxMenuItemBase()
wxAcceleratorEntry *wxMenuItemBase::GetAccel() const wxAcceleratorEntry *wxMenuItemBase::GetAccel() const
{ {
return wxAcceleratorEntry::Create(GetText()); return wxAcceleratorEntry::Create(GetItemLabel());
} }
void wxMenuItemBase::SetAccel(wxAcceleratorEntry *accel) void wxMenuItemBase::SetAccel(wxAcceleratorEntry *accel)
@@ -96,12 +96,12 @@ void wxMenuItemBase::SetAccel(wxAcceleratorEntry *accel)
text += accel->ToString(); text += accel->ToString();
} }
SetText(text); SetItemLabel(text);
} }
#endif // wxUSE_ACCEL #endif // wxUSE_ACCEL
void wxMenuItemBase::SetText(const wxString& str) void wxMenuItemBase::SetItemLabel(const wxString& str)
{ {
m_text = str; m_text = str;
@@ -125,6 +125,13 @@ void wxMenuItemBase::SetHelp(const wxString& str)
} }
} }
#if WXWIN_COMPATIBILITY_2_8
wxString wxMenuItemBase::GetLabelFromText(const wxString& text)
{
return GetLabelText(text);
}
#endif
bool wxMenuBase::ms_locked = true; bool wxMenuBase::ms_locked = true;
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -283,7 +290,7 @@ bool wxMenuBase::DoDestroy(wxMenuItem *item)
// Finds the item id matching the given string, wxNOT_FOUND if not found. // Finds the item id matching the given string, wxNOT_FOUND if not found.
int wxMenuBase::FindItem(const wxString& text) const int wxMenuBase::FindItem(const wxString& text) const
{ {
wxString label = wxMenuItem::GetLabelFromText(text); wxString label = wxMenuItem::GetLabelText(text);
for ( wxMenuItemList::compatibility_iterator node = m_items.GetFirst(); for ( wxMenuItemList::compatibility_iterator node = m_items.GetFirst();
node; node;
node = node->GetNext() ) node = node->GetNext() )
@@ -545,7 +552,7 @@ void wxMenuBase::SetLabel( int id, const wxString &label )
wxCHECK_RET( item, wxT("wxMenu::SetLabel: no such item") ); wxCHECK_RET( item, wxT("wxMenu::SetLabel: no such item") );
item->SetText(label); item->SetItemLabel(label);
} }
wxString wxMenuBase::GetLabel( int id ) const wxString wxMenuBase::GetLabel( int id ) const
@@ -554,7 +561,7 @@ wxString wxMenuBase::GetLabel( int id ) const
wxCHECK_MSG( item, wxEmptyString, wxT("wxMenu::GetLabel: no such item") ); wxCHECK_MSG( item, wxEmptyString, wxT("wxMenu::GetLabel: no such item") );
return item->GetText(); return item->GetItemLabel();
} }
void wxMenuBase::SetHelpString( int id, const wxString& helpString ) void wxMenuBase::SetHelpString( int id, const wxString& helpString )
@@ -665,14 +672,14 @@ wxMenu *wxMenuBarBase::Remove(size_t pos)
int wxMenuBarBase::FindMenu(const wxString& title) const int wxMenuBarBase::FindMenu(const wxString& title) const
{ {
wxString label = wxMenuItem::GetLabelFromText(title); wxString label = wxMenuItem::GetLabelText(title);
size_t count = GetMenuCount(); size_t count = GetMenuCount();
for ( size_t i = 0; i < count; i++ ) for ( size_t i = 0; i < count; i++ )
{ {
wxString title2 = GetLabelTop(i); wxString title2 = GetMenuLabel(i);
if ( (title2 == title) || if ( (title2 == title) ||
(wxMenuItem::GetLabelFromText(title2) == label) ) (wxMenuItem::GetLabelText(title2) == label) )
{ {
// found // found
return (int)i; return (int)i;
@@ -723,13 +730,13 @@ wxMenuItem *wxMenuBarBase::FindItem(int id, wxMenu **menu) const
int wxMenuBarBase::FindMenuItem(const wxString& menu, const wxString& item) const int wxMenuBarBase::FindMenuItem(const wxString& menu, const wxString& item) const
{ {
wxString label = wxMenuItem::GetLabelFromText(menu); wxString label = wxMenuItem::GetLabelText(menu);
int i = 0; int i = 0;
wxMenuList::compatibility_iterator node; wxMenuList::compatibility_iterator node;
for ( node = m_menus.GetFirst(); node; node = node->GetNext(), i++ ) for ( node = m_menus.GetFirst(); node; node = node->GetNext(), i++ )
{ {
if ( label == wxMenuItem::GetLabelFromText(GetLabelTop(i)) ) if ( label == wxMenuItem::GetLabelText(GetMenuLabel(i)) )
return node->GetData()->FindItem(item); return node->GetData()->FindItem(item);
} }
@@ -783,7 +790,7 @@ void wxMenuBarBase::SetLabel(int id, const wxString& label)
wxCHECK_RET( item, wxT("wxMenuBar::SetLabel(): no such item") ); wxCHECK_RET( item, wxT("wxMenuBar::SetLabel(): no such item") );
item->SetText(label); item->SetItemLabel(label);
} }
wxString wxMenuBarBase::GetLabel(int id) const wxString wxMenuBarBase::GetLabel(int id) const
@@ -793,7 +800,7 @@ wxString wxMenuBarBase::GetLabel(int id) const
wxCHECK_MSG( item, wxEmptyString, wxCHECK_MSG( item, wxEmptyString,
wxT("wxMenuBar::GetLabel(): no such item") ); wxT("wxMenuBar::GetLabel(): no such item") );
return item->GetText(); return item->GetItemLabel();
} }
void wxMenuBarBase::SetHelpString(int id, const wxString& helpString) void wxMenuBarBase::SetHelpString(int id, const wxString& helpString)

View File

@@ -1153,7 +1153,7 @@ bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags)
wxChar *wxStripMenuCodes(const wxChar *in, wxChar *out) wxChar *wxStripMenuCodes(const wxChar *in, wxChar *out)
{ {
#if wxUSE_MENUS #if wxUSE_MENUS
wxString s = wxMenuItem::GetLabelFromText(in); wxString s = wxMenuItem::GetLabelText(in);
#else #else
wxString str(in); wxString str(in);
wxString s = wxStripMenuCodes(str); wxString s = wxStripMenuCodes(str);

View File

@@ -90,6 +90,40 @@ static wxString wxReplaceUnderscore( const wxString& title )
return str; return str;
} }
static wxString wxConvertFromGTKToWXLabel(const wxString& gtkLabel)
{
wxString label;
for ( const wxChar *pc = gtkLabel.c_str(); *pc; pc++ )
{
// '_' is the escape character for GTK+.
if ( *pc == wxT('_') && *(pc+1) == wxT('_'))
{
// An underscore was escaped.
label += wxT('_');
pc++;
}
else if ( *pc == wxT('_') )
{
// Convert GTK+ hotkey symbol to wxWidgets/Windows standard
label += wxT('&');
}
else if ( *pc == wxT('&') )
{
// Double the ampersand to escape it as far as wxWidgets is concerned
label += wxT("&&");
}
else
{
// don't remove ampersands '&' since if we have them in the menu title
// it means that they were doubled to indicate "&" instead of accelerator
label += *pc;
}
}
return label;
}
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// activate message from GTK // activate message from GTK
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -419,7 +453,7 @@ wxMenu *wxMenuBar::Remove(size_t pos)
static int FindMenuItemRecursive( const wxMenu *menu, const wxString &menuString, const wxString &itemString ) static int FindMenuItemRecursive( const wxMenu *menu, const wxString &menuString, const wxString &itemString )
{ {
if (wxMenuItem::GetLabelFromText(menu->GetTitle()) == wxMenuItem::GetLabelFromText(menuString)) if (wxMenuItem::GetLabelText(wxConvertFromGTKToWXLabel(menu->GetTitle())) == wxMenuItem::GetLabelText(menuString))
{ {
int res = menu->FindItem( itemString ); int res = menu->FindItem( itemString );
if (res != wxNOT_FOUND) if (res != wxNOT_FOUND)
@@ -504,7 +538,7 @@ void wxMenuBar::EnableTop( size_t pos, bool flag )
gtk_widget_set_sensitive( menu->m_owner, flag ); gtk_widget_set_sensitive( menu->m_owner, flag );
} }
wxString wxMenuBar::GetLabelTop( size_t pos ) const wxString wxMenuBar::GetMenuLabel( size_t pos ) const
{ {
wxMenuList::compatibility_iterator node = m_menus.Item( pos ); wxMenuList::compatibility_iterator node = m_menus.Item( pos );
@@ -512,26 +546,10 @@ wxString wxMenuBar::GetLabelTop( size_t pos ) const
wxMenu* menu = node->GetData(); wxMenu* menu = node->GetData();
wxString label; return wxConvertFromGTKToWXLabel(menu->GetTitle());
wxString text( menu->GetTitle() );
for ( const wxChar *pc = text.c_str(); *pc; pc++ )
{
if ( *pc == wxT('_') )
{
// '_' is the escape character for GTK+
continue;
}
// don't remove ampersands '&' since if we have them in the menu title
// it means that they were doubled to indicate "&" instead of accelerator
label += *pc;
}
return label;
} }
void wxMenuBar::SetLabelTop( size_t pos, const wxString& label ) void wxMenuBar::SetMenuLabel( size_t pos, const wxString& label )
{ {
wxMenuList::compatibility_iterator node = m_menus.Item( pos ); wxMenuList::compatibility_iterator node = m_menus.Item( pos );
@@ -728,8 +746,19 @@ wxMenuItem::~wxMenuItem()
// return the menu item text without any menu accels // return the menu item text without any menu accels
/* static */ /* static */
wxString wxMenuItemBase::GetLabelFromText(const wxString& text)
// TODO: this is now wrong, because it will be used by public APIs
// to convert from label-with-wxWidgets-hotkeys to plain text,
// and this function converts from GTK+ hotkeys to plain text.
wxString wxMenuItemBase::GetLabelText(const wxString& text)
{ {
// The argument to this function will now always be in wxWidgets standard label
// format, not GTK+ format, so we do what the other ports do.
return wxStripMenuCodes(text);
#if 0
wxString label; wxString label;
for ( const wxChar *pc = text.c_str(); *pc; pc++ ) for ( const wxChar *pc = text.c_str(); *pc; pc++ )
@@ -763,12 +792,18 @@ wxString wxMenuItemBase::GetLabelFromText(const wxString& text)
label += *pc; label += *pc;
} }
// wxPrintf( wxT("GetLabelFromText(): text %s label %s\n"), text.c_str(), label.c_str() ); // wxPrintf( wxT("GetLabelText(): text %s label %s\n"), text.c_str(), label.c_str() );
return label; return label;
#endif
} }
void wxMenuItem::SetText( const wxString& str ) wxString wxMenuItem::GetItemLabel() const
{
return wxConvertFromGTKToWXLabel(m_text);
}
void wxMenuItem::SetItemLabel( const wxString& str )
{ {
// cache some data which must be used later // cache some data which must be used later
bool isstock = wxIsStockID(GetId()); bool isstock = wxIsStockID(GetId());
@@ -863,7 +898,7 @@ void wxMenuItem::SetText( const wxString& str )
} }
// NOTE: this function is different from the similar functions GTKProcessMnemonics() // NOTE: this function is different from the similar functions GTKProcessMnemonics()
// implemented in control.cpp and from wxMenuItemBase::GetLabelFromText... // implemented in control.cpp and from wxMenuItemBase::GetLabelText...
// so there's no real code duplication // so there's no real code duplication
wxString wxMenuItem::GTKProcessMenuItemLabel(const wxString& str, wxString *hotKey) wxString wxMenuItem::GTKProcessMenuItemLabel(const wxString& str, wxString *hotKey)
{ {
@@ -1047,7 +1082,7 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos)
GtkWidget *menuItem; GtkWidget *menuItem;
// cache some data used later // cache some data used later
wxString text = mitem->GetText(); wxString text = mitem->GetItemLabel();
int id = mitem->GetId(); int id = mitem->GetId();
bool isstock = wxIsStockID(id); bool isstock = wxIsStockID(id);
const char *stockid = NULL; const char *stockid = NULL;
@@ -1113,7 +1148,7 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos)
} }
else // a normal item else // a normal item
{ {
// NB: 'text' variable has "_" instead of "&" after mitem->SetText() // NB: 'text' variable has "_" instead of "&" after mitem->SetItemLabel()
// so don't use it // so don't use it
switch ( mitem->GetKind() ) switch ( mitem->GetKind() )
@@ -1161,7 +1196,7 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos)
GdkModifierType accel_mods; GdkModifierType accel_mods;
wxCharBuffer buf = wxGTK_CONV_SYS( GetGtkHotKey(*mitem) ); wxCharBuffer buf = wxGTK_CONV_SYS( GetGtkHotKey(*mitem) );
// wxPrintf( wxT("item: %s hotkey %s\n"), mitem->GetText().c_str(), GetGtkHotKey(*mitem).c_str() ); // wxPrintf( wxT("item: %s hotkey %s\n"), mitem->GetItemLabel().c_str(), GetGtkHotKey(*mitem).c_str() );
if (buf[(size_t)0] != '\0') if (buf[(size_t)0] != '\0')
{ {
gtk_accelerator_parse( (const char*) buf, &accel_key, &accel_mods); gtk_accelerator_parse( (const char*) buf, &accel_key, &accel_mods);

View File

@@ -91,6 +91,41 @@ static wxString wxReplaceUnderscore( const wxString& title )
return str; return str;
} }
static wxString wxConvertFromGTKToWXLabel(const wxString& gtkLabel)
{
wxString label;
for ( const wxChar *pc = gtkLabel.c_str(); *pc; pc++ )
{
// '_' is the escape character for GTK+.
if ( *pc == wxT('_') && *(pc+1) == wxT('_'))
{
// An underscore was escaped.
label += wxT('_');
pc++;
}
else if ( *pc == wxT('_') )
{
// Convert GTK+ hotkey symbol to wxWidgets/Windows standard
label += wxT('&');
}
else if ( *pc == wxT('&') )
{
// Double the ampersand to escape it as far as wxWidgets is concerned
label += wxT("&&");
}
else
{
// don't remove ampersands '&' since if we have them in the menu title
// it means that they were doubled to indicate "&" instead of accelerator
label += *pc;
}
}
return label;
}
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// activate message from GTK // activate message from GTK
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -408,7 +443,7 @@ wxMenu *wxMenuBar::Remove(size_t pos)
static int FindMenuItemRecursive( const wxMenu *menu, const wxString &menuString, const wxString &itemString ) static int FindMenuItemRecursive( const wxMenu *menu, const wxString &menuString, const wxString &itemString )
{ {
if (wxMenuItem::GetLabelFromText(menu->GetTitle()) == wxMenuItem::GetLabelFromText(menuString)) if (wxMenuItem::GetLabelText(wxConvertFromGTKToWXLabel(menu->GetTitle())) == wxMenuItem::GetLabelText(menuString))
{ {
int res = menu->FindItem( itemString ); int res = menu->FindItem( itemString );
if (res != wxNOT_FOUND) if (res != wxNOT_FOUND)
@@ -493,7 +528,7 @@ void wxMenuBar::EnableTop( size_t pos, bool flag )
gtk_widget_set_sensitive( menu->m_owner, flag ); gtk_widget_set_sensitive( menu->m_owner, flag );
} }
wxString wxMenuBar::GetLabelTop( size_t pos ) const wxString wxMenuBar::GetMenuLabel( size_t pos ) const
{ {
wxMenuList::compatibility_iterator node = m_menus.Item( pos ); wxMenuList::compatibility_iterator node = m_menus.Item( pos );
@@ -501,26 +536,10 @@ wxString wxMenuBar::GetLabelTop( size_t pos ) const
wxMenu* menu = node->GetData(); wxMenu* menu = node->GetData();
wxString label; return wxConvertFromGTKToWXLabel(menu->GetTitle());
wxString text( menu->GetTitle() );
for ( const wxChar *pc = text.c_str(); *pc; pc++ )
{
if ( *pc == wxT('_') )
{
// '_' is the escape character for GTK+
continue;
}
// don't remove ampersands '&' since if we have them in the menu title
// it means that they were doubled to indicate "&" instead of accelerator
label += *pc;
}
return label;
} }
void wxMenuBar::SetLabelTop( size_t pos, const wxString& label ) void wxMenuBar::SetMenuLabel( size_t pos, const wxString& label )
{ {
wxMenuList::compatibility_iterator node = m_menus.Item( pos ); wxMenuList::compatibility_iterator node = m_menus.Item( pos );
@@ -734,8 +753,14 @@ wxMenuItem::~wxMenuItem()
// return the menu item text without any menu accels // return the menu item text without any menu accels
/* static */ /* static */
wxString wxMenuItemBase::GetLabelFromText(const wxString& text) wxString wxMenuItemBase::GetLabelText(const wxString& text)
{ {
// The argument to this function will now always be in wxWidgets standard label
// format, not GTK+ format, so we do what the other ports do.
return wxStripMenuCodes(text);
#if 0
wxString label; wxString label;
for ( const wxChar *pc = text.c_str(); *pc; pc++ ) for ( const wxChar *pc = text.c_str(); *pc; pc++ )
@@ -761,12 +786,18 @@ wxString wxMenuItemBase::GetLabelFromText(const wxString& text)
label += *pc; label += *pc;
} }
// wxPrintf( wxT("GetLabelFromText(): text %s label %s\n"), text.c_str(), label.c_str() ); // wxPrintf( wxT("GetLabelText(): text %s label %s\n"), text.c_str(), label.c_str() );
return label; return label;
#endif
} }
void wxMenuItem::SetText( const wxString& string ) wxString wxMenuItem::GetItemLabel() const
{
return wxConvertFromGTKToWXLabel(m_text);
}
void wxMenuItem::SetItemLabel( const wxString& string )
{ {
wxString str = string; wxString str = string;
if ( str.empty() && !IsSeparator() ) if ( str.empty() && !IsSeparator() )
@@ -996,7 +1027,7 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos)
} }
else if (mitem->GetBitmap().Ok()) else if (mitem->GetBitmap().Ok())
{ {
text = mitem->GetText(); text = mitem->GetItemLabel();
const wxBitmap *bitmap = &mitem->GetBitmap(); const wxBitmap *bitmap = &mitem->GetBitmap();
// TODO // TODO
@@ -1008,8 +1039,8 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos)
} }
else // a normal item else // a normal item
{ {
// text has "_" instead of "&" after mitem->SetText() so don't use it // text has "_" instead of "&" after mitem->SetItemLabel() so don't use it
text = mitem->GetText() ; text = mitem->GetItemLabel() ;
switch ( mitem->GetKind() ) switch ( mitem->GetKind() )
{ {
@@ -1062,7 +1093,7 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem, int pos)
GdkModifierType accel_mods; GdkModifierType accel_mods;
wxCharBuffer buf = wxGTK_CONV( GetGtkHotKey(*mitem) ); wxCharBuffer buf = wxGTK_CONV( GetGtkHotKey(*mitem) );
// wxPrintf( wxT("item: %s hotkey %s\n"), mitem->GetText().c_str(), GetGtkHotKey(*mitem).c_str() ); // wxPrintf( wxT("item: %s hotkey %s\n"), mitem->GetItemLabel().c_str(), GetGtkHotKey(*mitem).c_str() );
gtk_accelerator_parse( (const char*) buf, &accel_key, &accel_mods); gtk_accelerator_parse( (const char*) buf, &accel_key, &accel_mods);
if (accel_key != 0) if (accel_key != 0)
{ {

View File

@@ -852,7 +852,7 @@ bool wxMenuBar::Enable(bool enable)
return true; return true;
} }
void wxMenuBar::SetLabelTop(size_t pos, const wxString& label) void wxMenuBar::SetMenuLabel(size_t pos, const wxString& label)
{ {
wxCHECK_RET( pos < GetMenuCount(), wxT("invalid menu index") ); wxCHECK_RET( pos < GetMenuCount(), wxT("invalid menu index") );
@@ -870,10 +870,10 @@ void wxMenuBar::SetLabelTop(size_t pos, const wxString& label)
} }
} }
wxString wxMenuBar::GetLabelTop(size_t pos) const wxString wxMenuBar::GetMenuLabel(size_t pos) const
{ {
wxCHECK_MSG( pos < GetMenuCount(), wxEmptyString, wxCHECK_MSG( pos < GetMenuCount(), wxEmptyString,
wxT("invalid menu index in wxMenuBar::GetLabelTop") ); wxT("invalid menu index in wxMenuBar::GetMenuLabel") );
return m_titles[pos]; return m_titles[pos];
} }

View File

@@ -233,13 +233,13 @@ void wxMenuItem::Check(bool bDoCheck)
} }
} }
void wxMenuItem::SetText(const wxString& text) void wxMenuItem::SetItemLabel(const wxString& text)
{ {
// don't do anything if label didn't change // don't do anything if label didn't change
if ( m_text == text ) if ( m_text == text )
return; return;
wxMenuItemBase::SetText(text); wxMenuItemBase::SetItemLabel(text);
UpdateItemText() ; UpdateItemText() ;
} }
@@ -273,7 +273,7 @@ void wxMenuItem::SetRadioGroupEnd(int end)
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
/* static */ /* static */
wxString wxMenuItemBase::GetLabelFromText(const wxString& text) wxString wxMenuItemBase::GetLabelText(const wxString& text)
{ {
return wxStripMenuCodes(text); return wxStripMenuCodes(text);
} }

View File

@@ -221,7 +221,7 @@ void wxMenuBar::EnableTop(size_t WXUNUSED(pos), bool WXUNUSED(flag))
// wxLogWarning("wxMenuBar::EnableTop not yet implemented."); // wxLogWarning("wxMenuBar::EnableTop not yet implemented.");
} }
void wxMenuBar::SetLabelTop(size_t pos, const wxString& label) void wxMenuBar::SetMenuLabel(size_t pos, const wxString& label)
{ {
wxMenu *menu = GetMenu(pos); wxMenu *menu = GetMenu(pos);
if ( !menu ) if ( !menu )
@@ -236,26 +236,14 @@ void wxMenuBar::SetLabelTop(size_t pos, const wxString& label)
XmNlabelString, label_str(), XmNlabelString, label_str(),
NULL); NULL);
} }
m_titles[i] = label;
} }
wxString wxMenuBar::GetLabelTop(size_t pos) const wxString wxMenuBar::GetMenuLabel(size_t pos) const
{ {
wxMenu *menu = GetMenu(pos); wxCHECK_MSG( pos < GetMenuCount(), wxEmptyString,
if ( menu ) wxT("invalid menu index in wxMenuBar::GetMenuLabel") );
{ return m_titles[pos];
Widget w = (Widget)menu->GetButtonWidget();
if (w)
{
XmString text;
XtVaGetValues(w,
XmNlabelString, &text,
NULL);
return wxXmStringToString( text );
}
}
return wxEmptyString;
} }
bool wxMenuBar::Append(wxMenu * menu, const wxString& title) bool wxMenuBar::Append(wxMenu * menu, const wxString& title)

View File

@@ -137,7 +137,7 @@ void wxMenuItem::Check(bool bDoCheck)
} }
/* static */ /* static */
wxString wxMenuItemBase::GetLabelFromText(const wxString& text) wxString wxMenuItemBase::GetLabelText(const wxString& text)
{ {
return wxStripMenuCodes(text); return wxStripMenuCodes(text);
} }
@@ -308,7 +308,7 @@ void wxMenuItem::DestroyItem(bool full)
} }
} }
void wxMenuItem::SetText(const wxString& label) void wxMenuItem::SetItemLabel(const wxString& label)
{ {
char mnem = wxFindMnemonic (label); char mnem = wxFindMnemonic (label);
wxString label2 = wxStripMenuCodes(label); wxString label2 = wxStripMenuCodes(label);

View File

@@ -398,7 +398,7 @@ void wxFrame::AttachMenuBar(wxMenuBar *menubar)
if( menubar->GetMenuCount() == 1 ) if( menubar->GetMenuCount() == 1 )
{ {
autoMenu = wxTopLevelWindowMSW::ButtonMenu::DuplicateMenu(menubar->GetMenu(0)); autoMenu = wxTopLevelWindowMSW::ButtonMenu::DuplicateMenu(menubar->GetMenu(0));
SetRightMenu(wxID_ANY, menubar->GetLabelTop(0), autoMenu); SetRightMenu(wxID_ANY, menubar->GetMenuLabel(0), autoMenu);
} }
else else
{ {
@@ -407,7 +407,7 @@ void wxFrame::AttachMenuBar(wxMenuBar *menubar)
for( size_t n = 0; n < menubar->GetMenuCount(); n++ ) for( size_t n = 0; n < menubar->GetMenuCount(); n++ )
{ {
wxMenu *item = menubar->GetMenu(n); wxMenu *item = menubar->GetMenu(n);
wxString label = menubar->GetLabelTop(n); wxString label = menubar->GetMenuLabel(n);
wxMenu *new_item = wxTopLevelWindowMSW::ButtonMenu::DuplicateMenu(item); wxMenu *new_item = wxTopLevelWindowMSW::ButtonMenu::DuplicateMenu(item);
autoMenu->Append(wxID_ANY, label, new_item); autoMenu->Append(wxID_ANY, label, new_item);
} }

View File

@@ -227,7 +227,7 @@ const wxMenuInfoList& wxMenuBar::GetMenuInfos() const
for( size_t i = 0 ; i < GetMenuCount() ; ++i ) for( size_t i = 0 ; i < GetMenuCount() ; ++i )
{ {
wxMenuInfo* info = new wxMenuInfo() ; wxMenuInfo* info = new wxMenuInfo() ;
info->Create( const_cast<wxMenuBar*>(this)->GetMenu(i) , GetLabelTop(i) ) ; info->Create( const_cast<wxMenuBar*>(this)->GetMenu(i) , GetMenuLabel(i) ) ;
list->Append( info ) ; list->Append( info ) ;
} }
return m_menuInfos ; return m_menuInfos ;
@@ -331,7 +331,7 @@ void wxMenu::UpdateAccel(wxMenuItem *item)
} }
// find the (new) accel for this item // find the (new) accel for this item
wxAcceleratorEntry *accel = wxAcceleratorEntry::Create(item->GetText()); wxAcceleratorEntry *accel = wxAcceleratorEntry::Create(item->GetItemLabel());
if ( accel ) if ( accel )
accel->m_command = item->GetId(); accel->m_command = item->GetId();
@@ -404,7 +404,7 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
// prepare to insert the item in the menu // prepare to insert the item in the menu
wxString itemText = pItem->GetText(); wxString itemText = pItem->GetItemLabel();
LPCTSTR pData = NULL; LPCTSTR pData = NULL;
if ( pos == (size_t)-1 ) if ( pos == (size_t)-1 )
{ {
@@ -545,7 +545,7 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
flags |= MF_STRING; flags |= MF_STRING;
#ifdef __WXWINCE__ #ifdef __WXWINCE__
itemText = wxMenuItem::GetLabelFromText(itemText); itemText = wxMenuItem::GetLabelText(itemText);
#endif #endif
pData = (wxChar*)itemText.wx_str(); pData = (wxChar*)itemText.wx_str();
@@ -949,7 +949,7 @@ WXHMENU wxMenuBar::Create()
{ {
HMENU hPopupMenu = (HMENU) GetMenu(i)->GetHMenu(); HMENU hPopupMenu = (HMENU) GetMenu(i)->GetHMenu();
tbButton.dwData = (DWORD)hPopupMenu; tbButton.dwData = (DWORD)hPopupMenu;
wxString label = wxStripMenuCodes(GetLabelTop(i)); wxString label = wxStripMenuCodes(GetMenuLabel(i));
tbButton.iString = (int) label.wx_str(); tbButton.iString = (int) label.wx_str();
tbButton.idCommand = NewControlId(); tbButton.idCommand = NewControlId();
@@ -1036,7 +1036,7 @@ void wxMenuBar::EnableTop(size_t pos, bool enable)
Refresh(); Refresh();
} }
void wxMenuBar::SetLabelTop(size_t pos, const wxString& label) void wxMenuBar::SetMenuLabel(size_t pos, const wxString& label)
{ {
wxCHECK_RET( pos < GetMenuCount(), wxT("invalid menu index") ); wxCHECK_RET( pos < GetMenuCount(), wxT("invalid menu index") );
@@ -1094,12 +1094,12 @@ void wxMenuBar::SetLabelTop(size_t pos, const wxString& label)
Refresh(); Refresh();
} }
wxString wxMenuBar::GetLabelTop(size_t pos) const wxString wxMenuBar::GetMenuLabel(size_t pos) const
{ {
wxCHECK_MSG( pos < GetMenuCount(), wxEmptyString, wxCHECK_MSG( pos < GetMenuCount(), wxEmptyString,
wxT("invalid menu index in wxMenuBar::GetLabelTop") ); wxT("invalid menu index in wxMenuBar::GetMenuLabel") );
return wxMenuItem::GetLabelFromText(m_titles[pos]); return m_titles[pos];
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------

View File

@@ -207,7 +207,7 @@ bool wxMenuItem::IsChecked() const
} }
/* static */ /* static */
wxString wxMenuItemBase::GetLabelFromText(const wxString& text) wxString wxMenuItemBase::GetLabelText(const wxString& text)
{ {
return wxStripMenuCodes(text); return wxStripMenuCodes(text);
} }
@@ -337,7 +337,7 @@ void wxMenuItem::Check(bool check)
wxMenuItemBase::Check(check); wxMenuItemBase::Check(check);
} }
void wxMenuItem::SetText(const wxString& txt) void wxMenuItem::SetItemLabel(const wxString& txt)
{ {
wxString text = txt; wxString text = txt;
@@ -346,7 +346,7 @@ void wxMenuItem::SetText(const wxString& txt)
return; return;
// wxMenuItemBase will do stock ID checks // wxMenuItemBase will do stock ID checks
wxMenuItemBase::SetText(text); wxMenuItemBase::SetItemLabel(text);
// m_text could now be different from 'text' if we are a stock menu item, // m_text could now be different from 'text' if we are a stock menu item,
// so use only m_text below // so use only m_text below

View File

@@ -847,7 +847,7 @@ void wxMenuBar::EnableTop(
Refresh(); Refresh();
} // end of wxMenuBar::EnableTop } // end of wxMenuBar::EnableTop
void wxMenuBar::SetLabelTop( void wxMenuBar::SetMenuLabel(
size_t nPos size_t nPos
, const wxString& rLabel , const wxString& rLabel
) )
@@ -884,16 +884,16 @@ void wxMenuBar::SetLabelTop(
wxLogLastError(wxT("ModifyMenu")); wxLogLastError(wxT("ModifyMenu"));
} }
Refresh(); Refresh();
} // end of wxMenuBar::SetLabelTop } // end of wxMenuBar::SetMenuLabel
wxString wxMenuBar::GetLabelTop( wxString wxMenuBar::GetMenuLabel(
size_t nPos size_t nPos
) const ) const
{ {
wxCHECK_MSG( nPos < GetMenuCount(), wxEmptyString, wxCHECK_MSG( nPos < GetMenuCount(), wxEmptyString,
wxT("invalid menu index in wxMenuBar::GetLabelTop") ); wxT("invalid menu index in wxMenuBar::GetMenuLabel") );
return m_titles[nPos]; return m_titles[nPos];
} // end of wxMenuBar::GetLabelTop } // end of wxMenuBar::GetMenuLabel
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
// wxMenuBar construction // wxMenuBar construction

View File

@@ -180,7 +180,7 @@ bool wxMenuItem::IsChecked() const
return (uFlag & MIA_CHECKED) == MIA_CHECKED ; return (uFlag & MIA_CHECKED) == MIA_CHECKED ;
} // end of wxMenuItem::IsChecked } // end of wxMenuItem::IsChecked
wxString wxMenuItemBase::GetLabelFromText( wxString wxMenuItemBase::GetLabelText(
const wxString& rsText const wxString& rsText
) )
{ {
@@ -199,7 +199,7 @@ wxString wxMenuItemBase::GetLabelFromText(
sLabel += *zPc; sLabel += *zPc;
} }
return sLabel; return sLabel;
} // end of wxMenuItemBase::GetLabelFromText } // end of wxMenuItemBase::GetLabelText
// //
// Radio group stuff // Radio group stuff
@@ -363,7 +363,7 @@ void wxMenuItem::Check(
wxMenuItemBase::Check(bCheck); wxMenuItemBase::Check(bCheck);
} // end of wxMenuItem::Check } // end of wxMenuItem::Check
void wxMenuItem::SetText( const wxString& rText ) void wxMenuItem::SetItemLabel( const wxString& rText )
{ {
// //
// Don't do anything if label didn't change // Don't do anything if label didn't change
@@ -374,7 +374,7 @@ void wxMenuItem::SetText( const wxString& rText )
return; return;
// wxMenuItemBase will do stock ID checks // wxMenuItemBase will do stock ID checks
wxMenuItemBase::SetText(sText); wxMenuItemBase::SetItemLabel(sText);
// m_text could now be different from 'text' if we are a stock menu item, // m_text could now be different from 'text' if we are a stock menu item,
// so use only m_text below // so use only m_text below

View File

@@ -152,7 +152,7 @@ const wxMenuInfoList& wxMenuBar::GetMenuInfos() const
for( size_t i = 0 ; i < GetMenuCount() ; ++i ) for( size_t i = 0 ; i < GetMenuCount() ; ++i )
{ {
wxMenuInfo* info = new wxMenuInfo() ; wxMenuInfo* info = new wxMenuInfo() ;
info->Create( const_cast<wxMenuBar*>(this)->GetMenu(i) , GetLabelTop(i) ) ; info->Create( const_cast<wxMenuBar*>(this)->GetMenu(i) , GetMenuLabel(i) ) ;
list->Append( info ) ; list->Append( info ) ;
} }
return m_menuInfos ; return m_menuInfos ;
@@ -372,11 +372,11 @@ void wxMenuBar::EnableTop(size_t pos, bool enable)
// Palm OS does not have support for grayed or disabled items // Palm OS does not have support for grayed or disabled items
} }
void wxMenuBar::SetLabelTop(size_t pos, const wxString& label) void wxMenuBar::SetMenuLabel(size_t pos, const wxString& label)
{ {
wxCHECK_RET( pos < GetMenuCount(), wxT("invalid menu index") ); wxCHECK_RET( pos < GetMenuCount(), wxT("invalid menu index") );
m_titles[pos]=wxStripMenuCodes(label); m_titles[pos] = label;
if ( !IsAttached() ) if ( !IsAttached() )
{ {
@@ -387,12 +387,12 @@ void wxMenuBar::SetLabelTop(size_t pos, const wxString& label)
Refresh(); Refresh();
} }
wxString wxMenuBar::GetLabelTop(size_t pos) const wxString wxMenuBar::GetMenuLabel(size_t pos) const
{ {
wxCHECK_MSG( pos < GetMenuCount(), wxEmptyString, wxCHECK_MSG( pos < GetMenuCount(), wxEmptyString,
wxT("invalid menu index in wxMenuBar::GetLabelTop") ); wxT("invalid menu index in wxMenuBar::GetMenuLabel") );
return wxMenuItem::GetLabelFromText(m_titles[pos]); return m_titles[pos];
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
@@ -405,7 +405,7 @@ wxMenu *wxMenuBar::Replace(size_t pos, wxMenu *menu, const wxString& title)
if ( !menuOld ) if ( !menuOld )
return NULL; return NULL;
m_titles[pos]=wxStripMenuCodes(title); m_titles[pos] = title;
if ( IsAttached() ) if ( IsAttached() )
{ {
@@ -421,7 +421,7 @@ bool wxMenuBar::Insert(size_t pos, wxMenu *menu, const wxString& title)
if ( !wxMenuBarBase::Insert(pos, menu, title) ) if ( !wxMenuBarBase::Insert(pos, menu, title) )
return false; return false;
m_titles.Insert(wxStripMenuCodes(title), pos); m_titles.Insert(title, pos);
if ( IsAttached() ) if ( IsAttached() )
{ {
@@ -437,7 +437,7 @@ bool wxMenuBar::Append(wxMenu *menu, const wxString& title)
if ( !wxMenuBarBase::Append(menu, title) ) if ( !wxMenuBarBase::Append(menu, title) )
return false; return false;
m_titles.Add(wxStripMenuCodes(title)); m_titles.Add(title);
if(IsAttached()) if(IsAttached())
{ {

View File

@@ -159,7 +159,7 @@ bool wxMenuItem::IsChecked() const
} }
/* static */ /* static */
wxString wxMenuItemBase::GetLabelFromText(const wxString& text) wxString wxMenuItemBase::GetLabelText(const wxString& text)
{ {
return wxStripMenuCodes(text); return wxStripMenuCodes(text);
} }
@@ -190,7 +190,7 @@ void wxMenuItem::Check(bool check)
{ {
} }
void wxMenuItem::SetText(const wxString& text) void wxMenuItem::SetItemLabel(const wxString& text)
{ {
} }

View File

@@ -1516,7 +1516,7 @@ wxMenuItem *wxMenuItemBase::New(wxMenu *parentMenu,
} }
/* static */ /* static */
wxString wxMenuItemBase::GetLabelFromText(const wxString& text) wxString wxMenuItemBase::GetLabelText(const wxString& text)
{ {
return wxStripMenuCodes(text); return wxStripMenuCodes(text);
} }
@@ -1538,13 +1538,13 @@ void wxMenuItem::UpdateAccelInfo()
m_strAccel = m_text.AfterFirst(_T('\t')); m_strAccel = m_text.AfterFirst(_T('\t'));
} }
void wxMenuItem::SetText(const wxString& text) void wxMenuItem::SetItemLabel(const wxString& text)
{ {
if ( text != m_text ) if ( text != m_text )
{ {
// first call the base class version to change m_text // first call the base class version to change m_text
// (and also check if we don't have a stock menu item) // (and also check if we don't have a stock menu item)
wxMenuItemBase::SetText(text); wxMenuItemBase::SetItemLabel(text);
UpdateAccelInfo(); UpdateAccelInfo();
@@ -1820,9 +1820,9 @@ bool wxMenuBar::IsEnabledTop(size_t pos) const
return m_menuInfos[pos].IsEnabled(); return m_menuInfos[pos].IsEnabled();
} }
void wxMenuBar::SetLabelTop(size_t pos, const wxString& label) void wxMenuBar::SetMenuLabel(size_t pos, const wxString& label)
{ {
wxCHECK_RET( pos < GetCount(), _T("invalid index in EnableTop") ); wxCHECK_RET( pos < GetCount(), _T("invalid index in SetMenuLabel") );
if ( label != m_menuInfos[pos].GetLabel() ) if ( label != m_menuInfos[pos].GetLabel() )
{ {
@@ -1833,9 +1833,9 @@ void wxMenuBar::SetLabelTop(size_t pos, const wxString& label)
//else: nothing to do //else: nothing to do
} }
wxString wxMenuBar::GetLabelTop(size_t pos) const wxString wxMenuBar::GetMenuLabel(size_t pos) const
{ {
wxCHECK_MSG( pos < GetCount(), wxEmptyString, _T("invalid index in GetLabelTop") ); wxCHECK_MSG( pos < GetCount(), wxEmptyString, _T("invalid index in GetMenuLabel") );
return m_menuInfos[pos].GetLabel(); return m_menuInfos[pos].GetLabel();
} }
@@ -1960,7 +1960,7 @@ wxSize wxMenuBar::DoGetBestClientSize() const
{ {
wxClientDC dc(wxConstCast(this, wxMenuBar)); wxClientDC dc(wxConstCast(this, wxMenuBar));
dc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); dc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
dc.GetTextExtent(GetLabelTop(0), &size.x, &size.y); dc.GetTextExtent(GetMenuLabel(0), &size.x, &size.y);
// adjust for the renderer we use // adjust for the renderer we use
size = GetRenderer()->GetMenuBarItemSize(size); size = GetRenderer()->GetMenuBarItemSize(size);