void ListBoxTestCase::MultipleSelect() { wxDELETE(m_list); m_list = new wxListBox(wxTheApp->GetTopWindow(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, 0, wxLB_MULTIPLE); wxArrayString testitems; testitems.Add("item 0"); testitems.Add("item 1"); testitems.Add("item 2"); testitems.Add("item 3"); m_list->Append(testitems); m_list->SetSelection(0); wxArrayInt selected; m_list->GetSelections(selected); CPPUNIT_ASSERT_EQUAL(1, selected.Count()); CPPUNIT_ASSERT_EQUAL(0, selected.Item(0)); m_list->SetSelection(2); m_list->GetSelections(selected); CPPUNIT_ASSERT_EQUAL(2, selected.Count()); CPPUNIT_ASSERT_EQUAL(2, selected.Item(1)); m_list->Deselect(0); m_list->GetSelections(selected); CPPUNIT_ASSERT_EQUAL(1, selected.Count()); CPPUNIT_ASSERT_EQUAL(2, selected.Item(0)); CPPUNIT_ASSERT(!m_list->IsSelected(0)); CPPUNIT_ASSERT(!m_list->IsSelected(1)); CPPUNIT_ASSERT(m_list->IsSelected(2)); CPPUNIT_ASSERT(!m_list->IsSelected(3)); m_list->SetSelection(0); m_list->SetSelection(wxNOT_FOUND); m_list->GetSelections(selected); CPPUNIT_ASSERT_EQUAL(0, selected.Count()); }
void CfgPanel::Create(wxWindow* parent) { wxPanel::Create(parent,-1); wxArrayString channelStrings; int slot = 0; while (slot < LogManager::max_logs) { const wxString t = LogManager::Get()->Slot(slot).title; if (!!t) channelStrings.Add(t); ++slot; } wxArrayString loggerStrings = LogManager::Get()->ListAvailable(); loggerStrings.Insert(_T("<application default>"), 0); wxFlexGridSizer* flex = new wxFlexGridSizer(2, 2, 0, 0); flex->AddGrowableRow(1); flex->AddGrowableCol(0); flex->AddGrowableCol(1); wxStaticText* txt; txt = new wxStaticText(this, wxID_STATIC, _("Log Source")); flex->Add(txt, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP, 5); txt = new wxStaticText(this, wxID_STATIC, _("Associated Logger")); flex->Add(txt, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxTOP, 5); channel = new wxListBox(this, id_channel, wxDefaultPosition, wxDefaultSize, channelStrings, wxLB_SINGLE ); logger = new wxListBox(this, id_logger, wxDefaultPosition, wxDefaultSize, loggerStrings, wxLB_SINGLE ); flex->Add(channel, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5); flex->Add(logger, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5); channel->SetSelection(0); logger->SetSelection(0); // spacer flex->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5); filename = new wxTextCtrl(this, id_text); flex->Add(filename, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5); SetSizer(flex); }
luNewProjTemplatePage(wxWizard* parent) : wxWizardPageSimple(parent) { this->SetSizeHints( wxDefaultSize, wxDefaultSize ); wxFlexGridSizer* fgSizer10; fgSizer10 = new wxFlexGridSizer( 3, 2, 0, 10 ); fgSizer10->AddGrowableCol( 1 ); fgSizer10->SetFlexibleDirection( wxBOTH ); fgSizer10->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText5 = new wxStaticText( this, wxID_ANY, wxT("Project Templates"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText5->Wrap( -1 ); fgSizer10->Add( m_staticText5, 0, wxALL, 5 ); m_textTitle = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); fgSizer10->Add( m_textTitle, 0, wxALL, 5 ); m_listTemplate = new wxListBox( this, ID_WIZARD_TEMPL_LIST, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); fgSizer10->Add( m_listTemplate, 0, wxALL, 5 ); m_imgPreview = new wxStaticBitmap( this, wxID_ANY, wxBitmap("Data/Empty.xpm", wxBITMAP_TYPE_ANY), wxDefaultPosition, wxDefaultSize, 0 ); fgSizer10->Add( m_imgPreview, 0, wxALL, 5 ); m_staticText6 = new wxStaticText( this, wxID_ANY, wxT("Description"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText6->Wrap( -1 ); fgSizer10->Add( m_staticText6, 0, wxALL, 5 ); m_textDesc = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE | wxTE_READONLY ); fgSizer10->Add( m_textDesc, 0, wxALL|wxEXPAND, 5 ); this->SetSizer( fgSizer10 ); this->Layout(); this->Centre( wxBOTH ); //-- luProjTempList *ptlist = getLuApp()->getProjTempList(); GK_ASSERT(ptlist); for (size_t i = 0; i < ptlist->size(); i++) { const luProjTemplate& templ = (*ptlist)[i]; m_listTemplate->Append(templ.name); } m_projTempList = ptlist; m_listTemplate->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( luNewProjTemplatePage::OnListItemSelected ), NULL, this ); m_listTemplate->SetSelection(0); wxCommandEvent evt(wxEVT_NULL, wxEVT_COMMAND_LISTBOX_SELECTED); OnListItemSelected(evt); SetSizerAndFit(fgSizer10); }
void ListBoxTestCase::ClickNotOnItem() { #if wxUSE_UIACTIONSIMULATOR wxTestableFrame* frame = wxStaticCast(wxTheApp->GetTopWindow(), wxTestableFrame); EventCounter selected(frame, wxEVT_LISTBOX); EventCounter dclicked(frame, wxEVT_LISTBOX_DCLICK); wxUIActionSimulator sim; wxArrayString testitems; testitems.Add("item 0"); testitems.Add("item 1"); testitems.Add("item 2"); m_list->Append(testitems); // It is important to set a valid selection: if the control doesn't have // any, clicking anywhere in it, even outside of any item, selects the // first item in the control under GTK resulting in a selection changed // event. This is not a wx bug, just the native platform behaviour so // simply avoid it by starting with a valid selection. m_list->SetSelection(0); m_list->Update(); m_list->Refresh(); sim.MouseMove(m_list->ClientToScreen(wxPoint(m_list->GetSize().x - 10, m_list->GetSize().y - 10))); wxYield(); sim.MouseClick(); wxYield(); sim.MouseDblClick(); wxYield(); //If we are not clicking on an item we shouldn't have any events CPPUNIT_ASSERT_EQUAL(0, selected.GetCount()); CPPUNIT_ASSERT_EQUAL(0, dclicked.GetCount()); #endif }