cbDiffEditor::cbDiffEditor(const wxString &leftFile, const wxString &rightFile, int viewmode, bool leftReadOnly, bool rightReadOnly): EditorBase((wxWindow*)Manager::Get()->GetEditorManager()->GetNotebook(), leftFile + rightFile), diffctrl_(0), leftFile_(leftFile), rightFile_(rightFile), leftReadOnly_(leftReadOnly), rightReadOnly_(rightReadOnly) { colorset_.addedlines_ = wxColour(0,255,0,50); colorset_.removedlines_ = wxColour(255,0,0,50); colorset_.selectedlines_ = wxColour(0,0,255,50); colorset_.caretlinetype_ = 0; colorset_.caretline_ = wxColor(122,122,0); ConfigManager *cfg = Manager::Get()->GetConfigManager(_T("cbdiffsettings")); if (cfg) { wxColour add = cfg->ReadColour(_T("addedlines"), wxColour(0,255,0,50)); int addalpha = cfg->ReadInt(_T("addedlinesalpha"), 50); wxColour rem = cfg->ReadColour(_T("removedlines"), wxColour(255,0,0,50)); int remalpha = cfg->ReadInt(_T("removedlinesalpha"), 50); wxColour sel = cfg->ReadColour(_T("selectedlines"), wxColour(0,0,255,50)); int selalpha = cfg->ReadInt(_T("selectedlinesalpha"), 50); colorset_.caretlinetype_ = cfg->ReadInt(_T("caretlinetype")); wxColour car = cfg->ReadColour(_T("caretline"), wxColor(122,122,0)); int caralpha = cfg->ReadInt(_T("caretlinealpha"), 50); colorset_.addedlines_ = wxColour(add.Red(), add.Green(), add.Blue(), addalpha); colorset_.removedlines_ = wxColour(rem.Red(), rem.Green(), rem.Blue(), remalpha); colorset_.selectedlines_ = wxColour(sel.Red(), sel.Green(), sel.Blue(), selalpha); colorset_.caretline_ = wxColour(car.Red(), car.Green(), car.Blue(), caralpha); if(viewmode == DEFAULT) viewmode = cfg->ReadInt(_T("viewmode"), 0) + TABLE; } HighlightLanguage hl = Manager::Get()->GetEditorManager()->GetColourSet()->GetLanguageForFilename(leftFile_); if (hl != HL_NONE) colorset_.hlang_ = Manager::Get()->GetEditorManager()->GetColourSet()->GetLanguageName(hl); wxBoxSizer* BoxSizer = new wxBoxSizer(wxVERTICAL); SetSizer(BoxSizer); InitDiffCtrl(viewmode); allEditors_.insert(this); Reload(); BoxSizer->Layout(); Layout(); }
void IncrementalSearch::HighlightText() { if (!m_pEditor || !m_pEditor->GetControl()) { return; } cbStyledTextCtrl* control = m_pEditor->GetControl(); // first delete all stylings for found phrases control->SetIndicatorCurrent(m_IndicFound); control->IndicatorClearRange(0, control->GetLength()); // then for highlighted phrases control->SetIndicatorCurrent(m_IndicHighlight); control->IndicatorClearRange(0, control->GetLength()); // then set the new ones (if any) if (m_NewPos != wxSCI_INVALID_POSITION && !m_SearchText.empty()) { ConfigManager* cfg = Manager::Get()->GetConfigManager(_T("editor")); wxColour colourTextFound(cfg->ReadColour(_T("/incremental_search/text_found_colour"), wxColour(160, 32, 240))); // center last found phrase on the screen, if wanted if (cfg->ReadBool(_T("/incremental_search/center_found_text_on_screen"), true)) { int line = control->LineFromPosition(m_NewPos); int onScreen = control->LinesOnScreen() >> 1; int l1 = line - onScreen; int l2 = line + onScreen; for (int l=l1; l<=l2;l+=2) // unfold visible lines on screen control->EnsureVisible(l); control->GotoLine(l1); // center selection on screen control->GotoLine(l2); }
IncrementalSearchConfDlg::IncrementalSearchConfDlg(wxWindow* parent) { wxXmlResource::Get()->LoadObject(this,parent,_T("IncrementalSearchConfDlg"),_T("wxPanel")); ConfigManager* cfg = Manager::Get()->GetConfigManager(_T("editor")); // initialise colour-values XRCCTRL(*this, "btnIncSearchConfColourFound", wxButton)->SetBackgroundColour(cfg->ReadColour(_T("/incremental_search/text_found_colour"), wxColour(160, 32, 240))); XRCCTRL(*this, "btnIncSearchConfColourHighlight", wxButton)->SetBackgroundColour(cfg->ReadColour(_T("/incremental_search/highlight_colour"), wxColour(255, 165, 0))); XRCCTRL(*this, "btnIncSearchConfNotFoundBG", wxButton)->SetBackgroundColour(cfg->ReadColour(_T("/incremental_search/text_not_found_colour"), wxColour(255, 127, 127))); XRCCTRL(*this, "btnIncSearchConfWrappedBG", wxButton)->SetBackgroundColour(cfg->ReadColour(_T("/incremental_search/wrapped_colour"), wxColour(127, 127, 255))); // get value from conf-file or predefine them with default value XRCCTRL(*this, "chkIncSearchConfCenterText", wxCheckBox)->SetValue(cfg->ReadBool(_T("/incremental_search/center_found_text_on_screen"),true)); XRCCTRL(*this, "idIncSearchSelectOnEscape", wxCheckBox)->SetValue(cfg->ReadBool(_T("/incremental_search/select_found_text_on_escape"),false)); XRCCTRL(*this, "idIncSearchSelectOnFocus", wxCheckBox)->SetValue(cfg->ReadBool(_T("/incremental_search/select_text_on_focus"),false)); XRCCTRL(*this, "idIncSearchHighlightDefault", wxChoice)->SetSelection(cfg->ReadInt(_T("/incremental_search/highlight_default_state"),0)); XRCCTRL(*this, "idIncSearchSelectedDefault", wxChoice)->SetSelection(cfg->ReadInt(_T("/incremental_search/selected_default_state"),0)); XRCCTRL(*this, "idIncSearchMatchCaseDefault", wxChoice)->SetSelection(cfg->ReadInt(_T("/incremental_search/match_case_default_state"),0)); XRCCTRL(*this, "idIncSearchRegExDefault", wxChoice)->SetSelection(cfg->ReadInt(_T("/incremental_search/regex_default_state"),0)); }
MiniStyledTextCtrl::MiniStyledTextCtrl(wxWindow* pParent, int id, const wxPoint& pos, const wxSize& size, long style): cbStyledTextCtrl(pParent, id, pos, size, style) { Init(); ConfigManager* cfg = Manager::Get()->GetConfigManager(_T("editor")); if (cfg->ReadBool(_T("/highlight_occurrence/enabled"), true)) { const int theIndicator = 10; wxColour highlightColour(Manager::Get()->GetColourManager()->GetColour(wxT("editor_highlight_occurrence"))); IndicatorSetStyle(theIndicator, wxSCI_INDIC_HIGHLIGHT); IndicatorSetForeground(theIndicator, highlightColour ); #ifndef wxHAVE_RAW_BITMAP IndicatorSetUnder(theIndicator,true); #endif } const int thePermIndicator = 12; IndicatorSetStyle(thePermIndicator, wxSCI_INDIC_HIGHLIGHT); IndicatorSetForeground(thePermIndicator, wxColour(Manager::Get()->GetColourManager()->GetColour(wxT("editor_highlight_occurrence_permanently"))) ); #ifndef wxHAVE_RAW_BITMAP IndicatorSetUnder(thePermIndicator,true); #endif const int theFindFoudIndicator = 21; IndicatorSetStyle(theFindFoudIndicator, wxSCI_INDIC_HIGHLIGHT); IndicatorSetForeground(theFindFoudIndicator, wxColour(cfg->ReadColour(_T("/incremental_search/text_found_colour"), wxColour(160, 32, 240))) ); #ifndef wxHAVE_RAW_BITMAP IndicatorSetUnder(theFindFoudIndicator,true); #endif const int theFindHighlightIndicator = 22; IndicatorSetStyle(theFindHighlightIndicator, wxSCI_INDIC_HIGHLIGHT); IndicatorSetForeground(theFindHighlightIndicator, wxColour(cfg->ReadColour(_T("/incremental_search/highlight_colour"), wxColour(255, 165, 0))) ); #ifndef wxHAVE_RAW_BITMAP IndicatorSetUnder(theFindHighlightIndicator,true); #endif }
cbDiffConfigPanel::cbDiffConfigPanel(wxWindow* parent) { //(*Initialize(cbDiffConfigPanel) wxStaticBoxSizer* StaticBoxSizer2; wxStaticBoxSizer* StaticBoxSizer5; wxBoxSizer* BoxSizer2; wxStaticText* StaticText1; wxStaticBoxSizer* StaticBoxSizer3; wxStaticBoxSizer* StaticBoxSizer4; wxBoxSizer* BoxSizer1; wxStaticText* StaticText2; wxStaticBoxSizer* StaticBoxSizer1; Create(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("wxID_ANY")); BoxSizer1 = new wxBoxSizer(wxVERTICAL); StaticBoxSizer2 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Added Lines:")); BColAdd = new wxButton(this, ID_BUTTON2, _("Colour"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON2")); StaticBoxSizer2->Add(BColAdd, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); StaticText1 = new wxStaticText(this, ID_STATICTEXT1, _("Alpha:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1")); StaticBoxSizer2->Add(StaticText1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); SLAddAlpha = new wxSlider(this, ID_SLIDER1, 50, 0, 255, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_SLIDER1")); StaticBoxSizer2->Add(SLAddAlpha, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); BoxSizer1->Add(StaticBoxSizer2, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); StaticBoxSizer1 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Removed Lines:")); BColRem = new wxButton(this, ID_BUTTON1, _("Colour"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON1")); StaticBoxSizer1->Add(BColRem, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); StaticText2 = new wxStaticText(this, ID_STATICTEXT2, _("Alpha:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2")); StaticBoxSizer1->Add(StaticText2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); SLRemAlpha = new wxSlider(this, ID_SLIDER2, 50, 0, 255, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_SLIDER2")); StaticBoxSizer1->Add(SLRemAlpha, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); BoxSizer1->Add(StaticBoxSizer1, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); StaticBoxSizer3 = new wxStaticBoxSizer(wxVERTICAL, this, _("Caret Line:")); CHCaret = new wxChoice(this, ID_CHOICE1, wxDefaultPosition, wxDefaultSize, 0, 0, 0, wxDefaultValidator, _T("ID_CHOICE1")); CHCaret->SetSelection( CHCaret->Append(_("Underline")) ); CHCaret->Append(_("Background")); StaticBoxSizer3->Add(CHCaret, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); BoxSizer2 = new wxBoxSizer(wxHORIZONTAL); BColCar = new wxButton(this, ID_BUTTON3, _("Colour"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON3")); BoxSizer2->Add(BColCar, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); StaticText3 = new wxStaticText(this, ID_STATICTEXT3, _("Alpha:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT3")); BoxSizer2->Add(StaticText3, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); SLCarAlpha = new wxSlider(this, ID_SLIDER3, 50, 0, 255, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_SLIDER3")); BoxSizer2->Add(SLCarAlpha, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); StaticBoxSizer3->Add(BoxSizer2, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0); BoxSizer1->Add(StaticBoxSizer3, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); StaticBoxSizer4 = new wxStaticBoxSizer(wxVERTICAL, this, _("Default values:")); wxString __wxRadioBoxChoices_1[3] = { _("Tabular"), _("Unified Diff"), _("Side by side") }; RBViewing = new wxRadioBox(this, ID_RADIOBOX1, _("Displaytype:"), wxDefaultPosition, wxDefaultSize, 3, __wxRadioBoxChoices_1, 1, wxRA_VERTICAL, wxDefaultValidator, _T("ID_RADIOBOX1")); RBViewing->SetSelection(0); StaticBoxSizer4->Add(RBViewing, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); StaticBoxSizer5 = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Language:")); CHHLang = new wxChoice(this, ID_CHOICE2, wxDefaultPosition, wxDefaultSize, 0, 0, 0, wxDefaultValidator, _T("ID_CHOICE2")); StaticBoxSizer5->Add(CHHLang, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); StaticBoxSizer4->Add(StaticBoxSizer5, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); BoxSizer1->Add(StaticBoxSizer4, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); SetSizer(BoxSizer1); BoxSizer1->Fit(this); BoxSizer1->SetSizeHints(this); Connect(ID_BUTTON2,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&cbDiffConfigPanel::OnColAddClick); Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&cbDiffConfigPanel::OnColRemClick); Connect(ID_BUTTON3,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&cbDiffConfigPanel::OnColCarClick); Connect(ID_RADIOBOX1,wxEVT_COMMAND_RADIOBOX_SELECTED,(wxObjectEventFunction)&cbDiffConfigPanel::OnViewModeChange); Connect(ID_CHOICE2,wxEVT_COMMAND_CHOICE_SELECTED,(wxObjectEventFunction)&cbDiffConfigPanel::OnHLangChange); //*) BColAdd->SetBackgroundColour(wxColour(0,255,0,50)); BColRem->SetBackgroundColour(wxColour(255,0,0,50)); CHCaret->SetSelection(0); BColCar->SetBackgroundColour(wxColour(122,122,0)); CHHLang->Append(cbDiffUtils::GetAllHighlightLanguages()); ConfigManager *cfg = Manager::Get()->GetConfigManager(_T("cbdiffsettings")); if (cfg) { BColAdd->SetBackgroundColour(cfg->ReadColour(_T("addedlines"), wxColour(0,255,0,50))); SLAddAlpha->SetValue(cfg->ReadInt(_T("addedlinesalpha"), 50)); BColRem->SetBackgroundColour(cfg->ReadColour(_T("removedlines"), wxColour(255,0,0,50))); SLRemAlpha->SetValue(cfg->ReadInt(_T("removedlinesalpha"),50)); CHCaret->SetSelection(cfg->ReadInt(_T("caretlinetype"))); BColCar->SetBackgroundColour(cfg->ReadColour(_T("caretline"), wxColor(122,122,0))); SLCarAlpha->SetValue(cfg->ReadInt(_T("caretlinealpha"), 50)); RBViewing->SetSelection(cfg->ReadInt(_T("viewmode"), 0)); if(RBViewing->GetSelection() == 1) CHHLang->Enable(false); CHHLang->SetStringSelection(cfg->Read(_T("hlang"), _("Plain Text"))); } BColAdd->SetLabel(BColAdd->GetBackgroundColour().GetAsString()); BColRem->SetLabel(BColRem->GetBackgroundColour().GetAsString()); BColCar->SetLabel(BColCar->GetBackgroundColour().GetAsString()); }
void EditorColourSet::Load() { // no need for syntax highlighting if batch building if (Manager::IsBatchBuild()) return; static bool s_notifiedUser = false; wxString key; ConfigManager* cfg = Manager::Get()->GetConfigManager(_T("editor")); // read the theme name m_Name = cfg->Read(_T("/colour_sets/") + m_Name + _T("/name"), m_Name); int x = 0; for (OptionSetsMap::iterator it = m_Sets.begin(); it != m_Sets.end(); ++it) { if (it->first == HL_NONE || it->first == HL_AUTO) continue; // look for old-style configuration key.Clear(); key << _T("/colour_sets/") << m_Name << _T("/set") << wxString::Format(_T("%d"), x++); if (cfg->Exists(key + _T("/name"))) { // old-style configuration // delete it and tell the user about it cfg->DeleteSubPath(key); if (!s_notifiedUser) { cbMessageBox(_("The way editor syntax highlighting configuration is saved, has changed.\n" "Syntax highlighting for all supported languages will revert to defaults now.\n" "We 're sorry for the inconvenience..."), _("Information"), wxICON_INFORMATION); s_notifiedUser = true; } continue; } // make sure we didn't create it accidentally cfg->DeleteSubPath(key); // new-style configuration key key.Clear(); key << _T("/colour_sets/") << m_Name << _T('/') << it->first; if (!cfg->Exists(key + _T("/name"))) { // make sure we didn't create it accidentally cfg->DeleteSubPath(key); continue; } for (unsigned int i = 0; i < it->second.m_Colours.GetCount(); ++i) { wxString tmpKey; tmpKey << key << _T("/style") << wxString::Format(_T("%u"), i); if (!cfg->Exists(tmpKey + _T("/name"))) { // make sure we didn't create it accidentally cfg->DeleteSubPath(tmpKey); continue; } wxString name = cfg->Read(tmpKey + _T("/name")); for (size_t j = 0; j < it->second.m_Colours.GetCount(); ++j) { OptionColour* opt = it->second.m_Colours.Item(j); if (!opt || opt->name != name) continue; if (cfg->Exists(tmpKey + _T("/fore"))) opt->fore = cfg->ReadColour(tmpKey + _T("/fore"), opt->fore); if (cfg->Exists(tmpKey + _T("/back"))) opt->back = cfg->ReadColour(tmpKey + _T("/back"), opt->back); if (cfg->Exists(tmpKey + _T("/bold"))) opt->bold = cfg->ReadBool(tmpKey + _T("/bold"), opt->bold); if (cfg->Exists(tmpKey + _T("/italics"))) opt->italics = cfg->ReadBool(tmpKey + _T("/italics"), opt->italics); if (cfg->Exists(tmpKey + _T("/underlined"))) opt->underlined = cfg->ReadBool(tmpKey + _T("/underlined"), opt->underlined); if (cfg->Exists(tmpKey + _T("/isStyle"))) opt->isStyle = cfg->ReadBool(tmpKey + _T("/isStyle"), opt->isStyle); } } wxString tmpkey; for (int i = 0; i <= wxSCI_KEYWORDSET_MAX; ++i) { tmpkey.Printf(_T("%s/editor/keywords/set%d"), key.c_str(), i); if (cfg->Exists(tmpkey)) it->second.m_Keywords[i] = cfg->Read(tmpkey, wxEmptyString); } tmpkey.Printf(_T("%s/editor/filemasks"), key.c_str()); if (cfg->Exists(tmpkey)) it->second.m_FileMasks = GetArrayFromString(cfg->Read(tmpkey, wxEmptyString), _T(",")); } }