#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"
// Menu
// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxMenu : public wxMenuBase
+class WXDLLIMPEXP_CORE wxMenu : public wxMenuBase
{
public:
// ctors & dtor
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();
// 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
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();
// Menu Bar (a la Windows)
// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxMenuBar : public wxMenuBarBase
+class WXDLLIMPEXP_CORE wxMenuBar : public wxMenuBarBase
{
public:
// ctors & dtor
// 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
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();
// 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 ;