X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ffecfa5aeb540b54914739dbb8603edbbd4c00a0..333e57d578e9e0fb6555452b5a53698ffd85ee69:/include/wx/menu.h diff --git a/include/wx/menu.h b/include/wx/menu.h index 79dd28ef61..852b6eac20 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) { @@ -313,6 +308,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, @@ -450,6 +455,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 +485,11 @@ 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; } + protected: // the list of all our menus wxMenuList m_menus; @@ -498,14 +509,16 @@ protected: #else // !wxUSE_BASE_CLASSES_ONLY #if defined(__WXUNIVERSAL__) #include "wx/univ/menu.h" -#elif defined(__PALMOS__) +#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__)