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 }
/* TextEditor::setup * Sets up text editor properties depending on cvars and the current * text styleset/style *******************************************************************/ void TextEditor::setup() { // General settings SetBufferedDraw(true); SetUseAntiAliasing(true); SetMouseDwellTime(500); AutoCompSetIgnoreCase(true); SetIndentationGuides(txed_indent_guides); // Right margin line SetEdgeColumn(txed_edge_column); if (txed_edge_column == 0) SetEdgeMode(wxSTC_EDGE_NONE); else SetEdgeMode(wxSTC_EDGE_LINE); // Apply default style StyleSet::applyCurrent(this); CallTipUseStyle(10); StyleSetChangeable(wxSTC_STYLE_CALLTIP, true); wxFont font_ct(10, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL); StyleSetFont(wxSTC_STYLE_CALLTIP, font_ct); CallTipSetForegroundHighlight(WXCOL(StyleSet::currentSet()->getStyle("calltip_hl")->getForeground())); // Set folding options setupFolding(); // Re-colour text Colourise(0, GetTextLength()); // Set word wrapping if (txed_word_wrap) SetWrapMode(wxSTC_WRAP_WORD); else SetWrapMode(wxSTC_WRAP_NONE); // Set word match indicator style SetIndicatorCurrent(8); IndicatorSetStyle(8, wxSTC_INDIC_ROUNDBOX); IndicatorSetUnder(8, true); IndicatorSetOutlineAlpha(8, 60); IndicatorSetAlpha(8, 40); }
void cbStyledTextCtrl::HighlightRightBrace() { if (m_bracePosition == wxSCI_INVALID_POSITION) return; int pos = GetCurrentPos(); if (pos == wxSCI_INVALID_POSITION) return; const static wxColour caretForeground = GetCaretForeground(); const static int caretWidth = GetCaretWidth(); const int curLine = GetCurrentLine(); const int len = GetLength(); if (m_tabSmartJump && (curLine == LineFromPosition(m_bracePosition))) { SetIndicatorCurrent(s_indicHighlight); const int indPos = GetLineIndentPosition(curLine); IndicatorClearRange(indPos, GetLineEndPosition(curLine)-indPos); do { if (pos >= len) break; wxString cur((wxChar)GetCharAt(pos)); if (cur == _T("\n")) break; int style = GetStyleAt(pos); if (IsComment(style)) continue; if (IsString(style) || IsCharacter(style)) { const int nextOne = (pos == len) ? GetStyleAt(pos) : GetStyleAt(pos + 1); if (IsCharacter(nextOne) || IsString(nextOne)) continue; } if (s_rightBrace.Contains(cur)) { SetCaretForeground(wxColour(255, 0, 0)); SetCaretWidth(caretWidth + 1); IndicatorSetForeground(s_indicHighlight, wxColour(80, 236, 120)); IndicatorSetStyle(s_indicHighlight, wxSCI_INDIC_HIGHLIGHT); #ifndef wxHAVE_RAW_BITMAP IndicatorSetUnder(s_indicHighlight, true); #endif SetIndicatorCurrent(s_indicHighlight); IndicatorFillRange(pos, 1); m_bracePosition = pos + 1; return; } } while (++pos); } m_bracePosition = wxSCI_INVALID_POSITION; m_lastPosition = wxSCI_INVALID_POSITION; m_tabSmartJump = false; SetIndicatorCurrent(s_indicHighlight); IndicatorClearRange(0, len); SetCaretForeground(caretForeground); SetCaretWidth(caretWidth); }