]>
git.saurik.com Git - wxWidgets.git/blob - include/wx/univ/menuitem.h
   1 /////////////////////////////////////////////////////////////////////////////// 
   2 // Name:        wx/univ/menuitem.h 
   3 // Purpose:     wxMenuItem class for wxUniversal 
   4 // Author:      Vadim Zeitlin 
   8 // Copyright:   (c) 2001 SciTech Software, Inc. (www.scitechsoft.com) 
   9 // Licence:     wxWindows licence 
  10 /////////////////////////////////////////////////////////////////////////////// 
  12 #ifndef _WX_UNIV_MENUITEM_H_ 
  13 #define _WX_UNIV_MENUITEM_H_ 
  16     #pragma interface "univmenuitem.h" 
  19 // ---------------------------------------------------------------------------- 
  20 // wxMenuItem implements wxMenuItemBase 
  21 // ---------------------------------------------------------------------------- 
  23 class WXDLLEXPORT wxMenuItem 
: public wxMenuItemBase
 
  27     wxMenuItem(wxMenu 
*parentMenu 
= (wxMenu 
*)NULL
, 
  28                int id 
= wxID_SEPARATOR
, 
  29                const wxString
& name 
= wxEmptyString
, 
  30                const wxString
& help 
= wxEmptyString
, 
  31                wxItemKind kind 
= wxITEM_NORMAL
, 
  32                wxMenu 
*subMenu 
= (wxMenu 
*)NULL
); 
  33     virtual ~wxMenuItem(); 
  35     // override base class virtuals to update the item appearance on screen 
  36     virtual void SetText(const wxString
& text
); 
  37     virtual void SetCheckable(bool checkable
); 
  39     virtual void Enable(bool enable 
= TRUE
); 
  40     virtual void Check(bool check 
= TRUE
); 
  42     // we add some extra functions which are also available under MSW from 
  43     // wxOwnerDrawn class - they will be moved to wxMenuItemBase later 
  45     void SetBitmaps(const wxBitmap
& bmpChecked
, 
  46                     const wxBitmap
& bmpUnchecked 
= wxNullBitmap
); 
  47     void SetBitmap(const wxBitmap
& bmp
) { SetBitmaps(bmp
); } 
  48     const wxBitmap
& GetBitmap(bool checked 
= TRUE
) const 
  49       { return checked 
? m_bmpChecked 
: m_bmpUnchecked
; } 
  51     // mark item as belonging to the given radio group 
  52     void SetAsRadioGroupStart(); 
  53     void SetRadioGroupStart(int start
); 
  54     void SetRadioGroupEnd(int end
); 
  56     // wxUniv-specific methods for implementation only starting from here 
  58     // get the accel index of our label or -1 if none 
  59     int GetAccelIndex() const { return m_indexAccel
; } 
  61     // get the accel string (displayed to the right of the label) 
  62     const wxString
& GetAccelString() const { return m_strAccel
; } 
  64     // set/get the y coord and the height of this item: note that it must be 
  65     // set first and retrieved later, the item doesn't calculate it itself 
  66     void SetGeometry(wxCoord y
, wxCoord height
) 
  72     wxCoord 
GetPosition() const 
  74         wxASSERT_MSG( m_posY 
!= -1, _T("must call SetHeight first!") ); 
  79     wxCoord 
GetHeight() const 
  81         wxASSERT_MSG( m_height 
!= -1, _T("must call SetHeight first!") ); 
  87     // notify the menu about the change in this item 
  88     inline void NotifyMenu(); 
  90     // set the accel index and string from text 
  91     void UpdateAccelInfo(); 
  93     // the bitmaps (may be invalid, then they're not used) 
  94     wxBitmap m_bmpChecked
, 
  97     // the positions of the first and last items of the radio group this item 
  98     // belongs to or -1: start is the radio group start and is valid for all 
  99     // but first radio group items (m_isRadioGroupStart == FALSE), end is valid 
 100     // only for the first one 
 107     // does this item start a radio group? 
 108     bool m_isRadioGroupStart
; 
 110     // the position of the accelerator in our label, -1 if none 
 113     // the accel string (i.e. "Ctrl-Q" or "Alt-F1") 
 116     // the position and height of the displayed item 
 121     DECLARE_DYNAMIC_CLASS(wxMenuItem
) 
 124 #endif // _WX_UNIV_MENUITEM_H_