#include "wx/defs.h"
#include "wx/event.h"
+#include "wx/font.h"
+#include "wx/gdicmn.h"
class WXDLLEXPORT wxMenuItem;
class WXDLLEXPORT wxMenuBar;
bool Checked(int id) const;
inline bool IsChecked(int id) const { return IsChecked(id); };
+ // Client data
+ inline void SetClientData(void* clientData) { m_clientData = clientData; }
+ inline void* GetClientData() const { return m_clientData; }
+
// item properties
// title
void SetTitle(const wxString& label);
// 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);
+
void ProcessCommand(wxCommandEvent& event);
inline void Callback(const wxFunction func) { m_callback = func; }
inline wxList& GetItems() const { return (wxList&) m_menuItems; }
+ void SetInvokingWindow(wxWindow *pWin) { m_pInvokingWindow = pWin; }
+ wxWindow *GetInvokingWindow() const { return m_pInvokingWindow; }
+
//// Motif-specific
inline WXWidget GetButtonWidget() const { return m_buttonWidget; }
inline void SetButtonWidget(WXWidget buttonWidget) { m_buttonWidget = buttonWidget; }
void DestroyMenu(bool full);
WXWidget FindMenuItem(int id, wxMenuItem **it = NULL) const;
+ const wxColour& GetBackgroundColour() const { return m_backgroundColour; }
+ const wxColour& GetForegroundColour() const { return m_foregroundColour; }
+ const wxFont& GetFont() const { return m_font; }
+
+ void SetBackgroundColour(const wxColour& colour);
+ void SetForegroundColour(const wxColour& colour);
+ void SetFont(const wxFont& colour);
+ void ChangeFont(bool keepOriginalSize = FALSE);
+
public:
wxFunction m_callback;
wxList m_menuItems;
wxEvtHandler * m_parent;
wxEvtHandler * m_eventHandler;
+ void* m_clientData;
+ wxWindow* m_pInvokingWindow;
//// Motif-specific
int m_numColumns;
wxMenu* m_topLevelMenu ;
wxMenu* m_menuParent;
bool m_ownedByMenuBar;
+ wxColour m_foregroundColour;
+ wxColour m_backgroundColour;
+ wxFont m_font;
};
// ----------------------------------------------------------------------------
{
DECLARE_DYNAMIC_CLASS(wxMenuBar)
+ wxMenuBar( long style );
wxMenuBar();
wxMenuBar(int n, wxMenu *menus[], const wxString titles[]);
~wxMenuBar();
inline WXWidget GetMainWidget() const { return m_mainWidget; }
inline void SetMainWidget(WXWidget widget) { m_mainWidget = widget; }
+ // Create menubar
+ bool CreateMenuBar(wxFrame* frame);
+
+ // Destroy menubar, but keep data structures intact so we can recreate it.
+ bool DestroyMenuBar();
+
+ const wxColour& GetBackgroundColour() const { return m_backgroundColour; }
+ const wxColour& GetForegroundColour() const { return m_foregroundColour; }
+ const wxFont& GetFont() const { return m_font; }
+
+ void SetBackgroundColour(const wxColour& colour);
+ void SetForegroundColour(const wxColour& colour);
+ void SetFont(const wxFont& colour);
+ void ChangeFont(bool keepOriginalSize = FALSE);
+
public:
wxEvtHandler * m_eventHandler;
int m_menuCount;
//// Motif-specific
WXWidget m_mainWidget;
+ wxColour m_foregroundColour;
+ wxColour m_backgroundColour;
+ wxFont m_font;
};
#endif // _WX_MENU_H_