+public:
+ // ctors
+ wxMenuBar();
+ wxMenuBar(long style);
+ wxMenuBar(size_t n, wxMenu *menus[], const wxString titles[], long style = 0);
+ virtual ~wxMenuBar();
+
+ // implement base class (pure) virtuals
+ virtual bool Append( wxMenu *menu, const wxString &title );
+ virtual bool Insert(size_t pos, wxMenu *menu, const wxString& title);
+ virtual wxMenu *Replace(size_t pos, wxMenu *menu, const wxString& title);
+ virtual wxMenu *Remove(size_t pos);
+
+ virtual int FindMenuItem(const wxString& menuString,
+ const wxString& itemString) const;
+ virtual wxMenuItem* FindItem( int id, wxMenu **menu = NULL ) const;
+
+ virtual void EnableTop( size_t pos, bool flag );
+ virtual void SetMenuLabel( size_t pos, const wxString& label );
+ virtual wxString GetMenuLabel( size_t pos ) const;
+
+ void SetLayoutDirection(wxLayoutDirection dir);
+ wxLayoutDirection GetLayoutDirection() const;
+
+ // wxMenuBar is not a top level window but it still doesn't need a parent
+ // window
+ virtual bool GTKNeedsParent() const { return false; }
+
+ void Attach(wxFrame *frame);
+
+ // implementation only from now on
+ void SetInvokingWindow( wxWindow *win );
+ void UnsetInvokingWindow( wxWindow *win );
+
+ // common part of Append and Insert
+ bool GtkAppend(wxMenu *menu, const wxString& title, int pos=-1);