#ifndef _WX_UNIV_MENUITEM_H_
#define _WX_UNIV_MENUITEM_H_
-#ifdef __GNUG__
- #pragma interface "menuitem.h"
-#endif
-
// ----------------------------------------------------------------------------
// wxMenuItem implements wxMenuItemBase
// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxMenuItem : public wxMenuItemBase
+class WXDLLIMPEXP_CORE wxMenuItem : public wxMenuItemBase
{
public:
// ctor & dtor
- wxMenuItem(wxMenu *parentMenu = (wxMenu *)NULL,
+ wxMenuItem(wxMenu *parentMenu = NULL,
int id = wxID_SEPARATOR,
const wxString& name = wxEmptyString,
const wxString& help = wxEmptyString,
- bool isCheckable = FALSE,
- wxMenu *subMenu = (wxMenu *)NULL);
+ wxItemKind kind = wxITEM_NORMAL,
+ wxMenu *subMenu = NULL);
virtual ~wxMenuItem();
// override base class virtuals to update the item appearance on screen
- virtual void SetText(const wxString& text);
+ virtual void SetItemLabel(const wxString& text);
virtual void SetCheckable(bool checkable);
- virtual void Enable(bool enable = TRUE);
- virtual void Check(bool check = TRUE);
+ virtual void Enable(bool enable = true);
+ virtual void Check(bool check = true);
// we add some extra functions which are also available under MSW from
// wxOwnerDrawn class - they will be moved to wxMenuItemBase later
void SetBitmaps(const wxBitmap& bmpChecked,
const wxBitmap& bmpUnchecked = wxNullBitmap);
void SetBitmap(const wxBitmap& bmp) { SetBitmaps(bmp); }
- const wxBitmap& GetBitmap(bool checked = TRUE) const
+ const wxBitmap& GetBitmap(bool checked = true) const
{ return checked ? m_bmpChecked : m_bmpUnchecked; }
+ void SetDisabledBitmap( const wxBitmap& bmpDisabled )
+ { m_bmpDisabled = bmpDisabled; }
+ const wxBitmap& GetDisabledBitmap() const
+ { return m_bmpDisabled; }
+
+ // mark item as belonging to the given radio group
+ void SetAsRadioGroupStart();
+ void SetRadioGroupStart(int start);
+ void SetRadioGroupEnd(int end);
+
// wxUniv-specific methods for implementation only starting from here
// get the accel index of our label or -1 if none
wxCoord GetPosition() const
{
- wxASSERT_MSG( m_posY != -1, _T("must call SetHeight first!") );
+ wxASSERT_MSG( m_posY != wxDefaultCoord, wxT("must call SetHeight first!") );
return m_posY;
}
wxCoord GetHeight() const
{
- wxASSERT_MSG( m_height != -1, _T("must call SetHeight first!") );
+ wxASSERT_MSG( m_height != wxDefaultCoord, wxT("must call SetHeight first!") );
return m_height;
}
// the bitmaps (may be invalid, then they're not used)
wxBitmap m_bmpChecked,
- m_bmpUnchecked;
+ m_bmpUnchecked,
+ m_bmpDisabled;
+
+ // the positions of the first and last items of the radio group this item
+ // belongs to or -1: start is the radio group start and is valid for all
+ // but first radio group items (m_isRadioGroupStart == false), end is valid
+ // only for the first one
+ union
+ {
+ int start;
+ int end;
+ } m_radioGroup;
+
+ // does this item start a radio group?
+ bool m_isRadioGroupStart;
// the position of the accelerator in our label, -1 if none
int m_indexAccel;