X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a31a5f85341a2ef131d86a1dee12f3d6c8156118..632783de61f266fcd6b4d63e924530eb958e1b46:/include/wx/mac/menu.h diff --git a/include/wx/mac/menu.h b/include/wx/mac/menu.h index ea1159e932..854a70d107 100644 --- a/include/wx/mac/menu.h +++ b/include/wx/mac/menu.h @@ -6,18 +6,20 @@ // Created: 1998-01-01 // RCS-ID: $Id$ // Copyright: (c) Stefan Csomor -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_MENU_H_ #define _WX_MENU_H_ -#if defined(__GNUG__) && !defined(__APPLE__) +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "menu.h" #endif class WXDLLEXPORT wxFrame; +#include "wx/arrstr.h" + // ---------------------------------------------------------------------------- // Menu // ---------------------------------------------------------------------------- @@ -34,9 +36,9 @@ public: virtual ~wxMenu(); // implement base class virtuals - virtual bool DoAppend(wxMenuItem *item); - virtual bool DoInsert(size_t pos, wxMenuItem *item); - virtual wxMenuItem *DoRemove(wxMenuItem *item); + 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(); @@ -46,20 +48,18 @@ public: // MSW-specific bool ProcessCommand(wxCommandEvent& event); -#if WXWIN_COMPATIBILITY - wxMenu(const wxString& title, const wxFunction func) - : wxMenuBase(title) - { - Callback(func); - } -#endif // WXWIN_COMPATIBILITY - // implementation only from now on // ------------------------------- - int MacGetIndexFromId( int id ) ; - int MacGetIndexFromItem( wxMenuItem *pItem ) ; - void MacEnableMenu( bool bDoEnable ) ; + int MacGetIndexFromId( int id ) ; + int MacGetIndexFromItem( wxMenuItem *pItem ) ; + void MacEnableMenu( bool bDoEnable ) ; + // MacOS needs to know about submenus somewhere within this menu + // before it can be displayed , also hide special menu items like preferences + // that are handled by the OS + void MacBeforeDisplay( bool isSubMenu ) ; + // undo all changes from the MacBeforeDisplay call + void MacAfterDisplay( bool isSubMenu ) ; // semi-private accessors // get the window which contains this menu @@ -67,7 +67,7 @@ public: // get the menu handle WXHMENU GetHMenu() const { return m_hMenu; } - short MacGetMenuId() { return m_macMenuId ; } + short MacGetMenuId() { return m_macMenuId ; } private: // common part of all ctors @@ -88,9 +88,9 @@ private: // the menu handle of this menu WXHMENU m_hMenu; - short m_macMenuId; + short m_macMenuId; - static short s_macNextMenuId ; + static short s_macNextMenuId ; DECLARE_DYNAMIC_CLASS(wxMenu) }; @@ -125,15 +125,6 @@ public: virtual void SetLabelTop( size_t pos, const wxString& label ); virtual wxString GetLabelTop( size_t pos ) const; - // compatibility: these functions are deprecated -#if WXWIN_COMPATIBILITY - void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } - wxEvtHandler *GetEventHandler() { return m_eventHandler; } - - bool Enabled(int id) const { return IsEnabled(id); } - bool Checked(int id) const { return IsChecked(id); } -#endif // WXWIN_COMPATIBILITY - // implementation from now on WXHMENU Create(); int FindMenu(const wxString& title); @@ -146,11 +137,11 @@ public: // attach to a frame void Attach(wxFrame *frame); - // clear the invoking window for all menus and submenus - void UnsetInvokingWindow() ; + // clear the invoking window for all menus and submenus + void UnsetInvokingWindow() ; - // set the invoking window for all menus and submenus - void SetInvokingWindow( wxFrame* frame ) ; + // set the invoking window for all menus and submenus + void SetInvokingWindow( wxFrame* frame ) ; // if the menubar is modified, the display is not updated automatically, // call this function to update it (m_menuBarFrame should be !NULL) @@ -158,20 +149,19 @@ public: void MacInstallMenuBar() ; static wxMenuBar* MacGetInstalledMenuBar() { return s_macInstalledMenuBar ; } + static void MacSetCommonMenuBar(wxMenuBar* menubar) { s_macCommonMenuBar=menubar; } + static wxMenuBar* MacGetCommonMenuBar() { return s_macCommonMenuBar; } protected: // common part of all ctors void Init(); wxWindow *m_invokingWindow; -#if WXWIN_COMPATIBILITY - wxEvtHandler *m_eventHandler; -#endif // WXWIN_COMPATIBILITY - wxArrayString m_titles; private: - static wxMenuBar* s_macInstalledMenuBar ; + static wxMenuBar* s_macInstalledMenuBar ; + static wxMenuBar* s_macCommonMenuBar ; DECLARE_DYNAMIC_CLASS(wxMenuBar) };