virtual ~CheckListBoxFrame();
// notifications
- void OnQuit (wxCommandEvent& event);
- void OnAbout (wxCommandEvent& event);
+ void OnQuit(wxCommandEvent& event);
+ void OnAbout(wxCommandEvent& event);
+
+ void OnCheckFirstItem(wxCommandEvent& event);
+ void OnUncheckFirstItem(wxCommandEvent& event);
+ void OnToggleFirstItem(wxCommandEvent& event);
void OnToggleSelection(wxCommandEvent& event);
- void OnListboxSelect (wxCommandEvent& event);
- void OnCheckboxToggle (wxCommandEvent& event);
+ void OnAddItems(wxCommandEvent& event);
+
+ void OnListboxSelect(wxCommandEvent& event);
+ void OnCheckboxToggle(wxCommandEvent& event);
void OnListboxDblClick(wxCommandEvent& event);
- void OnButtonUp (wxCommandEvent& event);
- void OnButtonDown (wxCommandEvent& event);
+
+ void OnButtonUp(wxCommandEvent& event);
+ void OnButtonDown(wxCommandEvent& event);
private:
void CreateCheckListbox(long flags = 0);
{
Menu_About = 100,
Menu_Quit,
+
+ Menu_CheckFirst,
+ Menu_UncheckFirst,
+ Menu_ToggleFirst,
Menu_Selection,
+ Menu_AddItems,
Control_First = 1000,
Control_Listbox,
EVT_MENU(Menu_About, CheckListBoxFrame::OnAbout)
EVT_MENU(Menu_Quit, CheckListBoxFrame::OnQuit)
+ EVT_MENU(Menu_CheckFirst, CheckListBoxFrame::OnCheckFirstItem)
+ EVT_MENU(Menu_UncheckFirst, CheckListBoxFrame::OnUncheckFirstItem)
+ EVT_MENU(Menu_ToggleFirst, CheckListBoxFrame::OnToggleFirstItem)
EVT_MENU(Menu_Selection, CheckListBoxFrame::OnToggleSelection)
+ EVT_MENU(Menu_AddItems, CheckListBoxFrame::OnAddItems)
EVT_LISTBOX(Control_Listbox, CheckListBoxFrame::OnListboxSelect)
EVT_CHECKLISTBOX(Control_Listbox, CheckListBoxFrame::OnCheckboxToggle)
// listbox submenu
wxMenu *menuList = new wxMenu;
+ menuList->Append(Menu_CheckFirst, _T("Check the first item\tCtrl-C"));
+ menuList->Append(Menu_UncheckFirst, _T("Uncheck the first item\tCtrl-U"));
+ menuList->Append(Menu_ToggleFirst, _T("Toggle the first item\tCtrl-T"));
+ menuList->AppendSeparator();
+ menuList->AppendCheckItem(Menu_AddItems, _T("Add more items\tCtrl-A"));
+ menuList->AppendSeparator();
menuList->AppendCheckItem(Menu_Selection, _T("Multiple selection\tCtrl-M"));
// put it all together
wxICON_INFORMATION, this);
}
+void CheckListBoxFrame::OnCheckFirstItem(wxCommandEvent& WXUNUSED(event))
+{
+ if ( !m_pListBox->IsEmpty() )
+ m_pListBox->Check(0);
+}
+
+void CheckListBoxFrame::OnUncheckFirstItem(wxCommandEvent& WXUNUSED(event))
+{
+ if ( !m_pListBox->IsEmpty() )
+ m_pListBox->Check(0, FALSE);
+}
+
+void CheckListBoxFrame::OnToggleFirstItem(wxCommandEvent& WXUNUSED(event))
+{
+ if ( !m_pListBox->IsEmpty() )
+ m_pListBox->Check(0, !m_pListBox->IsChecked(0));
+}
+
+void CheckListBoxFrame::OnAddItems(wxCommandEvent& WXUNUSED(event))
+{
+ static size_t s_nItem = 0;
+ wxArrayString items;
+ items.Add(wxString::Format(_T("New item %lu"), (unsigned long)++s_nItem));
+ items.Add(wxString::Format(_T("New item %lu"), (unsigned long)++s_nItem));
+ items.Add(wxString::Format(_T("New item %lu"), (unsigned long)++s_nItem));
+
+ m_pListBox->InsertItems(items, 0);//m_pListBox->GetCount());
+}
+
void CheckListBoxFrame::OnToggleSelection(wxCommandEvent& event)
{
wxSizer *sizer = m_panel->GetSizer();
- sizer->Remove(m_pListBox);
+ sizer->Detach( m_pListBox );
delete m_pListBox;
CreateCheckListbox(event.IsChecked() ? wxLB_EXTENDED : 0);
void CheckListBoxFrame::OnListboxDblClick(wxCommandEvent& WXUNUSED(event))
{
wxString strSelection;
- strSelection.sprintf(wxT("Item %d double clicked"), m_pListBox->GetSelection());
+ strSelection.Printf(wxT("Item %d double clicked"), m_pListBox->GetSelection());
wxMessageDialog dialog(this, strSelection, wxT("wxCheckListBox message"), wxICON_INFORMATION);
dialog.ShowModal();
}