wxSTEditorOptions::wxSTEditorOptions(long editor_opt, long splitter_opt, long notebook_opt, long frame_opt, long config_opt, const wxString& defaultFileName, const wxString& defaultFilePath, const wxString& defaultFileExt ) { m_refData = new wxSTEditorOptions_RefData(); SetOptionInt(STE_OPTION_EDITOR, editor_opt); SetOptionInt(STE_OPTION_SPLITTER, splitter_opt); SetOptionInt(STE_OPTION_NOTEBOOK, notebook_opt); SetOptionInt(STE_OPTION_FRAME, frame_opt); SetOptionInt(STE_OPTION_CONFIG, config_opt); SetOptionInt(STE_OPTION_FINDREPLACE, STE_FR_DEFAULT_OPTIONS); SetOption(STE_OPTION_DEFAULT_FILENAME, defaultFileName); SetOption(STE_OPTION_DEFAULT_FILEPATH, defaultFilePath); SetOption(STE_OPTION_DEFAULT_FILEEXTS, defaultFileExt); SetOption(STE_OPTION_CFGPATH_BASE, wxT("/wxSTEditor")); SetOption(STE_OPTION_CFGPATH_PREFS, wxT("Preferences")); SetOption(STE_OPTION_CFGPATH_STYLES, wxT("Styles")); SetOption(STE_OPTION_CFGPATH_LANGS, wxT("Languages")); SetOption(STE_OPTION_CFGPATH_FRAME, wxT("Frame")); SetOption(STE_OPTION_CFGPATH_FILEHISTORY, wxT("RecentFiles")); SetOption(STE_OPTION_CFGPATH_FINDREPLACE, wxT("FindReplace")); SetUseGlobalPrefsStylesLangs(); SetFindReplaceData(&s_wxSTEditor_FindData, true); SetMenuManager(new wxSTEditorMenuManager(0, 0, STE_MENU_EDIT_DEFAULT, 0, 0, 0, STE_MENU_PREFS_DEFAULT, 0, 0, 0), false); //maks }
bool FindReplaceDialog::Show(int kind) { if ( IsShown() ) { if (m_kind == kind) { return true; } //change the dialog ShowReplaceControls(true); return true; } if(kind == FIND_DLG) { ShowReplaceControls(false); }else{ ShowReplaceControls(true); } // call Show() here bool res = wxDialog::Show(); // and now call the focus methods SetFindReplaceData(m_data, true); m_findString->SetSelection(-1, -1); // select all m_findString->SetFocus(); return res; }
void FindReplaceDialog::CreateGUIControls() { wxBoxSizer* hMainSzier = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer* btnSizer = new wxBoxSizer(wxVERTICAL); gbSizer = new wxGridBagSizer(); SetSizer(hMainSzier); hMainSzier->Add(gbSizer, 1, wxEXPAND | wxALL, 5); hMainSzier->Add(btnSizer, 0, wxALL, 5); wxStaticText* itemStaticText; itemStaticText = new wxStaticText(this, wxID_STATIC, wxT("Find What:"), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); gbSizer->Add(itemStaticText, wxGBPosition(0, 0), wxDefaultSpan, wxALL, 5); m_findString = new wxComboBox(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(200, -1)); gbSizer->Add(m_findString, wxGBPosition(0, 1), wxDefaultSpan, wxALL | wxEXPAND, 5); m_replaceWithLabel = new wxStaticText(this, wxID_STATIC, wxT("Replace With:"), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); gbSizer->Add(m_replaceWithLabel, wxGBPosition(1, 0), wxDefaultSpan, wxALL, 5); m_replaceString = new wxComboBox(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(200, -1)); gbSizer->Add(m_replaceString, wxGBPosition(1, 1), wxDefaultSpan, wxALL | wxEXPAND, 5); sz = new wxStaticBoxSizer(wxVERTICAL, this, wxT("Options")); gbSizer->Add(sz, wxGBPosition(2, 0), wxGBSpan(1, 2), wxALL | wxEXPAND, 5); gbSizer->AddGrowableCol(1); m_matchCase = new wxCheckBox(this, wxID_ANY, wxT("&Match case")); sz->Add(m_matchCase, 1, wxALL | wxEXPAND, 5); m_matchWholeWord = new wxCheckBox(this, wxID_ANY, wxT("Match &whole word")); sz->Add(m_matchWholeWord, 1, wxALL | wxEXPAND, 5); m_regualrExpression = new wxCheckBox(this, wxID_ANY, wxT("Regular &expression")); sz->Add(m_regualrExpression, 1, wxALL | wxEXPAND, 5); m_searchUp = new wxCheckBox(this, wxID_ANY, wxT("Search &up")); sz->Add(m_searchUp, 1, wxALL | wxEXPAND, 5); m_selectionOnly = new wxCheckBox(this, wxID_ANY, wxT("Search / Replace in selec&ted text")); sz->Add(m_selectionOnly, 1, wxALL | wxEXPAND, 5); // Add the buttons m_find = new wxButton(this, wxID_ANY, wxT("&Find Next")); btnSizer->Add(m_find, 1, wxALL | wxEXPAND, 5); m_replace = new wxButton(this, wxID_ANY, wxT("&Replace")); btnSizer->Add(m_replace, 1, wxALL | wxEXPAND, 5); m_replaceAll = new wxButton(this, wxID_ANY, wxT("Replace &All")); btnSizer->Add(m_replaceAll, 1, wxALL | wxEXPAND, 5); m_markAll = new wxButton(this, wxID_ANY, wxT("&Bookmark All")); btnSizer->Add(m_markAll, 1, wxALL | wxEXPAND, 5); m_clearBookmarks = new wxButton(this, wxID_ANY, wxT("&Clear Bookmarks")); btnSizer->Add(m_clearBookmarks, 1, wxALL | wxEXPAND, 5); m_cancel = new wxButton(this, wxID_ANY, wxT("Close")); btnSizer->Add(m_cancel, 1, wxALL | wxEXPAND, 5); m_replacementsMsg = new wxStaticText(this, wxID_ANY, wxEmptyString); btnSizer->Add(m_replacementsMsg, 1, wxALL | wxEXPAND, 5); // gbSizer->Add(m_replacementsMsg, wxGBPosition(3, 0), wxGBSpan(1, 2), wxALL | wxEXPAND, 5); SetReplacementsMessage(frd_dontshowzeros); // set values SetFindReplaceData(m_data, true); }
void FindReplaceDialog::OnClick(wxCommandEvent& event) { wxObject* btnClicked = event.GetEventObject(); size_t flags = m_data.GetFlags(); m_data.SetFindString(m_findString->GetValue()); m_data.SetReplaceString(m_replaceString->GetValue()); // disable the 'Find/Replace' buttons when the 'Selection only' is enabled if(m_selectionOnly->IsChecked()) { m_find->Enable(false); m_replace->Enable(false); } else { m_find->Enable(true); m_replace->Enable(true); } if(btnClicked == m_find) { VALIDATE_FINDWHAT(); SendEvent(wxEVT_FRD_FIND_NEXT); } else if(btnClicked == m_replace) { VALIDATE_FINDWHAT(); SendEvent(wxEVT_FRD_REPLACE); } else if(btnClicked == m_replaceAll) { VALIDATE_FINDWHAT(); SendEvent(wxEVT_FRD_REPLACEALL); } else if(btnClicked == m_markAll) { VALIDATE_FINDWHAT(); SendEvent(wxEVT_FRD_BOOKMARKALL); } else if(btnClicked == m_clearBookmarks) { SendEvent(wxEVT_FRD_CLEARBOOKMARKS); } else if(btnClicked == m_cancel) { // Fire a close event SendEvent(wxEVT_FRD_CLOSE); // Hide the dialog Hide(); // Make sure the Search in Selected Text flag is clear, otherwise we can't Find Next flags &= ~(wxFRD_SELECTIONONLY); } else if(btnClicked == m_matchCase) { if(m_matchCase->IsChecked()) { flags |= wxFRD_MATCHCASE; } else { flags &= ~(wxFRD_MATCHCASE); } } else if(btnClicked == m_matchWholeWord) { if(m_matchWholeWord->IsChecked()) { flags |= wxFRD_MATCHWHOLEWORD; } else { flags &= ~(wxFRD_MATCHWHOLEWORD); } } else if(btnClicked == m_regualrExpression) { if(m_regualrExpression->IsChecked()) { flags |= wxFRD_REGULAREXPRESSION; } else { flags &= ~(wxFRD_REGULAREXPRESSION); } } else if(btnClicked == m_searchUp) { if(m_searchUp->IsChecked()) { flags |= wxFRD_SEARCHUP; } else { flags &= ~(wxFRD_SEARCHUP); } } else if(btnClicked == m_selectionOnly) { if(m_selectionOnly->IsChecked()) { flags |= wxFRD_SELECTIONONLY; } else { flags &= ~(wxFRD_SELECTIONONLY); } } // Set the updated flags, unless it was ReplaceAll which does this itself if(btnClicked != m_replaceAll) { m_data.SetFlags(flags); } // update the data of the find/replace dialog, in particular, // update the history of the Find What / replace with controls #if defined(__WXGTK__) && wxVERSION_NUMBER >= 2900 // But if it's a findNext or a Replace, do it by posting an event, // otherwise strange duplications happen (because scintilla steals the primary selection?) wxCommandEvent e(wxEVT_FRD_FIND_NEXT); // Arbitrary choice of event-type wxPostEvent(this, e); #else SetFindReplaceData(m_data, false); #endif }
void FindReplaceDialog::OnFindEvent(wxCommandEvent& event) { SetFindReplaceData(GetData(), false); }
void FindReplaceDialog::OnClick(wxCommandEvent &event) { wxObject *btnClicked = event.GetEventObject(); size_t flags = m_data.GetFlags(); m_data.SetFindString( m_findString->GetValue() ); m_data.SetReplaceString( m_replaceString->GetValue() ); // disable the 'Find/Replace' buttons when the 'Selection only' is enabled if ( m_selectionOnly->IsChecked() ) { m_find->Enable(false); m_replace->Enable(false); } else { m_find->Enable(true); m_replace->Enable(true); } if (btnClicked == m_find) { VALIDATE_FINDWHAT(); SendEvent(wxEVT_FRD_FIND_NEXT); } else if (btnClicked == m_replace) { VALIDATE_FINDWHAT(); SendEvent(wxEVT_FRD_REPLACE); } else if (btnClicked == m_replaceAll) { VALIDATE_FINDWHAT(); SendEvent(wxEVT_FRD_REPLACEALL); } else if (btnClicked == m_markAll) { VALIDATE_FINDWHAT(); SendEvent(wxEVT_FRD_BOOKMARKALL); } else if (btnClicked == m_clearBookmarks) { SendEvent(wxEVT_FRD_CLEARBOOKMARKS); } else if (btnClicked == m_cancel) { // Fire a close event SendEvent(wxEVT_FRD_CLOSE); // Hide the dialog Hide(); // Make sure the Search in Selected Text flag is clear, otherwise we can't Find Next flags &= ~(wxFRD_SELECTIONONLY); } else if (btnClicked == m_matchCase) { if (m_matchCase->IsChecked()) { flags |= wxFRD_MATCHCASE; } else { flags &= ~(wxFRD_MATCHCASE); } } else if (btnClicked == m_matchWholeWord) { if (m_matchWholeWord->IsChecked()) { flags |= wxFRD_MATCHWHOLEWORD; } else { flags &= ~(wxFRD_MATCHWHOLEWORD); } } else if (btnClicked == m_regualrExpression) { if (m_regualrExpression->IsChecked()) { flags |= wxFRD_REGULAREXPRESSION; } else { flags &= ~(wxFRD_REGULAREXPRESSION); } } else if (btnClicked == m_searchUp) { if (m_searchUp->IsChecked()) { flags |= wxFRD_SEARCHUP; } else { flags &= ~(wxFRD_SEARCHUP); } } else if (btnClicked == m_selectionOnly) { if (m_selectionOnly->IsChecked()) { flags |= wxFRD_SELECTIONONLY; } else { flags &= ~(wxFRD_SELECTIONONLY); } } // Set the updated flags, unless it was ReplaceAll which does this itself if (btnClicked != m_replaceAll) { m_data.SetFlags(flags); } // update the data of the find/replace dialog, in particular, // update the history of the Find What / replace with controls SetFindReplaceData(m_data, false); }