- // ctor & dtor
- wxMenu(const wxString& title = wxEmptyString, const wxFunction func = NULL);
- ~wxMenu();
-
- // construct menu
- // append items to the menu
- // separator line
- void AppendSeparator();
- // normal item
- void Append(int id, const wxString& Label, const wxString& helpString = wxEmptyString,
- bool checkable = FALSE);
- // a submenu
- void Append(int id, const wxString& Label, wxMenu *SubMenu,
- const wxString& helpString = wxEmptyString);
- // the most generic form (create wxMenuItem first and use it's functions)
- void Append(wxMenuItem *pItem);
- // insert a break in the menu
- void Break();
- // delete an item
- void Delete(int id); /* If it's a submenu, menu is not destroyed. VZ: why? */
-
- // menu item control
- void Enable(int id, bool Flag);
- bool Enabled(int id) const;
- inline bool IsEnabled(int id) const { return Enabled(id); };
- void Check(int id, bool Flag);
- bool Checked(int id) const;
- inline bool IsChecked(int id) const { return Checked(id); };
-
- // item properties
- // title
- void SetTitle(const wxString& label);
- const wxString& GetTitle() const;
- // label
- void SetLabel(int id, const wxString& label);
- wxString GetLabel(int id) const;
- // help string
- virtual void SetHelpString(int id, const wxString& helpString);
- virtual wxString GetHelpString(int id) const ;
-
- // find item
- // Finds the item id matching the given string, NOT_FOUND if not found.
- virtual int FindItem(const wxString& itemString) const ;
- // Find wxMenuItem by ID, and item's menu too if itemMenu is !NULL.
- wxMenuItem *FindItemForId(int itemId, wxMenu **itemMenu = NULL) const;
-
- void ProcessCommand(wxCommandEvent& event);
- inline void Callback(const wxFunction func) { m_callback = func; }
-
- virtual void SetParent(wxEvtHandler *parent) { m_parent = parent; }
- inline void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; }
- inline wxEvtHandler *GetEventHandler() { return m_eventHandler; }
-
- inline wxList& GetItems() const { return (wxList&) m_menuItems; }
-
- // IMPLEMENTATION
- bool MSWCommand(WXUINT param, WXWORD id);
-
- void SetInvokingWindow(wxWindow *pWin) { m_pInvokingWindow = pWin; }
- wxWindow *GetInvokingWindow() const { return m_pInvokingWindow; }
-
- // semi-private accessors
- // get the window which contains this menu
- wxWindow *GetWindow() const;
- // get the menu handle
- WXHMENU GetHMenu() const;
+ // ctors & dtor
+ wxMenu(const wxString& title,
+ const wxFunction func)
+ {
+ Init(title, func);
+ }
+
+ wxMenu( long WXUNUSED(style) )
+ {
+ Init( wxEmptyString );
+ }
+
+ wxMenu(const wxString& title = wxEmptyString, long WXUNUSED(style) = 0)
+ {
+ Init(title);
+ }
+
+ virtual ~wxMenu();
+
+ // construct menu
+ // append a separator to the menu
+ void AppendSeparator();
+ // append a normal item to the menu
+ void Append(int id, const wxString& label,
+ const wxString& helpString = wxEmptyString,
+ bool checkable = FALSE);
+ // append a submenu
+ void Append(int id, const wxString& label,
+ wxMenu *submenu,
+ const wxString& helpString = wxEmptyString);
+ // append anything (create wxMenuItem first)
+ void Append(wxMenuItem *pItem);
+
+ // insert a break in the menu
+ void Break();
+
+ // delete an item
+ // If it's a submenu, menu is not destroyed.
+ // VZ: why? shouldn't it return "wxMenu *" then?
+ void Delete(int id);
+
+ // client data
+ void SetClientData(void* clientData) { m_clientData = clientData; }
+ void* GetClientData() const { return m_clientData; }
+
+ // menu item control
+ // enable/disable item
+ void Enable(int id, bool enable);
+ // TRUE if enabled
+ bool IsEnabled(int id) const;
+
+ // check/uncheck item - only for checkable items, of course
+ void Check(int id, bool check);
+ // TRUE if checked
+ bool IsChecked(int id) const;
+
+ // other properties
+ // the menu title
+ void SetTitle(const wxString& label);
+ const wxString GetTitle() const;
+ // the item label
+ void SetLabel(int id, const wxString& label);
+ wxString GetLabel(int id) const;
+ // help string
+ virtual void SetHelpString(int id, const wxString& helpString);
+ virtual wxString GetHelpString(int id) const;
+
+ // get the list of items
+ wxList& GetItems() const { return (wxList &)m_menuItems; }
+
+ // find item
+ // returns id of the item matching the given string or wxNOT_FOUND
+ virtual int FindItem(const wxString& itemString) const;
+ // returns NULL if not found
+ wxMenuItem* FindItem(int id) const { return FindItemForId(id); }
+ // find wxMenuItem by ID, and item's menu too if itemMenu is !NULL
+ wxMenuItem *FindItemForId(int itemId, wxMenu **itemMenu = NULL) const;
+
+ // Updates the UI for a menu and all submenus recursively. source is the
+ // object that has the update event handlers defined for it. If NULL, the
+ // menu or associated window will be used.
+ void UpdateUI(wxEvtHandler* source = (wxEvtHandler*)NULL);
+
+ bool ProcessCommand(wxCommandEvent& event);
+
+ virtual void SetParent(wxEvtHandler *parent) { m_parent = parent; }
+ void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; }
+ wxEvtHandler *GetEventHandler() const { return m_eventHandler; }
+
+ // IMPLEMENTATION
+ bool MSWCommand(WXUINT param, WXWORD id);
+
+ void SetInvokingWindow(wxWindow *pWin) { m_pInvokingWindow = pWin; }
+ wxWindow *GetInvokingWindow() const { return m_pInvokingWindow; }
+
+ // semi-private accessors
+ // get the window which contains this menu
+ wxWindow *GetWindow() const;
+ // get the menu handle
+ WXHMENU GetHMenu() const;
+
+ // only for wxMenuBar
+ void Attach(wxMenuBar *menubar);
+ void Detach();
+
+#if wxUSE_ACCEL
+ size_t GetAccelCount() const { return m_accelKeyCodes.GetCount(); }
+ size_t CopyAccels(wxAcceleratorEntry *accels) const;
+#endif // wxUSE_ACCEL
+
+ wxFunction GetCallback() const { return m_callback; }
+ void Callback(const wxFunction func) { m_callback = func; }
+ wxFunction m_callback;
+
+#ifdef WXWIN_COMPATIBILITY
+ // compatibility: these functions are deprecated
+ bool Enabled(int id) const { return IsEnabled(id); }
+ bool Checked(int id) const { return IsChecked(id); }
+
+#endif // WXWIN_COMPATIBILITY