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:
Vadim Zeitlin
2008-08-21 21:37:22 +00:00
parent e928566f7d
commit 67abc78356

View File

@@ -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 )