diff --git a/include/wx/qt/radiobox.h b/include/wx/qt/radiobox.h index be32fa4a23..ab4d84c050 100644 --- a/include/wx/qt/radiobox.h +++ b/include/wx/qt/radiobox.h @@ -79,6 +79,9 @@ public: virtual void SetSelection(int n) override; virtual int GetSelection() const override; + virtual void SetLabel(const wxString &label) override; + virtual wxString GetLabel() const override; + virtual QWidget *GetHandle() const override; private: diff --git a/include/wx/qt/radiobut.h b/include/wx/qt/radiobut.h index 4beac077e8..5f5a8f86a6 100644 --- a/include/wx/qt/radiobut.h +++ b/include/wx/qt/radiobut.h @@ -35,6 +35,9 @@ public: virtual void SetValue(bool value) override; virtual bool GetValue() const override; + virtual void SetLabel(const wxString &label) override; + virtual wxString GetLabel() const override; + virtual QWidget *GetHandle() const override; private: diff --git a/src/qt/anybutton.cpp b/src/qt/anybutton.cpp index f1a819491f..721d5af5dd 100644 --- a/src/qt/anybutton.cpp +++ b/src/qt/anybutton.cpp @@ -112,6 +112,8 @@ void wxAnyButton::QtSetBitmap( const wxBitmapBundle &bitmapBundle ) void wxAnyButton::SetLabel( const wxString &label ) { + wxAnyButtonBase::SetLabel( label ); + m_qtPushButton->setText( wxQtConvertString( label )); } diff --git a/src/qt/checkbox.cpp b/src/qt/checkbox.cpp index 71245afde4..aa8f90dc92 100644 --- a/src/qt/checkbox.cpp +++ b/src/qt/checkbox.cpp @@ -139,6 +139,8 @@ wxString wxCheckBox::GetLabel() const void wxCheckBox::SetLabel(const wxString& label) { + wxCheckBoxBase::SetLabel( label ); + m_qtCheckBox->setText( wxQtConvertString(label) ); } diff --git a/src/qt/cursor.cpp b/src/qt/cursor.cpp index 826aa696ee..328095943a 100644 --- a/src/qt/cursor.cpp +++ b/src/qt/cursor.cpp @@ -159,7 +159,11 @@ void wxCursor::InitFromStock( wxStockCursor cursorId ) void wxCursor::InitFromImage( const wxImage & image ) { AllocExclusive(); - GetHandle() = QCursor(*wxBitmap(image).GetHandle(), + + wxBitmap bmp(image); + bmp.QtBlendMaskWithAlpha(); + + GetHandle() = QCursor(*bmp.GetHandle(), image.HasOption(wxIMAGE_OPTION_CUR_HOTSPOT_X) ? image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_X) : -1, image.HasOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y) ? diff --git a/src/qt/radiobox.cpp b/src/qt/radiobox.cpp index c9e473b80d..5f630d75d7 100644 --- a/src/qt/radiobox.cpp +++ b/src/qt/radiobox.cpp @@ -365,3 +365,14 @@ QWidget *wxRadioBox::GetHandle() const return m_qtGroupBox; } +void wxRadioBox::SetLabel(const wxString& label) +{ + wxControlBase::SetLabel( label ); + + m_qtGroupBox->setTitle( wxQtConvertString( label ) ); +} + +wxString wxRadioBox::GetLabel() const +{ + return wxQtConvertString( m_qtGroupBox->title() ); +} diff --git a/src/qt/radiobut.cpp b/src/qt/radiobut.cpp index 8621d5760b..acae1847b9 100644 --- a/src/qt/radiobut.cpp +++ b/src/qt/radiobut.cpp @@ -164,3 +164,15 @@ QWidget *wxRadioButton::GetHandle() const { return m_qtRadioButton; } + +wxString wxRadioButton::GetLabel() const +{ + return wxQtConvertString( m_qtRadioButton->text() ); +} + +void wxRadioButton::SetLabel(const wxString& label) +{ + wxRadioButtonBase::SetLabel(label); + + m_qtRadioButton->setText( wxQtConvertString(label) ); +} diff --git a/src/qt/statbox.cpp b/src/qt/statbox.cpp index d4e8af0944..cea36a0df2 100644 --- a/src/qt/statbox.cpp +++ b/src/qt/statbox.cpp @@ -58,12 +58,14 @@ QWidget *wxStaticBox::GetHandle() const void wxStaticBox::SetLabel(const wxString& label) { - m_qtGroupBox->setTitle(wxQtConvertString(label)); + wxStaticBoxBase::SetLabel( label ); + + m_qtGroupBox->setTitle( wxQtConvertString( label ) ); } wxString wxStaticBox::GetLabel() const { - return wxQtConvertString(m_qtGroupBox->title()); + return wxQtConvertString( m_qtGroupBox->title() ); } void wxStaticBox::GetBordersForSizer(int *borderTop, int *borderOther) const diff --git a/src/qt/window.cpp b/src/qt/window.cpp index 673948b7d8..2a7d64c6d4 100644 --- a/src/qt/window.cpp +++ b/src/qt/window.cpp @@ -1176,7 +1176,14 @@ void wxWindowQt::DoSetToolTip( wxToolTip *tip ) bool wxWindowQt::DoPopupMenu(wxMenu *menu, int x, int y) { menu->UpdateUI(); - menu->GetHandle()->exec( GetHandle()->mapToGlobal( QPoint( x, y ) ) ); + + QPoint pt; + if (x == wxDefaultCoord && y == wxDefaultCoord) + pt = QCursor::pos(); + else + pt = GetHandle()->mapToGlobal(QPoint(x, y)); + + menu->GetHandle()->exec(pt); return true; }