From 52130557bfa9d969c7c274bebbf7afc2e496321d Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Tue, 22 Feb 2000 09:53:55 +0000 Subject: [PATCH] moved wxMenuBar::FindMenu(title) from MSW to common code git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6202 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/menu.h | 3 +++ include/wx/msw/menu.h | 1 - src/common/menucmn.cpp | 20 ++++++++++++++++++++ src/msw/menu.cpp | 16 ---------------- 4 files changed, 23 insertions(+), 17 deletions(-) diff --git a/include/wx/menu.h b/include/wx/menu.h index e3521afa2c..cf5e6b3f93 100644 --- a/include/wx/menu.h +++ b/include/wx/menu.h @@ -297,6 +297,9 @@ public: // if menu is !NULL, it will be filled with wxMenu this item belongs to virtual wxMenuItem* FindItem(int id, wxMenu **menu = NULL) const = 0; + // find menu by its caption, return wxNOT_FOUND on failure + int FindMenu(const wxString& title); + // item access // ----------- diff --git a/include/wx/msw/menu.h b/include/wx/msw/menu.h index 741b88aa6e..30815349c3 100644 --- a/include/wx/msw/menu.h +++ b/include/wx/msw/menu.h @@ -153,7 +153,6 @@ public: // implementation from now on WXHMENU Create(); - int FindMenu(const wxString& title); void Detach(); // returns TRUE if we're attached to a frame diff --git a/src/common/menucmn.cpp b/src/common/menucmn.cpp index ff228f99dc..5fa6e0723b 100644 --- a/src/common/menucmn.cpp +++ b/src/common/menucmn.cpp @@ -544,6 +544,26 @@ wxMenu *wxMenuBarBase::Remove(size_t pos) return menu; } +int wxMenuBarBase::FindMenu(const wxString& title) +{ + wxString label = wxMenuItem::GetLabelFromText(title); + + size_t count = GetMenuCount(); + for ( size_t i = 0; i < count; i++ ) + { + wxString title2 = GetLabelTop(i); + if ( (title2 == title) || + (wxMenuItem::GetLabelFromText(title2) == label) ) + { + // found + return (int)i; + } + } + + return wxNOT_FOUND; + +} + // --------------------------------------------------------------------------- // wxMenuBar functions forwarded to wxMenuItem // --------------------------------------------------------------------------- diff --git a/src/msw/menu.cpp b/src/msw/menu.cpp index 0894f1f6cf..a91bb5dd2f 100644 --- a/src/msw/menu.cpp +++ b/src/msw/menu.cpp @@ -632,22 +632,6 @@ wxString wxMenuBar::GetLabelTop(size_t pos) const return m_titles[pos]; } -int wxMenuBar::FindMenu(const wxString& title) -{ - wxString menuTitle = wxStripMenuCodes(title); - - size_t count = GetMenuCount(); - for ( size_t i = 0; i < count; i++ ) - { - wxString title = wxStripMenuCodes(m_titles[i]); - if ( menuTitle == title ) - return i; - } - - return wxNOT_FOUND; - -} - // --------------------------------------------------------------------------- // wxMenuBar construction // --------------------------------------------------------------------------- -- 2.45.2