#include "wx/defs.h"
#include "wx/event.h"
#include "wx/dynarray.h"
+#include "wx/string.h"
+
+#if wxUSE_ACCEL
+#include "wx/accel.h"
+#endif // wxUSE_ACCEL
class WXDLLEXPORT wxMenuItem;
class WXDLLEXPORT wxMenuBar;
DECLARE_DYNAMIC_CLASS(wxMenu)
public:
- // ctor & dtor
- wxMenu(const wxString& title = wxEmptyString, const wxFunction func = NULL);
+ // 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
size_t CopyAccels(wxAcceleratorEntry *accels) const;
#endif // wxUSE_ACCEL
-#ifdef WXWIN_COMPATIBILITY
+ 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); }
-private:
- wxFunction m_callback;
#endif // WXWIN_COMPATIBILITY
private:
+ // common part of all ctors
+ void Init(const wxString& title, const wxFunction func = NULL );
+
bool m_doBreak;
// This is used when m_hMenu is NULL because we don't want to
// menubar construction
WXHMENU Create();
void Append(wxMenu *menu, const wxString& title);
+ void Insert(int pos, wxMenu * menu, const wxString& title);
+ void ReplaceMenu(int pos, wxMenu * new_menu, const wxString& title);
+ int FindMenu(const wxString& title);
+ void Detach();
virtual void Delete(wxMenu *menu, int index = 0); /* Menu not destroyed */
// state control
// get the menu handle
WXHMENU GetHMenu() const { return m_hMenu; }
-protected:
- // common part of all ctors
- void Init();
-
// if the menubar is modified, the display is not updated automatically,
// call this function to update it (m_menuBarFrame should be !NULL)
void Refresh();
+protected:
+ // common part of all ctors
+ void Init();
+
wxEvtHandler *m_eventHandler;
int m_menuCount;
wxMenu **m_menus;