X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b3c33d35d3749e74bde2eb00faefbe3f5dc7e4aa..9534d0dfdc3c6fad8ea5d5fd31bbb6f20650929b:/samples/widgets/listbox.cpp diff --git a/samples/widgets/listbox.cpp b/samples/widgets/listbox.cpp index 1bbd3faa46..b92ae08e7d 100644 --- a/samples/widgets/listbox.cpp +++ b/samples/widgets/listbox.cpp @@ -44,6 +44,7 @@ #include "wx/checklst.h" +#include "itemcontainer.h" #include "widgets.h" #include "icons/listbox.xpm" @@ -66,21 +67,26 @@ enum ListboxPage_Delete, ListboxPage_DeleteText, ListboxPage_DeleteSel, - ListboxPage_Listbox + ListboxPage_Listbox, + ListboxPage_ContainerTests }; // ---------------------------------------------------------------------------- // ListboxWidgetsPage // ---------------------------------------------------------------------------- -class ListboxWidgetsPage : public WidgetsPage +class ListboxWidgetsPage : public ItemContainerWidgetsPage { public: ListboxWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist); virtual wxControl *GetWidget() const { return m_lbox; } + virtual wxItemContainer* GetContainer() const { return m_lbox; } virtual void RecreateWidget() { CreateLbox(); } + // lazy creation of the content + virtual void CreateContent(); + protected: // event handlers void OnButtonReset(wxCommandEvent& event); @@ -145,7 +151,7 @@ protected: #ifdef __WXWINCE__ wxListBoxBase #else - wxListBox + wxListBox #endif *m_lbox; @@ -174,6 +180,7 @@ BEGIN_EVENT_TABLE(ListboxWidgetsPage, WidgetsPage) EVT_BUTTON(ListboxPage_Add, ListboxWidgetsPage::OnButtonAdd) EVT_BUTTON(ListboxPage_AddSeveral, ListboxWidgetsPage::OnButtonAddSeveral) EVT_BUTTON(ListboxPage_AddMany, ListboxWidgetsPage::OnButtonAddMany) + EVT_BUTTON(ListboxPage_ContainerTests, ItemContainerWidgetsPage::OnButtonTestItemContainer) EVT_TEXT_ENTER(ListboxPage_AddText, ListboxWidgetsPage::OnButtonAdd) EVT_TEXT_ENTER(ListboxPage_DeleteText, ListboxWidgetsPage::OnButtonDelete) @@ -211,7 +218,7 @@ IMPLEMENT_WIDGETS_PAGE(ListboxWidgetsPage, _T("Listbox"), ListboxWidgetsPage::ListboxWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist) - : WidgetsPage(book, imaglist, listbox_xpm) + : ItemContainerWidgetsPage(book, imaglist, listbox_xpm) { // init everything m_radioSelMode = (wxRadioBox *)NULL; @@ -225,6 +232,10 @@ ListboxWidgetsPage::ListboxWidgetsPage(WidgetsBookCtrl *book, m_lbox = NULL; m_sizerLbox = (wxSizer *)NULL; +} + +void ListboxWidgetsPage::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 @@ -308,6 +319,9 @@ ListboxWidgetsPage::ListboxWidgetsPage(WidgetsBookCtrl *book, btn = new wxButton(this, ListboxPage_Clear, _T("&Clear")); sizerMiddle->Add(btn, 0, wxALL | wxGROW, 5); + btn = new wxButton(this, ListboxPage_ContainerTests, _T("Run &tests")); + sizerMiddle->Add(btn, 0, wxALL | wxGROW, 5); + // right pane wxSizer *sizerRight = new wxBoxSizer(wxVERTICAL); m_lbox = new wxListBox(this, ListboxPage_Listbox, @@ -327,8 +341,6 @@ ListboxWidgetsPage::ListboxWidgetsPage(WidgetsBookCtrl *book, Reset(); SetSizer(sizerTop); - - sizerTop->Fit(this); } // ----------------------------------------------------------------------------