X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/371a5b4e62eb415107e045588f614fa49e866e78..7d3f6b4ded6aa412cb1cc306fef478955d448c5b:/include/wx/os2/menuitem.h diff --git a/include/wx/os2/menuitem.h b/include/wx/os2/menuitem.h index 019584dee5..4cfa9b06b3 100644 --- a/include/wx/os2/menuitem.h +++ b/include/wx/os2/menuitem.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: menuitem.h +// Name: wx/os2/menuitem.h // Purpose: wxMenuItem class // Author: Vadim Zeitlin // Modified by: @@ -12,21 +12,19 @@ #ifndef _MENUITEM_H #define _MENUITEM_H -#ifdef __GNUG__ -#pragma interface "menuitem.h" -#endif - // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- -#include "wx/setup.h" +#include "wx/defs.h" +#include "wx/os2/private.h" // for MENUITEM // an exception to the general rule that a normal header doesn't include other // headers - only because ownerdrw.h is not always included and I don't want // to write #ifdef's everywhere... #if wxUSE_OWNER_DRAWN - #include "wx/ownerdrw.h" + #include "wx/ownerdrw.h" + #include "wx/bitmap.h" #endif // ---------------------------------------------------------------------------- @@ -36,7 +34,7 @@ // ---------------------------------------------------------------------------- // wxMenuItem: an item in the menu, optionally implements owner-drawn behaviour // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxMenuItem: public wxMenuItemBase +class WXDLLIMPEXP_CORE wxMenuItem: public wxMenuItemBase #if wxUSE_OWNER_DRAWN , public wxOwnerDrawn #endif @@ -47,8 +45,8 @@ public: // wxMenuItem( wxMenu* pParentMenu = NULL ,int nId = wxID_SEPARATOR - ,const wxString& rStrName = "" - ,const wxString& rWxHelp = "" + ,const wxString& rStrName = wxEmptyString + ,const wxString& rWxHelp = wxEmptyString ,wxItemKind eKind = wxITEM_NORMAL ,wxMenu* pSubMenu = NULL ); @@ -61,18 +59,17 @@ public: ,const wxString& rsText ,const wxString& rsHelp ,bool bIsCheckable - ,wxMenu* pSubMenu = (wxMenu *)NULL + ,wxMenu* pSubMenu = NULL ); virtual ~wxMenuItem(); // // Override base class virtuals // - virtual void SetText(const wxString& rStrName); - virtual void SetCheckable(bool bCheckable); + virtual void SetItemLabel(const wxString& rStrName); - virtual void Enable(bool bDoEnable = TRUE); - virtual void Check(bool bDoCheck = TRUE); + virtual void Enable(bool bDoEnable = true); + virtual void Check(bool bDoCheck = true); virtual bool IsChecked(void) const; // @@ -100,6 +97,48 @@ public: // MENUITEM m_vMenuData; +#if wxUSE_OWNER_DRAWN + + void SetBitmaps(const wxBitmap& bmpChecked, + const wxBitmap& bmpUnchecked = wxNullBitmap) + { + m_bmpChecked = bmpChecked; + m_bmpUnchecked = bmpUnchecked; + SetOwnerDrawn(true); + } + + void SetBitmap(const wxBitmap& bmp, bool bChecked = true) + { + if ( bChecked ) + m_bmpChecked = bmp; + else + m_bmpUnchecked = bmp; + SetOwnerDrawn(true); + } + + void SetDisabledBitmap(const wxBitmap& bmpDisabled) + { + m_bmpDisabled = bmpDisabled; + SetOwnerDrawn(true); + } + + const wxBitmap& GetBitmap(bool bChecked = true) const + { return (bChecked ? m_bmpChecked : m_bmpUnchecked); } + + const wxBitmap& GetDisabledBitmap() const + { return m_bmpDisabled; } + + + // override wxOwnerDrawn base class virtuals + virtual wxString GetName() const; + virtual bool OnMeasureItem(size_t *pwidth, size_t *pheight); + virtual bool OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODStatus stat); + +protected: + virtual void GetFontToUse(wxFont& font) const; + +#endif // wxUSE_OWNER_DRAWN + private: void Init(); @@ -120,6 +159,13 @@ private: // bool m_bIsRadioGroupStart; +#if wxUSE_OWNER_DRAWN + // item bitmaps + wxBitmap m_bmpChecked, // bitmap to put near the item + m_bmpUnchecked, // (checked is used also for 'uncheckable' items) + m_bmpDisabled; +#endif // wxUSE_OWNER_DRAWN + DECLARE_DYNAMIC_CLASS(wxMenuItem) }; // end of CLASS wxMenuItem