X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8cf73271dd6f442a98e86b559d4a55c37e25b99f..f8b1df0b15f843b8f47efb9bee38f1de0fa95020:/include/wx/mac/carbon/menu.h diff --git a/include/wx/mac/carbon/menu.h b/include/wx/mac/carbon/menu.h index 854a70d107..1b78b37649 100644 --- a/include/wx/mac/carbon/menu.h +++ b/include/wx/mac/carbon/menu.h @@ -12,11 +12,7 @@ #ifndef _WX_MENU_H_ #define _WX_MENU_H_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "menu.h" -#endif - -class WXDLLEXPORT wxFrame; +class WXDLLIMPEXP_FWD_CORE wxFrame; #include "wx/arrstr.h" @@ -35,10 +31,6 @@ public: virtual ~wxMenu(); - // implement base class virtuals - virtual wxMenuItem* DoAppend(wxMenuItem *item); - virtual wxMenuItem* DoInsert(size_t pos, wxMenuItem *item); - virtual wxMenuItem* DoRemove(wxMenuItem *item); virtual void Attach(wxMenuBarBase *menubar) ; virtual void Break(); @@ -51,7 +43,7 @@ public: // implementation only from now on // ------------------------------- - int MacGetIndexFromId( int id ) ; + int MacGetIndexFromId( int id ) ; int MacGetIndexFromItem( wxMenuItem *pItem ) ; void MacEnableMenu( bool bDoEnable ) ; // MacOS needs to know about submenus somewhere within this menu @@ -69,6 +61,14 @@ public: short MacGetMenuId() { return m_macMenuId ; } + wxInt32 MacHandleCommandProcess( wxMenuItem* item, int id, wxWindow* targetWindow = NULL ); + wxInt32 MacHandleCommandUpdateStatus( wxMenuItem* item, int id, wxWindow* targetWindow = NULL); + +protected: + virtual wxMenuItem* DoAppend(wxMenuItem *item); + virtual wxMenuItem* DoInsert(size_t pos, wxMenuItem *item); + virtual wxMenuItem* DoRemove(wxMenuItem *item); + private: // common part of all ctors void Init(); @@ -108,7 +108,7 @@ public: // unused under MSW wxMenuBar(long style); // menubar takes ownership of the menus arrays but copies the titles - wxMenuBar(int n, wxMenu *menus[], const wxString titles[]); + wxMenuBar(size_t n, wxMenu *menus[], const wxString titles[], long style = 0); virtual ~wxMenuBar(); // menubar construction @@ -122,8 +122,14 @@ public: virtual wxMenuItem* FindItem( int id, wxMenu **menu = NULL ) const; virtual void EnableTop( size_t pos, bool flag ); - virtual void SetLabelTop( size_t pos, const wxString& label ); - virtual wxString GetLabelTop( size_t pos ) const; + virtual void SetMenuLabel( size_t pos, const wxString& label ); + virtual wxString GetMenuLabel( size_t pos ) const; + virtual bool Enable( bool enable = TRUE ); + // for virtual function hiding + virtual void Enable( int itemid, bool enable ) + { + wxMenuBarBase::Enable( itemid, enable ); + } // implementation from now on WXHMENU Create(); @@ -147,17 +153,24 @@ public: // call this function to update it (m_menuBarFrame should be !NULL) void Refresh(bool eraseBackground = TRUE, const wxRect *rect = (const wxRect *) NULL); - void MacInstallMenuBar() ; - static wxMenuBar* MacGetInstalledMenuBar() { return s_macInstalledMenuBar ; } - static void MacSetCommonMenuBar(wxMenuBar* menubar) { s_macCommonMenuBar=menubar; } - static wxMenuBar* MacGetCommonMenuBar() { return s_macCommonMenuBar; } + static void SetAutoWindowMenu( bool enable ) { s_macAutoWindowMenu = enable ; } + static bool GetAutoWindowMenu() { return s_macAutoWindowMenu ; } + + void MacInstallMenuBar() ; + static wxMenuBar* MacGetInstalledMenuBar() { return s_macInstalledMenuBar ; } + static void MacSetCommonMenuBar(wxMenuBar* menubar) { s_macCommonMenuBar=menubar; } + static wxMenuBar* MacGetCommonMenuBar() { return s_macCommonMenuBar; } + + static WXHMENU MacGetWindowMenuHMenu() { return s_macWindowMenuHandle ; } protected: // common part of all ctors void Init(); wxWindow *m_invokingWindow; - wxArrayString m_titles; + wxArrayString m_titles; + static bool s_macAutoWindowMenu ; + static WXHMENU s_macWindowMenuHandle ; private: static wxMenuBar* s_macInstalledMenuBar ;