+ // IMPLEMENTATION
+ // returns TRUE if we're attached to a frame
+ bool IsAttached() const { return m_menuBarFrame != NULL; }
+ // get the frame we live in
+ wxFrame *GetFrame() const { return m_menuBarFrame; }
+ // attach to a frame
+ void Attach(wxFrame *frame)
+ {
+ wxASSERT_MSG( !m_menuBarFrame, "menubar already attached!" );
+
+ m_menuBarFrame = frame;
+ }
+ // 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();
+
+ wxEvtHandler *m_eventHandler;
+ int m_menuCount;
+ wxMenu **m_menus;
+ wxString *m_titles;
+ wxFrame *m_menuBarFrame;
+ WXHMENU m_hMenu;