// 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
// 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
// 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
// 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)
};
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);
// 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)
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)
};