X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9849a94455aafdada66ed0a8227710f23bcf53b9..841f23e18a9d9e3d987b60422c3a220571868337:/samples/widgets/combobox.cpp diff --git a/samples/widgets/combobox.cpp b/samples/widgets/combobox.cpp index c14d2ff633..2ac76337af 100644 --- a/samples/widgets/combobox.cpp +++ b/samples/widgets/combobox.cpp @@ -52,7 +52,7 @@ // control ids enum { - ComboPage_Reset = 100, + ComboPage_Reset = wxID_HIGHEST, ComboPage_CurText, ComboPage_InsertionPointText, ComboPage_Insert, @@ -85,9 +85,13 @@ enum class ComboboxWidgetsPage : public WidgetsPage { public: - ComboboxWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist); + ComboboxWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist); virtual wxControl *GetWidget() const { return m_combobox; } + virtual void RecreateWidget() { CreateCombo(); } + + // lazy creation of the content + virtual void CreateContent(); protected: // event handlers @@ -191,11 +195,19 @@ END_EVENT_TABLE() // implementation // ============================================================================ -IMPLEMENT_WIDGETS_PAGE(ComboboxWidgetsPage, _T("Combobox")); +#if defined(__WXUNIVERSAL__) + #define FAMILY_CTRLS UNIVERSAL_CTRLS +#else + #define FAMILY_CTRLS NATIVE_CTRLS +#endif + +IMPLEMENT_WIDGETS_PAGE(ComboboxWidgetsPage, _T("Combobox"), + FAMILY_CTRLS | WITH_ITEMS_CTRLS | COMBO_CTRLS + ); -ComboboxWidgetsPage::ComboboxWidgetsPage(wxBookCtrlBase *book, +ComboboxWidgetsPage::ComboboxWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist) - : WidgetsPage(book) + : WidgetsPage(book, imaglist, combobox_xpm) { // init everything m_chkSort = @@ -203,9 +215,10 @@ ComboboxWidgetsPage::ComboboxWidgetsPage(wxBookCtrlBase *book, m_combobox = (wxComboBox *)NULL; m_sizerCombo = (wxSizer *)NULL; +} - imaglist->Add(wxBitmap(combobox_xpm)); - +void ComboboxWidgetsPage::CreateContent() +{ /* What we create here is a frame having 3 panes: style pane is the leftmost one, in the middle the pane with buttons allowing to perform @@ -334,7 +347,7 @@ void ComboboxWidgetsPage::Reset() void ComboboxWidgetsPage::CreateCombo() { - int flags = 0; + int flags = ms_defaultFlags; if ( m_chkSort->GetValue() ) flags |= wxCB_SORT; @@ -362,8 +375,8 @@ void ComboboxWidgetsPage::CreateCombo() wxArrayString items; if ( m_combobox ) { - int count = m_combobox->GetCount(); - for ( int n = 0; n < count; n++ ) + unsigned int count = m_combobox->GetCount(); + for ( unsigned int n = 0; n < count; n++ ) { items.Add(m_combobox->GetString(n)); } @@ -377,8 +390,8 @@ void ComboboxWidgetsPage::CreateCombo() 0, NULL, flags); - size_t count = items.GetCount(); - for ( size_t n = 0; n < count; n++ ) + unsigned int count = items.GetCount(); + for ( unsigned int n = 0; n < count; n++ ) { m_combobox->Append(items[n]); } @@ -401,7 +414,7 @@ void ComboboxWidgetsPage::OnButtonReset(wxCommandEvent& WXUNUSED(event)) void ComboboxWidgetsPage::OnButtonChange(wxCommandEvent& WXUNUSED(event)) { int sel = m_combobox->GetSelection(); - if ( sel != -1 ) + if ( sel != wxNOT_FOUND ) { #ifndef __WXGTK__ m_combobox->SetString(sel, m_textChange->GetValue()); @@ -415,7 +428,7 @@ void ComboboxWidgetsPage::OnButtonDelete(wxCommandEvent& WXUNUSED(event)) { unsigned long n; if ( !m_textDelete->GetValue().ToULong(&n) || - (n >= (unsigned)m_combobox->GetCount()) ) + (n >= m_combobox->GetCount()) ) { return; } @@ -426,7 +439,7 @@ void ComboboxWidgetsPage::OnButtonDelete(wxCommandEvent& WXUNUSED(event)) void ComboboxWidgetsPage::OnButtonDeleteSel(wxCommandEvent& WXUNUSED(event)) { int sel = m_combobox->GetSelection(); - if ( sel != -1 ) + if ( sel != wxNOT_FOUND ) { m_combobox->Delete(sel); } @@ -491,7 +504,7 @@ void ComboboxWidgetsPage::OnUpdateUICurText(wxUpdateUIEvent& event) void ComboboxWidgetsPage::OnUpdateUIInsertionPointText(wxUpdateUIEvent& event) { if (m_combobox) - event.SetText( wxString::Format(_T("%d"), m_combobox->GetInsertionPoint()) ); + event.SetText( wxString::Format(_T("%ld"), m_combobox->GetInsertionPoint()) ); } void ComboboxWidgetsPage::OnUpdateUIResetButton(wxUpdateUIEvent& event) @@ -524,7 +537,7 @@ void ComboboxWidgetsPage::OnUpdateUIDeleteButton(wxUpdateUIEvent& event) void ComboboxWidgetsPage::OnUpdateUIDeleteSelButton(wxUpdateUIEvent& event) { if (m_combobox) - event.Enable(m_combobox->GetSelection() != -1); + event.Enable(m_combobox->GetSelection() != wxNOT_FOUND); } void ComboboxWidgetsPage::OnUpdateUIClearButton(wxUpdateUIEvent& event)