add a radio box to select the combobox type (#9845)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55157 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -87,6 +87,13 @@ enum
|
|||||||
BitmapComboBoxPage_ContainerTests
|
BitmapComboBoxPage_ContainerTests
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// kinds of comboboxes
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
ComboKind_Default,
|
||||||
|
ComboKind_Simple,
|
||||||
|
ComboKind_DropDown
|
||||||
|
};
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// BitmapComboBoxWidgetsPage
|
// BitmapComboBoxWidgetsPage
|
||||||
@@ -161,6 +168,9 @@ protected:
|
|||||||
// the controls
|
// the controls
|
||||||
// ------------
|
// ------------
|
||||||
|
|
||||||
|
// the sel mode radiobox
|
||||||
|
wxRadioBox *m_radioKind;
|
||||||
|
|
||||||
// the checkboxes for styles
|
// the checkboxes for styles
|
||||||
wxCheckBox *m_chkSort,
|
wxCheckBox *m_chkSort,
|
||||||
*m_chkReadonly;
|
*m_chkReadonly;
|
||||||
@@ -227,10 +237,14 @@ END_EVENT_TABLE()
|
|||||||
// implementation
|
// implementation
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
|
#if defined(__WXMSW__) || defined(__WXGTK__)
|
||||||
|
#define NATIVE_OR_GENERIC_CTRLS NATIVE_CTRLS
|
||||||
|
#else
|
||||||
|
#define NATIVE_OR_GENERIC_CTRLS GENERIC_CTRLS
|
||||||
|
#endif
|
||||||
|
|
||||||
IMPLEMENT_WIDGETS_PAGE(BitmapComboBoxWidgetsPage, _T("BitmapCombobox"),
|
IMPLEMENT_WIDGETS_PAGE(BitmapComboBoxWidgetsPage, _T("BitmapCombobox"),
|
||||||
GENERIC_CTRLS | WITH_ITEMS_CTRLS | COMBO_CTRLS
|
NATIVE_OR_GENERIC_CTRLS | WITH_ITEMS_CTRLS | COMBO_CTRLS
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@@ -287,6 +301,20 @@ void BitmapComboBoxWidgetsPage::CreateContent()
|
|||||||
// left pane - style box
|
// left pane - style box
|
||||||
wxStaticBox *box = new wxStaticBox(this, wxID_ANY, _T("&Set style"));
|
wxStaticBox *box = new wxStaticBox(this, wxID_ANY, _T("&Set style"));
|
||||||
|
|
||||||
|
|
||||||
|
// should be in sync with ComboKind_XXX values
|
||||||
|
static const wxString kinds[] =
|
||||||
|
{
|
||||||
|
_T("default"),
|
||||||
|
_T("simple"),
|
||||||
|
_T("drop down"),
|
||||||
|
};
|
||||||
|
|
||||||
|
m_radioKind = new wxRadioBox(this, wxID_ANY, _T("Combobox &kind:"),
|
||||||
|
wxDefaultPosition, wxDefaultSize,
|
||||||
|
WXSIZEOF(kinds), kinds,
|
||||||
|
1, wxRA_SPECIFY_COLS);
|
||||||
|
|
||||||
wxSizer *sizerStyle = new wxStaticBoxSizer(box, wxVERTICAL);
|
wxSizer *sizerStyle = new wxStaticBoxSizer(box, wxVERTICAL);
|
||||||
|
|
||||||
m_chkSort = CreateCheckBoxAndAddToSizer(sizerStyle, _T("&Sort items"));
|
m_chkSort = CreateCheckBoxAndAddToSizer(sizerStyle, _T("&Sort items"));
|
||||||
@@ -296,6 +324,7 @@ void BitmapComboBoxWidgetsPage::CreateContent()
|
|||||||
sizerStyle->Add(btn, 0, wxALIGN_CENTRE_HORIZONTAL | wxALL, 3);
|
sizerStyle->Add(btn, 0, wxALIGN_CENTRE_HORIZONTAL | wxALL, 3);
|
||||||
|
|
||||||
sizerLeft->Add(sizerStyle, 0, wxGROW | wxALIGN_CENTRE_HORIZONTAL);
|
sizerLeft->Add(sizerStyle, 0, wxGROW | wxALIGN_CENTRE_HORIZONTAL);
|
||||||
|
sizerLeft->Add(m_radioKind, 0, wxGROW | wxALL, 5);
|
||||||
|
|
||||||
// left pane - other options box
|
// left pane - other options box
|
||||||
box = new wxStaticBox(this, wxID_ANY, _T("Demo options"));
|
box = new wxStaticBox(this, wxID_ANY, _T("Demo options"));
|
||||||
@@ -401,6 +430,24 @@ void BitmapComboBoxWidgetsPage::CreateCombo()
|
|||||||
if ( m_chkReadonly->GetValue() )
|
if ( m_chkReadonly->GetValue() )
|
||||||
flags |= wxCB_READONLY;
|
flags |= wxCB_READONLY;
|
||||||
|
|
||||||
|
switch ( m_radioKind->GetSelection() )
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
wxFAIL_MSG( _T("unknown combo kind") );
|
||||||
|
// fall through
|
||||||
|
|
||||||
|
case ComboKind_Default:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ComboKind_Simple:
|
||||||
|
flags |= wxCB_SIMPLE;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ComboKind_DropDown:
|
||||||
|
flags = wxCB_DROPDOWN;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
wxArrayString items;
|
wxArrayString items;
|
||||||
wxArrayPtrVoid bitmaps;
|
wxArrayPtrVoid bitmaps;
|
||||||
if ( m_combobox )
|
if ( m_combobox )
|
||||||
|
Reference in New Issue
Block a user