]>
git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/menuitem.h
28e8e1c9db31f89a0a125f1b31c31dc20f1436e9
1 ///////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxMenuItem class
4 // Author: Vadim Zeitlin
8 // Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
9 // Licence: wxWindows license
10 ///////////////////////////////////////////////////////////////////////////////
16 #pragma interface "menuitem.h"
19 // ----------------------------------------------------------------------------
21 // ----------------------------------------------------------------------------
25 // an exception to the general rule that a normal header doesn't include other
26 // headers - only because ownerdrw.h is not always included and I don't want
27 // to write #ifdef's everywhere...
29 #include "wx/ownerdrw.h"
32 // ----------------------------------------------------------------------------
34 // ----------------------------------------------------------------------------
36 // id for a separator line in the menu (invalid for normal item)
37 #define ID_SEPARATOR (-1)
39 // ----------------------------------------------------------------------------
40 // wxMenuItem: an item in the menu, optionally implements owner-drawn behaviour
41 // ----------------------------------------------------------------------------
42 class WXDLLEXPORT wxMenuItem
: public wxObject
47 DECLARE_DYNAMIC_CLASS(wxMenuItem
)
51 wxMenuItem(wxMenu
*pParentMenu
= NULL
, int id
= ID_SEPARATOR
,
52 const wxString
& strName
= "", const wxString
& wxHelp
= "",
53 bool bCheckable
= FALSE
, wxMenu
*pSubMenu
= NULL
);
54 virtual ~wxMenuItem();
56 // accessors (some more are inherited from wxOwnerDrawn or are below)
57 bool IsSeparator() const { return m_idItem
== ID_SEPARATOR
; }
58 bool IsEnabled() const { return m_bEnabled
; }
59 bool IsChecked() const { return m_bChecked
; }
60 bool IsSubMenu() const { return GetSubMenu() != NULL
; }
62 int GetId() const { return m_idItem
; }
63 const wxString
& GetHelp() const { return m_strHelp
; }
64 wxMenu
*GetSubMenu() const { return m_pSubMenu
; }
66 // the id for a popup menu is really its menu handle (as required by
67 // ::AppendMenu() API)
68 int GetRealId() const;
71 void SetName(const wxString
& strName
);
72 void SetHelp(const wxString
& strHelp
) { m_strHelp
= strHelp
; }
74 void Enable(bool bDoEnable
= TRUE
);
75 void Check(bool bDoCheck
= TRUE
);
80 int m_idItem
; // numeric id of the item
81 wxString m_strHelp
; // associated help string
82 wxMenu
*m_pSubMenu
, // may be NULL
83 *m_pParentMenu
; // menu this item is contained in
84 bool m_bEnabled
, // enabled or greyed?
85 m_bChecked
; // checked? (only if checkable)
88 // wxOwnerDrawn base class already has these variables - nothing to do
91 bool m_bCheckable
; // can be checked?
92 wxString m_strName
; // name or label of the item
95 const wxString
& GetName() const { return m_strName
; }
96 bool IsCheckable() const { return m_bCheckable
; }