X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4e32eea148dafadbdd0712377c1b5038406ffde5..a4535b9f391bbe8453f70784bc77a06f3426e858:/include/wx/menu.h diff --git a/include/wx/menu.h b/include/wx/menu.h index be2b692a1a..c222caa135 100644 --- a/include/wx/menu.h +++ b/include/wx/menu.h @@ -12,10 +12,6 @@ #ifndef _WX_MENU_H_BASE_ #define _WX_MENU_H_BASE_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma interface "menubase.h" -#endif - #include "wx/defs.h" #if wxUSE_MENUS @@ -31,10 +27,10 @@ // included wx/menu.h #include "wx/menuitem.h" -class WXDLLEXPORT wxMenu; -class WXDLLEXPORT wxMenuBarBase; -class WXDLLEXPORT wxMenuBar; -class WXDLLEXPORT wxMenuItem; +class WXDLLIMPEXP_FWD_CORE wxMenu; +class WXDLLIMPEXP_FWD_CORE wxMenuBarBase; +class WXDLLIMPEXP_FWD_CORE wxMenuBar; +class WXDLLIMPEXP_FWD_CORE wxMenuItem; // pseudo template list classes WX_DECLARE_EXPORTED_LIST(wxMenu, wxMenuList); @@ -64,7 +60,7 @@ public: // append any kind of item (normal/check/radio/separator) wxMenuItem* Append(int itemid, - const wxString& text, + const wxString& text = wxEmptyString, const wxString& help = wxEmptyString, wxItemKind kind = wxITEM_NORMAL) { @@ -91,12 +87,11 @@ public: } // append a submenu - wxMenuItem* Append(int itemid, - const wxString& text, - wxMenu *submenu, - const wxString& help = wxEmptyString) + wxMenuItem* AppendSubMenu(wxMenu *submenu, + const wxString& text, + const wxString& help = wxEmptyString) { - return DoAppend(wxMenuItem::New((wxMenu *)this, itemid, text, help, + return DoAppend(wxMenuItem::New((wxMenu *)this, wxID_ANY, text, help, wxITEM_NORMAL, submenu)); } @@ -113,7 +108,7 @@ public: // insert an item before given position wxMenuItem* Insert(size_t pos, int itemid, - const wxString& text, + const wxString& text = wxEmptyString, const wxString& help = wxEmptyString, wxItemKind kind = wxITEM_NORMAL) { @@ -163,7 +158,7 @@ public: // prepend any item to the menu wxMenuItem* Prepend(int itemid, - const wxString& text, + const wxString& text = wxEmptyString, const wxString& help = wxEmptyString, wxItemKind kind = wxITEM_NORMAL) { @@ -242,6 +237,9 @@ public: void SetLabel(int itemid, const wxString& label); 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 wxString GetHelpString(int itemid) const; @@ -313,6 +311,16 @@ public: Append(itemid, text, help, isCheckable ? wxITEM_CHECK : wxITEM_NORMAL); } + // use more readable and not requiring unused itemid AppendSubMenu() instead + wxMenuItem* Append(int itemid, + const wxString& text, + wxMenu *submenu, + const wxString& help = wxEmptyString) + { + return DoAppend(wxMenuItem::New((wxMenu *)this, itemid, text, help, + wxITEM_NORMAL, submenu)); + } + void Insert(size_t pos, int itemid, const wxString& text, @@ -419,8 +427,11 @@ public: virtual bool IsEnabledTop(size_t WXUNUSED(pos)) const { return true; } // get or change the label of the menu at given position - virtual void SetLabelTop(size_t pos, const wxString& label) = 0; - virtual wxString GetLabelTop(size_t pos) const = 0; + virtual void SetMenuLabel(size_t pos, const wxString& label) = 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 // ----------- @@ -450,6 +461,7 @@ public: void Check(int itemid, bool check); bool IsChecked(int itemid) const; bool IsEnabled(int itemid) const; + virtual bool IsEnabled() const { return wxWindow::IsEnabled(); } void SetLabel(int itemid, const wxString &label); wxString GetLabel(int itemid) const; @@ -479,6 +491,17 @@ public: // don't want menu bars to accept the focus by tabbing to them virtual bool AcceptsFocusFromKeyboard() const { return false; } + // update all menu item states in all menus + virtual void UpdateMenus(); + + 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: // the list of all our menus wxMenuList m_menus; @@ -498,12 +521,16 @@ protected: #else // !wxUSE_BASE_CLASSES_ONLY #if defined(__WXUNIVERSAL__) #include "wx/univ/menu.h" +#elif defined(__WXPALMOS__) + #include "wx/palmos/menu.h" #elif defined(__WXMSW__) #include "wx/msw/menu.h" #elif defined(__WXMOTIF__) #include "wx/motif/menu.h" -#elif defined(__WXGTK__) +#elif defined(__WXGTK20__) #include "wx/gtk/menu.h" +#elif defined(__WXGTK__) + #include "wx/gtk1/menu.h" #elif defined(__WXMAC__) #include "wx/mac/menu.h" #elif defined(__WXCOCOA__)