Implement setting bitmaps for the menu item for wxQt

Closes https://github.com/wxWidgets/wxWidgets/pull/975
This commit is contained in:
Vadim Zeitlin
2018-10-11 14:40:20 +02:00
parent 17e243a5e4
commit bc974910ec
3 changed files with 16 additions and 13 deletions

View File

@@ -166,6 +166,7 @@ wxOSX:
wxQt:
- Fix menu bar background colour (Naser Buhamad).
- Add support for bitmaps in menu items (Igor Korot).
3.1.1: (released 2018-02-19)

View File

@@ -9,6 +9,8 @@
#define _WX_QT_MENUITEM_H_
#include "wx/menuitem.h"
#include "wx/bitmap.h"
class QAction;
class WXDLLIMPEXP_FWD_CORE wxBitmap;
@@ -33,14 +35,15 @@ public:
virtual void Check(bool check = true);
virtual bool IsChecked() const;
void SetBitmap(const wxBitmap& bitmap);
const wxBitmap& GetBitmap() const;
virtual void SetBitmap(const wxBitmap& bitmap);
virtual const wxBitmap& GetBitmap() const { return m_bitmap; };
virtual QAction *GetHandle() const;
private:
// Qt is using an action instead of a menu item.
QAction *m_qtAction;
wxBitmap m_bitmap;
wxDECLARE_DYNAMIC_CLASS( wxMenuItem );
};

View File

@@ -106,18 +106,17 @@ bool wxMenuItem::IsChecked() const
}
void wxMenuItem::SetBitmap(const wxBitmap& WXUNUSED(bitmap))
void wxMenuItem::SetBitmap(const wxBitmap& bitmap)
{
wxMISSING_FUNCTION();
}
const wxBitmap &wxMenuItem::GetBitmap() const
{
wxMISSING_FUNCTION();
static wxBitmap s_bitmap;
return s_bitmap;
if ( m_kind == wxITEM_NORMAL )
{
m_bitmap = bitmap;
m_qtAction->setIcon( QIcon( *m_bitmap.GetHandle() ) );
}
else
{
wxFAIL_MSG("only normal menu items can have bitmaps");
}
}
QAction *wxMenuItem::GetHandle() const