From 4e23b3e7f4c9106661c8f2584b3c33656d8fc28f Mon Sep 17 00:00:00 2001 From: Maarten Bent Date: Sun, 30 Sep 2018 00:25:29 +0200 Subject: [PATCH] Fix missing wxOwnerDrawn functions in WXQT wxMenuItem --- include/wx/qt/menuitem.h | 23 +++++++++++++++++++++++ src/qt/menuitem.cpp | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/include/wx/qt/menuitem.h b/include/wx/qt/menuitem.h index 158007fc4e..953e48c565 100644 --- a/include/wx/qt/menuitem.h +++ b/include/wx/qt/menuitem.h @@ -9,12 +9,20 @@ #define _WX_QT_MENUITEM_H_ #include "wx/menuitem.h" + +#if wxUSE_OWNER_DRAWN + #include "wx/ownerdrw.h" +#endif + class QAction; class WXDLLIMPEXP_FWD_CORE wxBitmap; class WXDLLIMPEXP_FWD_CORE wxMenu; class WXDLLIMPEXP_CORE wxMenuItem : public wxMenuItemBase +#if wxUSE_OWNER_DRAWN + , public wxOwnerDrawnBase +#endif { public: wxMenuItem(wxMenu *parentMenu = NULL, @@ -33,15 +41,30 @@ public: virtual void Check(bool check = true); virtual bool IsChecked() const; + void SetBitmaps(const wxBitmap& bmpChecked, + const wxBitmap& bmpUnchecked = wxNullBitmap); void SetBitmap(const wxBitmap& bitmap); const wxBitmap& GetBitmap() const; virtual QAction *GetHandle() const; +#if wxUSE_OWNER_DRAWN + void SetDisabledBitmap(const wxBitmap& bmpDisabled); + const wxBitmap& GetDisabledBitmap() const; + + // override wxOwnerDrawn base class virtuals + virtual wxString GetName() const wxOVERRIDE; + virtual bool OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODStatus stat) wxOVERRIDE; +#endif // wxUSE_OWNER_DRAWN + private: // Qt is using an action instead of a menu item. QAction *m_qtAction; +#if wxUSE_OWNER_DRAWN + wxBitmap m_bmpDisabled; +#endif // wxUSE_OWNER_DRAWN + wxDECLARE_DYNAMIC_CLASS( wxMenuItem ); }; diff --git a/src/qt/menuitem.cpp b/src/qt/menuitem.cpp index eab049e342..85106eff59 100644 --- a/src/qt/menuitem.cpp +++ b/src/qt/menuitem.cpp @@ -106,6 +106,12 @@ bool wxMenuItem::IsChecked() const } +void wxMenuItem::SetBitmaps(const wxBitmap& WXUNUSED(bmpChecked), + const wxBitmap& WXUNUSED(bmpUnchecked)) +{ + wxMISSING_FUNCTION(); +} + void wxMenuItem::SetBitmap(const wxBitmap& WXUNUSED(bitmap)) { wxMISSING_FUNCTION(); @@ -125,6 +131,34 @@ QAction *wxMenuItem::GetHandle() const return m_qtAction; } +#if wxUSE_OWNER_DRAWN + +void wxMenuItem::SetDisabledBitmap(const wxBitmap& bmpDisabled) +{ + m_bmpDisabled = bmpDisabled; + wxMISSING_FUNCTION(); +} + +const wxBitmap& wxMenuItem::GetDisabledBitmap() const +{ + wxMISSING_FUNCTION(); + return m_bmpDisabled; +} + +wxString wxMenuItem::GetName() const +{ + return GetItemLabelText(); +} + +bool wxMenuItem::OnDrawItem(wxDC& WXUNUSED(dc), const wxRect& WXUNUSED(rc), + wxODAction WXUNUSED(act), wxODStatus WXUNUSED(stat)) +{ + wxMISSING_FUNCTION(); + return false; +} + +#endif // wxUSE_OWNER_DRAWN + //============================================================================= wxQtAction::wxQtAction( wxMenu *parent, int id, const wxString &text, const wxString &help,