X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e6feb95a79834836e88143b15d9f424ebe79621..02ac8d7a5ddbd0694b46cc5133e82eb22d935829:/include/wx/msw/menu.h diff --git a/include/wx/msw/menu.h b/include/wx/msw/menu.h index 29472ce14c..8ef7acf09a 100644 --- a/include/wx/msw/menu.h +++ b/include/wx/msw/menu.h @@ -1,12 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// -// 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_ @@ -20,11 +20,17 @@ #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 // ---------------------------------------------------------------------------- @@ -63,6 +69,8 @@ public: // implementation only from now on // ------------------------------- + virtual void Attach(wxMenuBarBase *menubar); + bool MSWCommand(WXUINT param, WXWORD id); // semi-private accessors @@ -91,9 +99,15 @@ private: // 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; @@ -102,7 +116,7 @@ private: wxAcceleratorArray m_accels; #endif // wxUSE_ACCEL - DECLARE_DYNAMIC_CLASS(wxMenu) + DECLARE_DYNAMIC_CLASS_NO_COPY(wxMenu) }; // ---------------------------------------------------------------------------- @@ -145,6 +159,12 @@ public: 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; } @@ -160,6 +180,10 @@ public: // 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(); @@ -177,8 +201,12 @@ protected: 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_