X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e6feb95a79834836e88143b15d9f424ebe79621..19e30148e18cc99296b26503c155e5cef59045f4:/include/wx/menu.h diff --git a/include/wx/menu.h b/include/wx/menu.h index ee33335e21..181781b0a5 100644 --- a/include/wx/menu.h +++ b/include/wx/menu.h @@ -75,25 +75,42 @@ public: // menu construction // ----------------- - // append a normal item to the menu + // append any kind of item (normal/check/radio/separator) void Append(int id, const wxString& text, const wxString& help = wxEmptyString, - bool isCheckable = FALSE) + wxItemKind kind = wxITEM_NORMAL) { - DoAppend(wxMenuItem::New((wxMenu *)this, id, text, help, isCheckable)); + DoAppend(wxMenuItem::New((wxMenu *)this, id, text, help, kind)); } // append a separator to the menu void AppendSeparator() { Append(wxID_SEPARATOR, wxEmptyString); } + // append a check item + void AppendCheckItem(int id, + const wxString& text, + const wxString& help = wxEmptyString) + { + Append(id, text, help, wxITEM_CHECK); + } + + // append a radio item + void AppendRadioItem(int id, + const wxString& text, + const wxString& help = wxEmptyString) + { + Append(id, text, help, wxITEM_RADIO); + } + // append a submenu void Append(int id, const wxString& text, wxMenu *submenu, const wxString& help = wxEmptyString) { - DoAppend(wxMenuItem::New((wxMenu *)this, id, text, help, FALSE, submenu)); + DoAppend(wxMenuItem::New((wxMenu *)this, id, text, help, + wxITEM_NORMAL, submenu)); } // the most generic form of Append() - append anything @@ -105,13 +122,15 @@ public: // insert an item before given position bool Insert(size_t pos, wxMenuItem *item); + + // insert an item before given position void Insert(size_t pos, int id, const wxString& text, const wxString& help = wxEmptyString, - bool isCheckable = FALSE) + wxItemKind kind = wxITEM_NORMAL) { - Insert(pos, wxMenuItem::New((wxMenu *)this, id, text, help, isCheckable)); + Insert(pos, wxMenuItem::New((wxMenu *)this, id, text, help, kind)); } // insert a separator @@ -120,6 +139,24 @@ public: Insert(pos, wxMenuItem::New((wxMenu *)this)); } + // insert a check item + void InsertCheckItem(size_t pos, + int id, + const wxString& text, + const wxString& help = wxEmptyString) + { + Insert(pos, id, text, help, wxITEM_CHECK); + } + + // insert a radio item + void InsertRadioItem(size_t pos, + int id, + const wxString& text, + const wxString& help = wxEmptyString) + { + Insert(pos, id, text, help, wxITEM_RADIO); + } + // insert a submenu void Insert(size_t pos, int id, @@ -127,7 +164,8 @@ public: wxMenu *submenu, const wxString& help = wxEmptyString) { - Insert(pos, wxMenuItem::New((wxMenu *)this, id, text, help, FALSE, submenu)); + Insert(pos, wxMenuItem::New((wxMenu *)this, id, text, help, + wxITEM_NORMAL, submenu)); } // prepend an item to the menu @@ -136,21 +174,38 @@ public: Insert(0u, item); } + // prepend any item to the menu void Prepend(int id, const wxString& text, const wxString& help = wxEmptyString, - bool isCheckable = FALSE) + wxItemKind kind = wxITEM_NORMAL) { - Insert(0u, id, text, help, isCheckable); + Insert(0u, id, text, help, kind); } - // insert a separator + // prepend a separator void PrependSeparator() { InsertSeparator(0u); } - // insert a submenu + // prepend a check item + void PrependCheckItem(int id, + const wxString& text, + const wxString& help = wxEmptyString) + { + InsertCheckItem(0u, id, text, help); + } + + // prepend a radio item + void PrependRadioItem(int id, + const wxString& text, + const wxString& help = wxEmptyString) + { + InsertRadioItem(0u, id, text, help); + } + + // prepend a submenu void Prepend(int id, const wxString& text, wxMenu *submenu, @@ -207,10 +262,6 @@ public: virtual void SetTitle(const wxString& title) { m_title = title; } const wxString GetTitle() const { return m_title; } - // client data - void SetClientData(void* clientData) { m_clientData = clientData; } - void* GetClientData() const { return m_clientData; } - // event handler void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } wxEvtHandler *GetEventHandler() const { return m_eventHandler; } @@ -245,8 +296,51 @@ public: void SetParent(wxMenu *parent) { m_menuParent = parent; } wxMenu *GetParent() const { return m_menuParent; } -#if WXWIN_COMPATIBILITY + // implementation only from now on + // ------------------------------- + + // unlike FindItem(), this function doesn't recurse but only looks through + // our direct children and also may return the index of the found child if + // pos != NULL + wxMenuItem *FindChildItem(int id, size_t *pos = NULL) const; + + // called to generate a wxCommandEvent, return TRUE if it was processed, + // FALSE otherwise + // + // the checked parameter may have boolean value or -1 for uncheckable items + bool SendEvent(int id, int checked = -1); + // compatibility: these functions are deprecated, use the new ones instead + // ----------------------------------------------------------------------- + + // use the versions taking wxItem_XXX now instead, they're more readable + // and allow adding the radio items as well + void Append(int id, + const wxString& text, + const wxString& help, + bool isCheckable) + { + Append(id, text, help, isCheckable ? wxITEM_CHECK : wxITEM_NORMAL); + } + + void Insert(size_t pos, + int id, + const wxString& text, + const wxString& help, + bool isCheckable) + { + Insert(pos, id, text, help, isCheckable ? wxITEM_CHECK : wxITEM_NORMAL); + } + + void Prepend(int id, + const wxString& text, + const wxString& help, + bool isCheckable) + { + Insert(0u, id, text, help, isCheckable); + } + +#if WXWIN_COMPATIBILITY bool Enabled(int id) const { return IsEnabled(id); } bool Checked(int id) const { return IsChecked(id); } @@ -256,7 +350,7 @@ public: wxList& GetItems() const { return (wxList &)m_items; } #endif // WXWIN_COMPATIBILITY -#if wxUSE_MENU_CALLBACK +#if wxUSE_MENU_CALLBACK || defined(__WXMOTIF__) // wxWin 1.6x compatible menu event handling wxFunction GetCallback() const { return m_callback; } void Callback(const wxFunction func) { m_callback = func; } @@ -264,17 +358,6 @@ public: wxFunction m_callback; #endif // wxUSE_MENU_CALLBACK - // unlike FindItem(), this function doesn't recurse but only looks through - // our direct children and also may return the index of the found child if - // pos != NULL - wxMenuItem *FindChildItem(int id, size_t *pos = NULL) const; - - // called to generate a wxCommandEvent, return TRUE if it was processed, - // FALSE otherwise - // - // the checked parameter may have boolean value or -1 for uncheckable items - bool SendEvent(int id, int checked = -1); - protected: // virtuals to override in derived classes // --------------------------------------- @@ -302,7 +385,6 @@ protected: wxMenuItemList m_items; // the list of menu items wxWindow *m_invokingWindow; // for popup menus - void *m_clientData; // associated with the menu long m_style; // combination of wxMENU_XXX flags @@ -353,7 +435,7 @@ public: virtual void EnableTop(size_t pos, bool enable) = 0; // is the menu enabled? - virtual bool IsEnabledTop(size_t 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 virtual void SetLabelTop(size_t pos, const wxString& label) = 0; @@ -451,8 +533,6 @@ protected: #include "wx/motif/menu.h" #elif defined(__WXGTK__) #include "wx/gtk/menu.h" -#elif defined(__WXQT__) - #include "wx/qt/menu.h" #elif defined(__WXMAC__) #include "wx/mac/menu.h" #elif defined(__WXPM__)