X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9b6dbb09746f8f5ee0549a2ff39ae0ac4c725898..2b9bd418c5ca5cfabf1d183db391893d1040b5f2:/include/wx/motif/menu.h?ds=sidebyside diff --git a/include/wx/motif/menu.h b/include/wx/motif/menu.h index dd34942155..d29ae23ac4 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); @@ -90,7 +96,36 @@ public: //// Motif-specific inline WXWidget GetButtonWidget() const { return m_buttonWidget; } + inline void SetButtonWidget(WXWidget buttonWidget) { m_buttonWidget = buttonWidget; } inline WXWidget GetMainWidget() const { return m_menuWidget; } + inline wxMenu* GetParent() const { return m_menuParent; } + inline int GetId() const { return m_menuId; } + inline void SetId(int id) { m_menuId = id; } + inline void SetMenuBar(wxMenuBar* menuBar) { m_menuBar = menuBar; } + inline wxMenuBar* GetMenuBar() const { return m_menuBar; } + + void CreatePopup (WXWidget logicalParent, int x, int y); + void DestroyPopup (void); + void ShowPopup (int x, int y); + void HidePopup (void); + + WXWidget CreateMenu(wxMenuBar *menuBar, WXWidget parent, wxMenu *topMenu, + const wxString& title = "", bool isPulldown = FALSE); + + // For popups, need to destroy, then recreate menu for a different (or + // possibly same) window, since the parent may change. + 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; @@ -100,6 +135,7 @@ public: wxList m_menuItems; wxEvtHandler * m_parent; wxEvtHandler * m_eventHandler; + void* m_clientData; //// Motif-specific int m_numColumns; @@ -107,9 +143,12 @@ public: WXWidget m_popupShell; // For holding the popup shell widget WXWidget m_buttonWidget; // The actual string, so we can grey it etc. int m_menuId; - wxMenu* m_topMenu ; + wxMenu* m_topLevelMenu ; wxMenu* m_menuParent; bool m_ownedByMenuBar; + wxColour m_foregroundColour; + wxColour m_backgroundColour; + wxFont m_font; }; // ---------------------------------------------------------------------------- @@ -157,14 +196,40 @@ class WXDLLEXPORT wxMenuBar: public wxEvtHandler inline int GetMenuCount() const { return m_menuCount; } inline wxMenu* GetMenu(int i) const { return m_menus[i]; } + //// Motif-specific + inline wxFrame* GetMenuBarFrame() const { return m_menuBarFrame; } + inline void SetMenuBarFrame(wxFrame* frame) { m_menuBarFrame = frame; } + 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; wxMenu ** m_menus; wxString * m_titles; wxFrame * m_menuBarFrame; -/* TODO: data that represents the actual menubar when created. - */ + + //// Motif-specific + WXWidget m_mainWidget; + + wxColour m_foregroundColour; + wxColour m_backgroundColour; + wxFont m_font; }; #endif // _WX_MENU_H_