void wxExGuiReportTestFixture::testListViewFile() { wxExFrameWithHistory* frame = (wxExFrameWithHistory *)wxTheApp->GetTopWindow(); wxExListViewFile* listView = new wxExListViewFile(frame, frame, TEST_PRJ); listView->InsertColumn(wxExColumn("String", wxExColumn::COL_STRING)); listView->InsertColumn(wxExColumn("Number", wxExColumn::COL_INT)); // Remember that listview file already has columns. CPPUNIT_ASSERT(listView->FindColumn("String") > 1); CPPUNIT_ASSERT(listView->FindColumn("Number") > 1); CPPUNIT_ASSERT(listView->FileLoad(wxExFileName(TEST_PRJ))); CPPUNIT_ASSERT(listView->FileSave()); CPPUNIT_ASSERT(listView->ItemFromText("test1\ntest2\n")); }
wxExSampleFrame::wxExSampleFrame() : wxExManagedFrame(nullptr, wxID_ANY, wxTheApp->GetAppDisplayName(), 4) , m_Process(new wxExProcess()) , m_Notebook(new wxExNotebook(this, this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_NB_TOP | wxAUI_NB_TAB_SPLIT | wxAUI_NB_TAB_MOVE | wxAUI_NB_SCROLL_BUTTONS)) , m_STC(new wxExSTC(this)) , m_Shell(new wxExShell(this, ">", "\n", true, 10)) , m_STCLexers(new wxExSTC(this, wxExLexers::Get()->GetFileName())) { wxExProcess::PrepareOutput(this); SetIcon(wxICON(app)); wxExMenu* menuFile = new wxExMenu; menuFile->Append(wxID_OPEN); GetFileHistory().UseMenu(ID_RECENTFILE_MENU, menuFile); menuFile->AppendSeparator(); menuFile->Append(ID_SHOW_VCS, "Show VCS"); menuFile->AppendPrint(); menuFile->AppendSeparator(); menuFile->Append(wxID_EXECUTE); menuFile->Append(wxID_STOP); menuFile->AppendSeparator(); menuFile->Append(wxID_EXIT); wxExMenu *menuEdit = new wxExMenu(); menuEdit->Append(wxID_UNDO); menuEdit->Append(wxID_REDO); menuEdit->AppendSeparator(); menuEdit->Append(wxID_CUT); menuEdit->Append(wxID_COPY); menuEdit->Append(wxID_PASTE); menuEdit->AppendSeparator(); menuEdit->Append(wxID_JUMP_TO); menuEdit->AppendSeparator(); wxExMenu* menuFind = new wxExMenu(); menuFind->Append(wxID_FIND); menuFind->Append(wxID_REPLACE); menuEdit->AppendSubMenu(menuFind, _("&Find And Replace")); wxExMenu* menuDialog = new wxExMenu; menuDialog->Append(ID_DLG_ITEM, wxExEllipsed("Item Dialog")); menuDialog->AppendSeparator(); menuDialog->Append(ID_DLG_CONFIG_ITEM, wxExEllipsed("Config Dialog")); menuDialog->Append(ID_DLG_CONFIG_ITEM_COL, wxExEllipsed("Config Dialog Columns")); menuDialog->Append(ID_DLG_CONFIG_ITEM_READONLY, wxExEllipsed("Config Dialog Readonly")); menuDialog->AppendSeparator(); menuDialog->Append(ID_DLG_LISTVIEW, wxExEllipsed("List Dialog")); menuDialog->AppendSeparator(); menuDialog->Append(ID_DLG_STC_CONFIG, wxExEllipsed("STC Dialog")); menuDialog->Append(ID_DLG_STC_ENTRY, wxExEllipsed("STC Entry Dialog")); menuDialog->AppendSeparator(); menuDialog->Append(ID_DLG_VCS, wxExEllipsed("VCS Dialog")); wxExMenu* menuSTC = new wxExMenu; menuSTC->Append(ID_STC_FLAGS, wxExEllipsed("Open Flag")); menuSTC->AppendSeparator(); menuSTC->Append(ID_STC_SPLIT, "Split"); wxExMenu *menuView = new wxExMenu; AppendPanes(menuView); menuView->AppendSeparator(); menuView->Append(ID_STATISTICS_SHOW, "Statistics"); wxExMenu* menuHelp = new wxExMenu; menuHelp->Append(wxID_ABOUT); wxMenuBar *menubar = new wxMenuBar; menubar->Append(menuFile, "&File"); menubar->Append(menuEdit, "&Edit"); menubar->Append(menuView, "&View"); menubar->Append(menuDialog, "&Dialog"); menubar->Append(menuSTC, "&STC"); menubar->Append(menuHelp, "&Help"); SetMenuBar(menubar); #if wxUSE_GRID m_Grid = new wxExGrid(m_Notebook); #endif m_ListView = new wxExListView(m_Notebook, wxExListView::LIST_NONE); GetManager().AddPane(m_Notebook, wxAuiPaneInfo().CenterPane().MinSize(wxSize(250, 250))); GetManager().AddPane(m_STC, wxAuiPaneInfo().Bottom().Caption("STC")); GetManager().AddPane(m_Shell, wxAuiPaneInfo().Bottom().Caption("Shell").MinSize(wxSize(250, 250))); GetManager().AddPane(m_Process->GetShell(), wxAuiPaneInfo() .Bottom() .Name("PROCESS") .MinSize(250, 100) .Caption(_("Process"))); GetManager().Update(); m_Notebook->AddPage(m_STCLexers, wxExLexers::Get()->GetFileName().GetFullName()); m_Notebook->AddPage(m_ListView, "wxExListView"); #if wxUSE_GRID m_Notebook->AddPage(m_Grid, "wxExGrid"); m_Grid->CreateGrid(0, 0); m_Grid->AppendCols(2); wxExSampleDir dir(wxGetCwd().ToStdString(), "*.*", m_Grid); dir.FindFiles(); m_Grid->AutoSizeColumns(); #endif m_ListView->SetSingleStyle(wxLC_REPORT); m_ListView->AppendColumn(wxExColumn("String", wxExColumn::COL_STRING)); m_ListView->AppendColumn(wxExColumn("Number", wxExColumn::COL_INT)); m_ListView->AppendColumn(wxExColumn("Float", wxExColumn::COL_FLOAT)); m_ListView->AppendColumn(wxExColumn("Date", wxExColumn::COL_DATE)); const int items = 50; for (auto i = 0; i < items; i++) { m_ListView->InsertItem(i, wxString::Format("item%d", i)); m_ListView->SetItem(i, 1, std::to_string(i)); m_ListView->SetItem(i, 2, wxString::Format("%f", (float)i / 2.0)); m_ListView->SetItem(i, 3, wxDateTime::Now().FormatISOCombined(' ')); // Set some images. if (i == 0) m_ListView->SetItemImage(i, wxART_CDROM); else if (i == 1) m_ListView->SetItemImage(i, wxART_REMOVABLE); else if (i == 2) m_ListView->SetItemImage(i, wxART_FOLDER); else if (i == 3) m_ListView->SetItemImage(i, wxART_FOLDER_OPEN); else if (i == 4) m_ListView->SetItemImage(i, wxART_GO_DIR_UP); else if (i == 5) m_ListView->SetItemImage(i, wxART_EXECUTABLE_FILE); else if (i == 6) m_ListView->SetItemImage(i, wxART_NORMAL_FILE); else m_ListView->SetItemImage(i, wxART_TICK_MARK); } #if wxUSE_STATUSBAR SetupStatusBar(std::vector<wxExStatusBarPane>{ wxExStatusBarPane(), wxExStatusBarPane("PaneFileType", 50, "File type"), wxExStatusBarPane("PaneInfo", 100, "Lines or items"), wxExStatusBarPane("PaneLexer", 60, "Lexer")}); #endif GetToolBar()->AddControls(); GetOptionsToolBar()->AddControls(); // The OnCommand keeps statistics. Bind(wxEVT_MENU, &wxExSampleFrame::OnCommand, this, wxID_COPY); Bind(wxEVT_MENU, &wxExSampleFrame::OnCommand, this, wxID_CUT); Bind(wxEVT_MENU, &wxExSampleFrame::OnCommand, this, wxID_EXECUTE); Bind(wxEVT_MENU, &wxExSampleFrame::OnCommand, this, wxID_JUMP_TO); Bind(wxEVT_MENU, &wxExSampleFrame::OnCommand, this, wxID_PASTE); Bind(wxEVT_MENU, &wxExSampleFrame::OnCommand, this, wxID_OPEN, wxID_SAVEAS); Bind(wxEVT_MENU, &wxExSampleFrame::OnCommand, this, wxID_UNDO, wxID_REDO); Bind(wxEVT_MENU, [=](wxCommandEvent& event) { wxAboutDialogInfo info; info.SetIcon(GetIcon()); info.SetVersion(wxExGetVersionInfo().GetVersionOnlyString()); info.SetCopyright(wxExGetVersionInfo().GetCopyright()); wxAboutBox(info);}, wxID_ABOUT); Bind(wxEVT_MENU, [=](wxCommandEvent& event) { Close(true);}, wxID_EXIT); Bind(wxEVT_MENU, [=](wxCommandEvent& event) { m_ListView->Print();}, wxID_PRINT); Bind(wxEVT_MENU, [=](wxCommandEvent& event) { m_ListView->PrintPreview();}, wxID_PREVIEW); Bind(wxEVT_MENU, [=](wxCommandEvent& event) { wxExPrinting::Get()->GetHtmlPrinter()->PageSetup();}, wxID_PRINT_SETUP); Bind(wxEVT_MENU, [=](wxCommandEvent& event) { const long val = wxGetNumberFromUser("Input columns:", wxEmptyString, _("Columns"), 1, 1, 100); if (val >= 0) { wxExItemDialog(this, TestConfigItems(0, val), "Config Dialog Columns", 0, val).ShowModal(); }}, ID_DLG_CONFIG_ITEM_COL); Bind(wxEVT_MENU, [=](wxCommandEvent& event) { wxExItemDialog* dlg = new wxExItemDialog(this, TestConfigItems(0, 1), "Config Dialog", 0, 1, wxAPPLY | wxCANCEL, wxID_ANY, wxDefaultPosition, #ifdef __WXMSW__ wxSize(500, 500)); #else wxSize(600, 600)); #endif // dlg->ForceCheckBoxChecked("Group", "Checkboxes"); dlg->Show();}, ID_DLG_CONFIG_ITEM);
wxExSampleFrame::wxExSampleFrame() : wxExManagedFrame(NULL, wxID_ANY, wxTheApp->GetAppDisplayName()) , m_FlagsSTC(0) { SetIcon(wxICON(app)); wxExMenu* menuFile = new wxExMenu; menuFile->Append(wxID_OPEN); menuFile->AppendSeparator(); menuFile->Append(ID_SHOW_VCS, "Show VCS"); menuFile->AppendPrint(); menuFile->AppendSeparator(); menuFile->Append(ID_PROCESS_SELECT, "Select Process"); menuFile->Append(ID_PROCESS_RUN, "Run Process"); menuFile->AppendSeparator(); menuFile->Append(wxID_EXIT); wxExMenu *menuEdit = new wxExMenu(); menuEdit->Append(wxID_UNDO); menuEdit->Append(wxID_REDO); menuEdit->AppendSeparator(); menuEdit->Append(wxID_CUT); menuEdit->Append(wxID_COPY); menuEdit->Append(wxID_PASTE); menuEdit->AppendSeparator(); menuEdit->Append(wxID_JUMP_TO); menuEdit->AppendSeparator(); wxExMenu* menuFind = new wxExMenu(); menuFind->Append(wxID_FIND); menuFind->Append(wxID_REPLACE); menuEdit->AppendSubMenu(menuFind, _("&Find And Replace")); wxExMenu* menuConfig = new wxExMenu; menuConfig->Append(ID_CONFIG_DLG, wxExEllipsed("Config Dialog")); menuConfig->Append( ID_CONFIG_DLG_READONLY, wxExEllipsed("Config Dialog Readonly")); wxExMenu* menuSTC = new wxExMenu; menuSTC->Append(ID_STC_FLAGS, wxExEllipsed("Open Flag")); menuSTC->AppendSeparator(); menuSTC->Append(ID_STC_CONFIG_DLG, wxExEllipsed("Config Dialog")); menuSTC->Append(ID_STC_ENTRY_DLG, wxExEllipsed("Entry Dialog")); menuSTC->AppendSeparator(); menuSTC->Append(ID_STC_SPLIT, "Split"); wxExMenu *menuView = new wxExMenu; menuView->AppendBars(); menuView->AppendSeparator(); menuView->Append(ID_STATISTICS_SHOW, "Statistics"); wxExMenu* menuHelp = new wxExMenu; menuHelp->Append(wxID_ABOUT); wxMenuBar *menubar = new wxMenuBar; menubar->Append(menuFile, "&File"); menubar->Append(menuEdit, "&Edit"); menubar->Append(menuView, "&View"); menubar->Append(menuSTC, "&STC"); menubar->Append(menuConfig, "&Config"); menubar->Append(menuHelp, "&Help"); SetMenuBar(menubar); m_Notebook = new wxExNotebook( this, NULL, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_NB_TOP | wxAUI_NB_TAB_SPLIT | wxAUI_NB_TAB_MOVE | wxAUI_NB_SCROLL_BUTTONS); #if wxUSE_GRID m_Grid = new wxExGrid(m_Notebook); #endif m_ListView = new wxExListView(m_Notebook); m_STC = new wxExSTC(this); m_STCShell = new wxExSTCShell(this, ">", wxTextFile::GetEOL(), true, 10); GetManager().AddPane(m_Notebook, wxAuiPaneInfo().CenterPane().MinSize(wxSize(250, 250))); GetManager().AddPane(m_STC, wxAuiPaneInfo().Bottom().Caption("STC")); GetManager().AddPane(m_STCShell, wxAuiPaneInfo().Bottom().Caption("Shell").MinSize(wxSize(250, 250))); GetManager().Update(); m_STCLexers = new wxExSTC(this, wxExLexers::Get()->GetFileName()); m_Notebook->AddPage(m_STCLexers, wxExLexers::Get()->GetFileName().GetFullName()); m_Notebook->AddPage(m_ListView, "wxExListView"); #if wxUSE_GRID m_Notebook->AddPage(m_Grid, "wxExGrid"); m_Grid->CreateGrid(0, 0); m_Grid->AppendCols(2); wxExSampleDir dir(wxGetCwd(), "*.*", m_Grid); dir.FindFiles(); m_Grid->AutoSizeColumns(); #endif m_ListView->SetSingleStyle(wxLC_REPORT); m_ListView->InsertColumn(wxExColumn("String", wxExColumn::COL_STRING)); m_ListView->InsertColumn(wxExColumn("Number", wxExColumn::COL_INT)); m_ListView->InsertColumn(wxExColumn("Float", wxExColumn::COL_FLOAT)); m_ListView->InsertColumn(wxExColumn("Date", wxExColumn::COL_DATE)); const int items = 50; for (auto i = 0; i < items; i++) { m_ListView->InsertItem(i, wxString::Format("item%d", i)); m_ListView->SetItem(i, 1, wxString::Format("%d", i)); m_ListView->SetItem(i, 2, wxString::Format("%f", (float)i / 2.0)); m_ListView->SetItem(i, 3, wxDateTime::Now().Format()); // Set some images. if (i == 0) m_ListView->SetItemImage(i, wxART_CDROM); else if (i == 1) m_ListView->SetItemImage(i, wxART_REMOVABLE); else if (i == 2) m_ListView->SetItemImage(i, wxART_FOLDER); else if (i == 3) m_ListView->SetItemImage(i, wxART_FOLDER_OPEN); else if (i == 4) m_ListView->SetItemImage(i, wxART_GO_DIR_UP); else if (i == 5) m_ListView->SetItemImage(i, wxART_EXECUTABLE_FILE); else if (i == 6) m_ListView->SetItemImage(i, wxART_NORMAL_FILE); else m_ListView->SetItemImage(i, wxART_TICK_MARK); } #if wxUSE_STATUSBAR std::vector<wxExStatusBarPane> panes; panes.push_back(wxExStatusBarPane()); panes.push_back(wxExStatusBarPane("PaneFileType", 50, "File type")); panes.push_back(wxExStatusBarPane("PaneInfo", 100, "Lines or items")); panes.push_back(wxExStatusBarPane("PaneLexer", 60, "Lexer")); SetupStatusBar(panes); #endif }
TEST_CASE("wxExListViewWithFrame") { REQUIRE(wxExListViewWithFrame::GetTypeTool(wxExTool(ID_TOOL_REPORT_FIND)) == wxExListViewWithFrame::LIST_FIND); REQUIRE(wxExListViewWithFrame::GetTypeTool(wxExTool(ID_TOOL_REPORT_REPLACE)) == wxExListViewWithFrame::LIST_REPLACE); REQUIRE(wxExListViewWithFrame::GetTypeTool(wxExTool(ID_TOOL_REPORT_KEYWORD)) == wxExListViewWithFrame::LIST_KEYWORD); wxExListViewWithFrame* listView = new wxExListViewWithFrame(GetFrame(), GetFrame(), wxExListView::LIST_FIND); AddPane(GetFrame(), listView); listView->AppendColumn(wxExColumn("String", wxExColumn::COL_STRING)); listView->AppendColumn(wxExColumn("Number", wxExColumn::COL_INT)); REQUIRE(listView->ItemFromText("test1\ntest2\n")); listView->InsertItem(1, wxString::Format("item%d", 1)); listView->SetItem(1, 2, std::to_string(2)); listView->Select(0); listView->Select(1); for (auto id : std::vector<int> { ID_EDIT_OPEN, ID_EDIT_VCS_LOWEST, ID_LIST_COMPARE, ID_LIST_RUN_MAKE}) { wxPostEvent(listView, wxCommandEvent(wxEVT_MENU, id)); }