If a QGroupBox is disabled, then you cannot set any of its items to be enabled without first enabling it. Enabling/disabling it will set that value (true/false) on all of its items, although setting the QGroupBox to an enabled state which it already has does not result in this behaviour. Fix wxQt to match the expected wxRadioBox behaviour and allow the unit test to pass. Closes https://github.com/wxWidgets/wxWidgets/pull/1064
97 lines
3.3 KiB
C++
97 lines
3.3 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/qt/radiobox.h
|
|
// Author: Peter Most, Mariano Reingart
|
|
// Copyright: (c) 2010 wxWidgets dev team
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_QT_RADIOBOX_H_
|
|
#define _WX_QT_RADIOBOX_H_
|
|
|
|
class QGroupBox;
|
|
class QButtonGroup;
|
|
class QBoxLayout;
|
|
|
|
class WXDLLIMPEXP_CORE wxRadioBox : public wxControl, public wxRadioBoxBase
|
|
{
|
|
public:
|
|
wxRadioBox();
|
|
|
|
wxRadioBox(wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxString& title,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
int n = 0, const wxString choices[] = NULL,
|
|
int majorDim = 0,
|
|
long style = wxRA_SPECIFY_COLS,
|
|
const wxValidator& val = wxDefaultValidator,
|
|
const wxString& name = wxRadioBoxNameStr);
|
|
|
|
wxRadioBox(wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxString& title,
|
|
const wxPoint& pos,
|
|
const wxSize& size,
|
|
const wxArrayString& choices,
|
|
int majorDim = 0,
|
|
long style = wxRA_SPECIFY_COLS,
|
|
const wxValidator& val = wxDefaultValidator,
|
|
const wxString& name = wxRadioBoxNameStr);
|
|
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxString& title,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
int n = 0, const wxString choices[] = NULL,
|
|
int majorDim = 0,
|
|
long style = wxRA_SPECIFY_COLS,
|
|
const wxValidator& val = wxDefaultValidator,
|
|
const wxString& name = wxRadioBoxNameStr);
|
|
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxString& title,
|
|
const wxPoint& pos,
|
|
const wxSize& size,
|
|
const wxArrayString& choices,
|
|
int majorDim = 0,
|
|
long style = wxRA_SPECIFY_COLS,
|
|
const wxValidator& val = wxDefaultValidator,
|
|
const wxString& name = wxRadioBoxNameStr);
|
|
|
|
using wxWindowBase::Show;
|
|
using wxWindowBase::Enable;
|
|
using wxRadioBoxBase::GetDefaultBorder;
|
|
|
|
virtual bool Enable(unsigned int n, bool enable = true) wxOVERRIDE;
|
|
virtual bool Enable(bool enable = true) wxOVERRIDE;
|
|
virtual bool Show(unsigned int n, bool show = true) wxOVERRIDE;
|
|
virtual bool IsItemEnabled(unsigned int n) const wxOVERRIDE;
|
|
virtual bool IsItemShown(unsigned int n) const wxOVERRIDE;
|
|
|
|
virtual unsigned int GetCount() const;
|
|
virtual wxString GetString(unsigned int n) const;
|
|
virtual void SetString(unsigned int n, const wxString& s);
|
|
|
|
virtual void SetSelection(int n);
|
|
virtual int GetSelection() const;
|
|
|
|
virtual QWidget *GetHandle() const;
|
|
|
|
private:
|
|
// The 'visual' group box:
|
|
QGroupBox *m_qtGroupBox;
|
|
|
|
// Handles the mutual exclusion of buttons:
|
|
QButtonGroup *m_qtButtonGroup;
|
|
|
|
// Autofit layout for buttons (either vert. or horiz.):
|
|
QBoxLayout *m_qtBoxLayout;
|
|
|
|
wxDECLARE_DYNAMIC_CLASS(wxRadioBox);
|
|
};
|
|
|
|
#endif // _WX_QT_RADIOBOX_H_
|