/////////////////////////////////////////////////////////////////////////////
-// Name: menu.h
+// Name: wx/msw/menu.h
// Purpose: wxMenu, wxMenuBar classes
// Author: Julian Smart
// Modified by: Vadim Zeitlin (wxMenuItem is now in separate file)
// Created: 01/02/97
// RCS-ID: $Id$
-// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows license
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_MENU_H_
#define _WX_MENU_H_
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface "menu.h"
#endif
#include "wx/accel.h"
#include "wx/dynarray.h"
- WX_DEFINE_EXPORTED_ARRAY(wxAcceleratorEntry *, wxAcceleratorArray);
+ WX_DEFINE_EXPORTED_ARRAY_NO_PTR(wxAcceleratorEntry *, wxAcceleratorArray);
#endif // wxUSE_ACCEL
class WXDLLEXPORT wxFrame;
+#if defined(__WXWINCE__) && wxUSE_TOOLBAR
+class WXDLLEXPORT wxToolBar;
+#endif
+
+#include "wx/arrstr.h"
+
// ----------------------------------------------------------------------------
// Menu
// ----------------------------------------------------------------------------
// implementation only from now on
// -------------------------------
+ virtual void Attach(wxMenuBarBase *menubar);
+
bool MSWCommand(WXUINT param, WXWORD id);
// semi-private accessors
// common part of Append/Insert (behaves as Append is pos == (size_t)-1)
bool DoInsertOrAppend(wxMenuItem *item, size_t pos = (size_t)-1);
+ // terminate the current radio group, if any
+ void EndRadioGroup();
+
// if TRUE, insert a breal before appending the next item
bool m_doBreak;
+ // the position of the first item in the current radio group or -1
+ int m_startRadioGroup;
+
// the menu handle of this menu
WXHMENU m_hMenu;
wxAcceleratorArray m_accels;
#endif // wxUSE_ACCEL
- DECLARE_DYNAMIC_CLASS(wxMenu)
+ DECLARE_DYNAMIC_CLASS_NO_COPY(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();
virtual void Detach();
virtual void Attach(wxFrame *frame);
+#if defined(__WXWINCE__) && wxUSE_TOOLBAR
+ // Under WinCE, a menubar is owned by the frame's toolbar
+ void SetToolBar(wxToolBar* toolBar) { m_toolBar = toolBar; }
+ wxToolBar* GetToolBar() const { return m_toolBar; }
+#endif
+
#if wxUSE_ACCEL
// get the accel table for all the menus
const wxAcceleratorTable& GetAccelTable() const { return m_accelTable; }
// call this function to update it (m_menuBarFrame should be !NULL)
void Refresh();
+ // To avoid compile warning
+ void Refresh( bool eraseBackground,
+ const wxRect *rect = (const wxRect *) NULL ) { wxWindow::Refresh(eraseBackground, rect); }
+
protected:
// common part of all ctors
void Init();
-#if WXWIN_COMPATIBILITY
- wxEvtHandler *m_eventHandler;
-#endif // WXWIN_COMPATIBILITY
-
wxArrayString m_titles;
WXHMENU m_hMenu;
wxAcceleratorTable m_accelTable;
#endif // wxUSE_ACCEL
+#if defined(__WXWINCE__) && wxUSE_TOOLBAR
+ wxToolBar* m_toolBar;
+#endif
+
private:
- DECLARE_DYNAMIC_CLASS(wxMenuBar)
+ DECLARE_DYNAMIC_CLASS_NO_COPY(wxMenuBar)
};
#endif // _WX_MENU_H_