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
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// kinds of comboboxes
 | 
			
		||||
enum
 | 
			
		||||
{
 | 
			
		||||
    ComboKind_Default,
 | 
			
		||||
    ComboKind_Simple,
 | 
			
		||||
    ComboKind_DropDown
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// ----------------------------------------------------------------------------
 | 
			
		||||
// BitmapComboBoxWidgetsPage
 | 
			
		||||
@@ -161,6 +168,9 @@ protected:
 | 
			
		||||
    // the controls
 | 
			
		||||
    // ------------
 | 
			
		||||
 | 
			
		||||
    // the sel mode radiobox
 | 
			
		||||
    wxRadioBox *m_radioKind;
 | 
			
		||||
 | 
			
		||||
    // the checkboxes for styles
 | 
			
		||||
    wxCheckBox *m_chkSort,
 | 
			
		||||
               *m_chkReadonly;
 | 
			
		||||
@@ -227,10 +237,14 @@ END_EVENT_TABLE()
 | 
			
		||||
// 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"),
 | 
			
		||||
                       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
 | 
			
		||||
    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);
 | 
			
		||||
 | 
			
		||||
    m_chkSort = CreateCheckBoxAndAddToSizer(sizerStyle, _T("&Sort items"));
 | 
			
		||||
@@ -296,6 +324,7 @@ void BitmapComboBoxWidgetsPage::CreateContent()
 | 
			
		||||
    sizerStyle->Add(btn, 0, wxALIGN_CENTRE_HORIZONTAL | wxALL, 3);
 | 
			
		||||
 | 
			
		||||
    sizerLeft->Add(sizerStyle, 0, wxGROW | wxALIGN_CENTRE_HORIZONTAL);
 | 
			
		||||
    sizerLeft->Add(m_radioKind, 0, wxGROW | wxALL, 5);
 | 
			
		||||
 | 
			
		||||
    // left pane - other options box
 | 
			
		||||
    box = new wxStaticBox(this, wxID_ANY, _T("Demo options"));
 | 
			
		||||
@@ -401,6 +430,24 @@ void BitmapComboBoxWidgetsPage::CreateCombo()
 | 
			
		||||
    if ( m_chkReadonly->GetValue() )
 | 
			
		||||
        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;
 | 
			
		||||
    wxArrayPtrVoid bitmaps;
 | 
			
		||||
    if ( m_combobox )
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user