X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/50414e24a7aa082f2569666421d3ee1ea581a3cd..921b3c179967bc006de91cffba50921e16a23cda:/include/wx/motif/menu.h diff --git a/include/wx/motif/menu.h b/include/wx/motif/menu.h index f89f733d11..1ed3a0da6b 100644 --- a/include/wx/motif/menu.h +++ b/include/wx/motif/menu.h @@ -18,6 +18,8 @@ #include "wx/defs.h" #include "wx/event.h" +#include "wx/font.h" +#include "wx/gdicmn.h" class WXDLLEXPORT wxMenuItem; class WXDLLEXPORT wxMenuBar; @@ -62,6 +64,10 @@ public: 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); @@ -79,6 +85,12 @@ public: // 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; } @@ -88,6 +100,9 @@ public: 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; } @@ -111,6 +126,15 @@ public: 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; @@ -120,6 +144,8 @@ public: wxList m_menuItems; wxEvtHandler * m_parent; wxEvtHandler * m_eventHandler; + void* m_clientData; + wxWindow* m_pInvokingWindow; //// Motif-specific int m_numColumns; @@ -130,6 +156,9 @@ public: wxMenu* m_topLevelMenu ; wxMenu* m_menuParent; bool m_ownedByMenuBar; + wxColour m_foregroundColour; + wxColour m_backgroundColour; + wxFont m_font; }; // ---------------------------------------------------------------------------- @@ -183,6 +212,21 @@ class WXDLLEXPORT wxMenuBar: public wxEvtHandler 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; @@ -193,6 +237,9 @@ class WXDLLEXPORT wxMenuBar: public wxEvtHandler //// Motif-specific WXWidget m_mainWidget; + wxColour m_foregroundColour; + wxColour m_backgroundColour; + wxFont m_font; }; #endif // _WX_MENU_H_