int wxExFrameWithHistory::FindInFilesDialog( int id, bool add_in_files) { if (GetSTC() != NULL) { GetSTC()->GetFindString(); } std::vector<wxExConfigItem> v; v.push_back(wxExConfigItem( wxExFindReplaceData::Get()->GetTextFindWhat(), CONFIG_COMBOBOX, wxEmptyString, true)); if (add_in_files) { v.push_back(wxExConfigItem( m_TextInFiles, CONFIG_COMBOBOX, wxEmptyString, true)); } if (id == ID_TOOL_REPORT_REPLACE) { v.push_back(wxExConfigItem( wxExFindReplaceData::Get()->GetTextReplaceWith(), CONFIG_COMBOBOX)); } v.push_back(wxExConfigItem(wxExFindReplaceData::Get()->GetInfo())); if (wxExConfigDialog(this, v, GetFindInCaption(id)).ShowModal() == wxID_CANCEL) { return wxID_CANCEL; } wxLogStatus( wxExFindReplaceData::Get()->GetFindReplaceInfoText( id == ID_TOOL_REPORT_REPLACE)); return wxID_OK; }
int wxExHeader::ShowDialog(wxWindow* parent, const wxString& title) const { std::vector<wxExConfigItem> v; // Purpose is required. v.push_back( wxExConfigItem( m_TextPurpose, wxEmptyString, wxEmptyString, wxTE_MULTILINE, CONFIG_STRING, true)); // Author is required, but only presented if empty. // Email and License also are only presented if Author empty. if (wxConfigBase::Get()->Read(m_TextAuthor).empty()) { v.push_back(wxExConfigItem( m_TextAuthor, wxEmptyString, wxEmptyString, 0, CONFIG_STRING, true)); if (wxConfigBase::Get()->Read(m_TextEmail).empty()) { v.push_back(wxExConfigItem(m_TextEmail)); } if (wxConfigBase::Get()->Read(m_TextLicense).empty()) { v.push_back(wxExConfigItem(m_TextLicense)); } } return wxExConfigDialog( parent, v, title).ShowModal(); }
void wxExFrameWithHistory::CreateDialogs() { std::vector<wxExConfigItem> f; std::vector<wxExConfigItem> r; f.push_back( wxExConfigItem(wxExFindReplaceData::Get()->GetTextFindWhat(), CONFIG_COMBOBOX, wxEmptyString, true)); r.push_back(f.back()); r.push_back(wxExConfigItem( wxExFindReplaceData::Get()->GetTextReplaceWith(), CONFIG_COMBOBOX)); f.push_back(wxExConfigItem( m_TextInFiles, CONFIG_COMBOBOX, wxEmptyString, true)); r.push_back(f.back()); f.push_back(wxExConfigItem( m_TextInFolder, CONFIG_COMBOBOXDIR, wxEmptyString, true, 1000)); r.push_back(f.back()); // Match whole word does not work with replace. std::set<wxString> s; s.insert(wxExFindReplaceData::Get()->GetTextMatchCase()); s.insert(wxExFindReplaceData::Get()->GetTextRegEx()); s.insert(m_TextRecursive); r.push_back(wxExConfigItem(s)); std::set<wxString> t(wxExFindReplaceData::Get()->GetInfo()); t.insert(m_TextRecursive); f.push_back(wxExConfigItem(t)); m_FiFDialog = new wxExConfigDialog(this, f, _("Find In Files"), 0, 1, wxOK | wxCANCEL, ID_FIND_IN_FILES); m_RiFDialog = new wxExConfigDialog(this, r, _("Replace In Files"), 0, 1, wxOK | wxCANCEL, ID_REPLACE_IN_FILES); }
bool wxExVCS::GetDir(wxWindow* parent) { if (!Use()) { return false; } const wxString message = _("Select VCS Folder"); std::vector<wxExConfigItem> v; // See also vcsentry, same item is used there. v.push_back(wxExConfigItem( _("Base folder"), CONFIG_COMBOBOXDIR, wxEmptyString, true, 1005)); if (wxExConfigFirstOf(_("Base folder")).empty()) { if ( parent != NULL && wxExConfigDialog(parent, v, message).ShowModal() == wxID_CANCEL) { return false; } } else { m_Entry = FindEntry(wxExConfigFirstOf(_("Base folder"))); if (m_Entry.GetName().empty()) { if ( parent != NULL && wxExConfigDialog(parent, v, message).ShowModal() == wxID_CANCEL) { return false; } } } m_Entry = FindEntry(wxExConfigFirstOf(_("Base folder"))); return !m_Entry.GetName().empty(); }
wxExListViewFile::wxExListViewFile(wxWindow* parent, wxExFrameWithHistory* frame, const wxString& file, wxWindowID id, long menu_flags, const wxPoint& pos, const wxSize& size, long style, const wxValidator& validator, const wxString& name) : wxExListViewWithFrame( parent, frame, LIST_FILE, id, menu_flags, NULL, pos, size, style, validator, name) , wxExFile(false) // do not open files in FileLoad and Save , m_AddItemsDialog(NULL) , m_ContentsChanged(false) , m_TextAddFiles(_("Add files")) , m_TextAddFolders(_("Add folders")) , m_TextAddRecursive(_("Recursive")) , m_TextAddWhat(_("Add what")) , m_TextInFolder(_("In folder")) , m_ItemUpdated(false) , m_ItemNumber(0) { FileLoad(file); std::vector<wxExConfigItem> v; v.push_back(wxExConfigItem( m_TextAddWhat, CONFIG_COMBOBOX, wxEmptyString, true)); v.push_back(wxExConfigItem( m_TextInFolder, CONFIG_COMBOBOXDIR, wxEmptyString, true, 1000)); std::set<wxString> set; set.insert(m_TextAddFiles); set.insert(m_TextAddFolders); set.insert(m_TextAddRecursive); v.push_back(wxExConfigItem(set)); m_AddItemsDialog = new wxExConfigDialog(this, v, _("Add Items"), 0, 1, wxOK | wxCANCEL, wxID_ADD); }
void wxExSampleFrame::ShowConfigItems() { std::vector<wxExConfigItem> v; // CONFIG_BUTTON for (size_t b = 1; b <= 4; b++) { v.push_back(wxExConfigItem( wxString::Format("<span size='x-large' color='blue'>Big</span> <b>bold</b> button %d", b), CONFIG_BUTTON, "Buttons", false, 1000 + b)); } // CONFIG_CHECKBOX for (size_t h = 1; h <= 4; h++) { v.push_back(wxExConfigItem( wxString::Format("Checkbox%d", h), CONFIG_CHECKBOX, "Checkboxes")); } v.push_back(wxExConfigItem( "Group Checkbox1", CONFIG_CHECKBOX, "Checkboxes")); v.push_back(wxExConfigItem( "Group Checkbox2", CONFIG_CHECKBOX, "Checkboxes")); // CONFIG_CHECKLISTBOX std::map<long, const wxString> clb; clb.insert(std::make_pair(0, "Bit One")); clb.insert(std::make_pair(1, "Bit Two")); clb.insert(std::make_pair(2, "Bit Three")); clb.insert(std::make_pair(4, "Bit Four")); v.push_back(wxExConfigItem( "Bin Choices", clb, false, "Checkbox lists")); // CONFIG_CHECKLISTBOX_NONAME std::set<wxString> bchoices; bchoices.insert("This"); bchoices.insert("Or"); bchoices.insert("Other"); v.push_back(wxExConfigItem( bchoices, "Checkbox lists")); // CONFIG_COLOUR for (size_t i = 1; i <= 5; i++) { v.push_back(wxExConfigItem( wxString::Format("Colour%d", i), CONFIG_COLOUR, "Colours")); } // CONFIG_COMBOBOX for (size_t m = 1; m <= 5; m++) { v.push_back(wxExConfigItem( wxString::Format("Combobox%d", m), CONFIG_COMBOBOX, "Comboboxes")); } // CONFIG_COMBOBOX without a name v.push_back(wxExConfigItem( "Combobox No Name", CONFIG_COMBOBOX, "Comboboxes", false, wxID_ANY, 25, false)); // CONFIG_COMBOBOXDIR v.push_back(wxExConfigItem( "Combobox Dir Required", CONFIG_COMBOBOXDIR, "Comboboxes", true, 1000)); // CONFIG_COMBOBOXDIR v.push_back(wxExConfigItem( "Combobox Dir", CONFIG_COMBOBOXDIR, "Comboboxes", false, 1001)); // CONFIG_COMMAND_LINK_BUTTON for (size_t l = 1; l <= 4; l++) { v.push_back(wxExConfigItem( wxString::Format("Command Link Button%d\tThis text describes what the button does", l), CONFIG_COMMAND_LINK_BUTTON, "Command Link Buttons", false, 1000 + l)); } // CONFIG_DIRPICKERCTRL v.push_back(wxExConfigItem( "Dir Picker", CONFIG_DIRPICKERCTRL, "Pickers")); // CONFIG_FILEPICKERCTRL v.push_back(wxExConfigItem( "File Picker", CONFIG_FILEPICKERCTRL, "Pickers")); // CONFIG_FONTPICKERCTRL v.push_back(wxExConfigItem( "Font Picker", CONFIG_FONTPICKERCTRL, "Pickers")); // CONFIG_HYPERLINKCTRL v.push_back(wxExConfigItem( "Hyper Link 1", "www.wxwidgets.org", "Hyperlinks", 0, CONFIG_HYPERLINKCTRL)); v.push_back(wxExConfigItem( "Hyper Link 2", "www.scintilla.org", "Hyperlinks", 0, CONFIG_HYPERLINKCTRL)); // CONFIG_INT for (size_t j = 1; j <= 5; j++) { v.push_back(wxExConfigItem( wxString::Format("Integer%d", j), CONFIG_INT, "Integers", true)); } // CONFIG_LISTVIEW_FOLDER v.push_back(wxExConfigItem( "ListView", CONFIG_LISTVIEW_FOLDER, "ListView")); // CONFIG_RADIOBOX std::map<long, const wxString> echoices; echoices.insert(std::make_pair(0, "Zero")); echoices.insert(std::make_pair(1, "One")); echoices.insert(std::make_pair(2, "Two")); v.push_back(wxExConfigItem( "Radio Box", echoices, true, "Radioboxes")); // CONFIG_SLIDER const int start = 1; for (size_t sl = start + 1; sl <= start + 5; sl++) { v.push_back(wxExConfigItem( wxString::Format("Slider%d", sl), start, sl, wxString("Spin controls"), CONFIG_SLIDER)); } // CONFIG_SPINCTRL for (size_t s = 1; s <= 3; s++) { v.push_back(wxExConfigItem( wxString::Format("Spin Control%d", s), 1, s, wxString("Spin controls"))); } // CONFIG_SPINCTRL_DOUBLE for (size_t sd = 1; sd <= 3; sd++) { v.push_back(wxExConfigItem( wxString::Format("Spin Control Double%d", sd), 1.0, (double)sd, wxString("Spin controls"), CONFIG_SPINCTRL_DOUBLE, wxSL_HORIZONTAL, 0.01)); } for (size_t st = 1; st <= 5; st++) { // CONFIG_STATICTEXT v.push_back(wxExConfigItem( wxString::Format("Static Text%d", st), "this is my static text", "Static Text", 0, CONFIG_STATICTEXT)); } // CONFIG_STATICLINE (horizontal) v.push_back(wxExConfigItem(wxLI_HORIZONTAL, "Static Line")); // CONFIG_STATICLINE (vertical) v.push_back(wxExConfigItem(wxLI_VERTICAL, "Static Line")); // CONFIG_STC v.push_back(wxExConfigItem( "STC", "cpp", "STC", 0, CONFIG_STC)); // CONFIG_STRING for (size_t l = 1; l <= 5; l++) { v.push_back(wxExConfigItem( wxString::Format("String%d", l), wxEmptyString, "Strings")); } v.push_back(wxExConfigItem( "String Multiline", wxEmptyString, "Strings", wxTE_MULTILINE)); // CONFIG_TOGGLEBUTTON for (size_t tb = 1; tb <= 4; tb++) { v.push_back(wxExConfigItem( wxString::Format("Toggle Button%d", tb), CONFIG_TOGGLEBUTTON, "Toggle buttons")); } /// CONFIG_USER v.push_back(wxExConfigItem( "HTML Control", new wxHtmlWindow(), myHtmlCreate, NULL, "User Controls")); v.push_back(wxExConfigItem( "Text Control", new wxTextCtrl(), myTextCreate, NULL, "User Controls")); wxExConfigDialog* dlg = new wxExConfigDialog( this, v, "Config Dialog", 0, 1, wxAPPLY | wxCANCEL); dlg->ForceCheckBoxChecked("Group", "Checkboxes"); dlg->Show(); }
void wxExSampleFrame::OnCommand(wxCommandEvent& event) { m_Statistics.Inc(wxString::Format("%d", event.GetId())); auto* editor = GetSTC(); auto* grid = GetGrid(); auto* listview = GetListView(); if ( (event.GetId() == wxID_UNDO || event.GetId() == wxID_REDO || event.GetId() == wxID_DELETE || event.GetId() == wxID_SELECTALL || event.GetId() == wxID_JUMP_TO) || (event.GetId() >= wxID_CUT && event.GetId() <= wxID_CLEAR)) { if (editor != NULL) { wxPostEvent(editor, event); } else if (grid != NULL) { wxPostEvent(grid, event); } else if (listview != NULL) { wxPostEvent(listview, event); } } else { switch (event.GetId()) { case wxID_ABOUT: { wxAboutDialogInfo info; info.SetIcon(GetIcon()); info.SetVersion(wxExGetVersionInfo().GetVersionOnlyString()); info.SetCopyright(wxExGetVersionInfo().GetCopyright()); wxAboutBox(info); } break; case wxID_EXIT: Close(true); break; case wxID_OPEN: { wxExFileDialog dlg(this, &m_STC->GetFile()); if (dlg.ShowModalIfChanged(true) == wxID_CANCEL) return; wxStopWatch sw; m_STC->Open(dlg.GetPath(), 0, wxEmptyString, m_FlagsSTC); const auto stop = sw.Time(); wxLogStatus(wxString::Format( "wxExSTC::Open:%ld milliseconds, %d bytes", stop, m_STC->GetTextLength())); } break; case wxID_PREVIEW: m_ListView->PrintPreview(); break; case wxID_PRINT: m_ListView->Print(); break; case wxID_PRINT_SETUP: wxExPrinting::Get()->GetHtmlPrinter()->PageSetup(); break; case wxID_SAVE: m_STC->GetFile().FileSave(); if (m_STC->GetFileName().GetFullPath() == wxExLexers::Get()->GetFileName().GetFullPath()) { wxExLexers::Get()->Read(); wxLogMessage("File contains: %d lexers", wxExLexers::Get()->GetCount()); // As the lexer might have changed, update status bar field as well. #if wxUSE_STATUSBAR UpdateStatusBar(m_STC, "PaneLexer"); #endif } break; case ID_CONFIG_DLG: ShowConfigItems(); break; case ID_CONFIG_DLG_READONLY: { std::vector<wxExConfigItem> v; v.push_back(wxExConfigItem("File Picker", CONFIG_FILEPICKERCTRL)); for (size_t j = 1; j <= 10; j++) { v.push_back(wxExConfigItem(wxString::Format("Integer%d", j), CONFIG_INT)); } wxExConfigDialog* dlg = new wxExConfigDialog( this, v, "Config Dialog Readonly", 0, 1, wxCANCEL); dlg->Show(); } break; case ID_PROCESS_SELECT: wxExProcess::ConfigDialog(this); break; case ID_PROCESS_RUN: m_Process.Execute(wxEmptyString); break; case ID_SHELL_COMMAND: m_STCShell->Prompt("\nHello '" + event.GetString() + "' from the shell"); break; case ID_SHOW_VCS: { wxFileDialog openFileDialog(this, _("Open File"), "", "", "All files (*.*)|*.*", wxFD_OPEN|wxFD_FILE_MUST_EXIST); if (openFileDialog.ShowModal() == wxID_CANCEL) return; // the user changed idea... wxArrayString ar; ar.Add(openFileDialog.GetPath()); wxExVCS vcs(ar); wxLogMessage(vcs.GetName()); if (vcs.GetEntry().SupportKeywordExpansion()) { wxLogMessage("supports keyword expansion"); } } break; case ID_STATISTICS_SHOW: m_Notebook->AddPage(m_Statistics.Show(m_Notebook), "Statistics"); break; case ID_STC_CONFIG_DLG: wxExSTC::ConfigDialog( this, "Editor Options", wxExSTC::STC_CONFIG_MODELESS | wxExSTC::STC_CONFIG_WITH_APPLY); break; case ID_STC_ENTRY_DLG: { wxString text; for (auto i = 0; i < 100; i++) { text += wxString::Format("Hello from line: %d\n", i); } wxExSTCEntryDialog dlg( this, "Hello world", text, "Greetings from " + wxTheApp->GetAppDisplayName()); dlg.ShowModal(); } break; case ID_STC_FLAGS: { long value = wxGetNumberFromUser( "Input:", wxEmptyString, "STC Open Flag", m_FlagsSTC, 0, 0xFFFF); if (value != -1) { m_FlagsSTC = value; } } break; case ID_STC_SPLIT: { wxExSTC* stc = new wxExSTC(*m_STC); m_Notebook->AddPage( stc, wxString::Format("stc%d", stc->GetId()), m_STC->GetFileName().GetFullName()); stc->SetDocPointer(m_STC->GetDocPointer()); } break; default: wxFAIL; break; } } }
int wxExVCS::ConfigDialog( wxWindow* parent, const wxString& title, bool modal) const { if (m_Entries.empty()) { return wxID_CANCEL; } std::map<long, const wxString> choices; choices.insert(std::make_pair((long)VCS_NONE, _("None"))); // Using auto vcs is not useful if we only have one vcs. if (m_Entries.size() != 1) { choices.insert(std::make_pair((long)VCS_AUTO, "Auto")); } long i = VCS_START; for ( #ifdef wxExUSE_CPP0X auto it = m_Entries.begin(); #else std::vector<wxExVCSEntry>::const_iterator it = m_Entries.begin(); #endif it != m_Entries.end(); ++it) { choices.insert(std::make_pair(i, it->GetName())); i++; } // Estimate number of columns used by the radiobox. int cols = 5; switch (choices.size()) { case 6: case 11: cols = 3; break; case 7: case 8: case 12: case 16: cols = 4; break; } std::vector<wxExConfigItem> v; v.push_back(wxExConfigItem( "VCS", choices, true, // use a radiobox wxEmptyString, cols)); for ( #ifdef wxExUSE_CPP0X auto it2 = m_Entries.begin(); #else std::vector<wxExVCSEntry>::const_iterator it2 = m_Entries.begin(); #endif it2 != m_Entries.end(); ++it2) { v.push_back(wxExConfigItem(it2->GetName(), CONFIG_FILEPICKERCTRL)); } if (modal) { return wxExConfigDialog(parent, v, title).ShowModal(); } else { wxExConfigDialog* dlg = new wxExConfigDialog(parent, v, title); return dlg->Show(); } }