void SvnBlameEditor::Initialize() { // Initialize some styles SetMarginType (0, wxSTC_MARGIN_TEXT ); SetMarginType (1, wxSTC_MARGIN_NUMBER); SetMarginWidth(1, 4 + 5*TextWidth(wxSTC_STYLE_LINENUMBER, wxT("9"))); SetMarginWidth(2, 0); SetMarginWidth(3, 0); SetMarginWidth(4, 0); SetTabWidth(4); // Define some colors to use StyleSetBackground(MARGIN_STYLE_START + 1, DrawingUtils::LightColour(wxT("GREEN"), 7.0)); StyleSetBackground(MARGIN_STYLE_START + 2, DrawingUtils::LightColour(wxT("BLUE"), 7.0)); StyleSetBackground(MARGIN_STYLE_START + 3, DrawingUtils::LightColour(wxT("ORANGE"), 7.0)); StyleSetBackground(MARGIN_STYLE_START + 4, DrawingUtils::LightColour(wxT("YELLOW"), 7.0)); StyleSetBackground(MARGIN_STYLE_START + 5, DrawingUtils::LightColour(wxT("PURPLE"), 7.0)); StyleSetBackground(MARGIN_STYLE_START + 6, DrawingUtils::LightColour(wxT("RED"), 7.0)); StyleSetBackground(MARGIN_STYLE_START + 7, DrawingUtils::LightColour(wxT("BROWN"), 7.0)); StyleSetBackground(MARGIN_STYLE_START + 8, DrawingUtils::LightColour(wxT("LIGHT GREY"), 7.0)); StyleSetBackground(MARGIN_STYLE_START + 9, DrawingUtils::LightColour(wxT("SIENNA"), 7.0)); StyleSetBackground(MARGIN_STYLE_START + 10, wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT)); StyleSetForeground(MARGIN_STYLE_START + 10, wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT)); }
void CodeEdit::SetDefaultLexer() { SetLexer(wxSTC_LEX_NULL); SetKeyWords(1, ""); // Set the caret width to match MSVC. SetCaretWidth(2); // Set the marker bitmaps. MarkerDefineBitmap(Marker_Breakpoint, wxMEMORY_BITMAP(Breakpoint_png) ); MarkerDefineBitmap(Marker_CurrentLine, wxMEMORY_BITMAP(Currentline_png) ); MarkerDefineBitmap(Marker_BreakLine, wxMEMORY_BITMAP(Breakline_png) ); // Setup the dwell time before a tooltip is displayed. SetMouseDwellTime(300); SetMarginSensitive(1, true); SetMarginType(1, wxSTC_MARGIN_SYMBOL); // Set the autocomplete icons. wxColour maskColor(0xFF, 0x9B, 0x77); wxBitmap functionIcon(functionicon, wxBITMAP_TYPE_XPM); functionIcon.SetMask(new wxMask(functionicon, maskColor)); RegisterImage(AutoCompleteManager::Type_Function, functionIcon); wxBitmap classIcon(classicon, wxBITMAP_TYPE_XPM); classIcon.SetMask(new wxMask(classicon, maskColor)); RegisterImage(AutoCompleteManager::Type_Class, classIcon); }
/*---------------------------------------------------------------------------*/ void wxSQLEditorBase::Init() { m_FontName = _T("Courier New"); m_FontSize = 10; SetWrapMode(wxSTC_WRAP_NONE); // wxSTC_WRAP_WORD wxSTC_WRAP_NONE SetLexer(wxSTC_LEX_SQL); SetTabWidth(2); SetUseTabs(false); SetTabIndents (true); SetBackSpaceUnIndents (true); SetIndent(2); SetViewEOL(false); SetIndentationGuides(true); SetEOLMode(wxSTC_EOL_LF); SetEdgeColumn(200); SetEdgeMode(wxSTC_EDGE_LINE); // wxSTC_EDGE_NONE wxSTC_EDGE_LINE SetViewWhiteSpace(wxSTC_WS_INVISIBLE); // wxSTC_WS_VISIBLEALWAYS SetMarginType(1, wxSTC_MARGIN_SYMBOL); SetMarginWidth(1, 0); SetKeyWords(0, SQLWordlist1); SetKeyWords(1, SQLWordlist2); SetKeyWords(4, SQLWordlist3); SetKeyWords(5, SQLWordlist4); ReInitAllStyle(); }
/* TextEditor::setupFoldMargin * Sets up the code folding margin *******************************************************************/ void TextEditor::setupFoldMargin(TextStyle* margin_style) { if (!txed_fold_enable) { SetMarginWidth(1, 0); return; } wxColour col_fg, col_bg; if (margin_style) { col_fg = WXCOL(margin_style->getForeground()); col_bg = WXCOL(margin_style->getBackground()); } else { col_fg = WXCOL(StyleSet::currentSet()->getStyle("foldmargin")->getForeground()); col_bg = WXCOL(StyleSet::currentSet()->getStyle("foldmargin")->getBackground()); } SetMarginType(1, wxSTC_MARGIN_SYMBOL); SetMarginWidth(1, 16); SetMarginSensitive(1, true); SetMarginMask(1, wxSTC_MASK_FOLDERS); SetFoldMarginColour(true, col_bg); SetFoldMarginHiColour(true, col_bg); MarkerDefine(wxSTC_MARKNUM_FOLDEROPEN, wxSTC_MARK_BOXMINUS, col_bg, col_fg); MarkerDefine(wxSTC_MARKNUM_FOLDER, wxSTC_MARK_BOXPLUS, col_bg, col_fg); MarkerDefine(wxSTC_MARKNUM_FOLDERSUB, wxSTC_MARK_VLINE, col_bg, col_fg); MarkerDefine(wxSTC_MARKNUM_FOLDERTAIL, wxSTC_MARK_LCORNER, col_bg, col_fg); MarkerDefine(wxSTC_MARKNUM_FOLDEREND, wxSTC_MARK_BOXPLUSCONNECTED, col_bg, col_fg); MarkerDefine(wxSTC_MARKNUM_FOLDEROPENMID, wxSTC_MARK_BOXMINUSCONNECTED, col_bg, col_fg); MarkerDefine(wxSTC_MARKNUM_FOLDERMIDTAIL, wxSTC_MARK_TCORNER, col_bg, col_fg); }
/* TextEditor::TextEditor * TextEditor class constructor *******************************************************************/ TextEditor::TextEditor(wxWindow* parent, int id) : wxStyledTextCtrl(parent, id), timer_update(this) { // Init variables language = nullptr; ct_argset = 0; ct_function = nullptr; ct_start = 0; bm_cursor_last_pos = -1; panel_fr = nullptr; call_tip = new SCallTip(this); choice_jump_to = nullptr; jump_to_calculator = nullptr; // Set tab width SetTabWidth(txed_tab_width); // Line numbers by default SetMarginType(0, wxSTC_MARGIN_NUMBER); SetMarginWidth(0, TextWidth(wxSTC_STYLE_LINENUMBER, "9999")); // Folding margin setupFoldMargin(); // Border margin SetMarginWidth(2, 4); // Register icons for autocompletion list RegisterImage(1, Icons::getIcon(Icons::TEXT_EDITOR, "key")); RegisterImage(2, Icons::getIcon(Icons::TEXT_EDITOR, "const")); RegisterImage(3, Icons::getIcon(Icons::TEXT_EDITOR, "func")); // Init w/no language setLanguage(nullptr); // Setup various configurable properties setup(); // Add to text styles editor list StyleSet::addEditor(this); // Bind events Bind(wxEVT_KEY_DOWN, &TextEditor::onKeyDown, this); Bind(wxEVT_KEY_UP, &TextEditor::onKeyUp, this); Bind(wxEVT_STC_CHARADDED, &TextEditor::onCharAdded, this); Bind(wxEVT_STC_UPDATEUI, &TextEditor::onUpdateUI, this); Bind(wxEVT_STC_CALLTIP_CLICK, &TextEditor::onCalltipClicked, this); Bind(wxEVT_STC_DWELLSTART, &TextEditor::onMouseDwellStart, this); Bind(wxEVT_STC_DWELLEND, &TextEditor::onMouseDwellEnd, this); Bind(wxEVT_LEFT_DOWN, &TextEditor::onMouseDown, this); Bind(wxEVT_KILL_FOCUS, &TextEditor::onFocusLoss, this); Bind(wxEVT_ACTIVATE, &TextEditor::onActivate, this); Bind(wxEVT_STC_MARGINCLICK, &TextEditor::onMarginClick, this); Bind(wxEVT_COMMAND_JTCALCULATOR_COMPLETED, &TextEditor::onJumpToCalculateComplete, this); Bind(wxEVT_STC_MODIFIED, &TextEditor::onModified, this); Bind(wxEVT_TIMER, &TextEditor::onUpdateTimer, this); Bind(wxEVT_STC_STYLENEEDED, &TextEditor::onStyleNeeded, this); }
/*---------------------------------------------------------------------------*/ void wxSQLEditorBase::SetLineNumberMarginStyle(bool show, wxColour fore, wxColour back) { SetMarginType(0, wxSTC_MARGIN_NUMBER); if (fore != wxNullColour) StyleSetForeground(wxSTC_STYLE_LINENUMBER, fore); if (back != wxNullColour) StyleSetBackground(wxSTC_STYLE_LINENUMBER, back); SetMarginWidth(0, show ? 25 : 0); }
void SourceView::setCppMode() { SetLexer (wxSTC_LEX_CPP); SetKeyWords (0, keywords.Get()); StyleClearAll (); SetMarginType (0, wxSTC_MARGIN_NUMBER); SetMarginWidth (0, 40); StyleSetForeground (wxSTC_STYLE_LINENUMBER, wxColour( 32, 32, 32)); StyleSetBackground (wxSTC_STYLE_LINENUMBER, wxColour(192,192,192)); SetMarginType (1, wxSTC_MARGIN_RTEXT); SetMarginWidth (1, 50); StyleSetForeground (MARGIN_TEXT_STYLE, wxColour(255, 0, 0)); StyleSetBackground (MARGIN_TEXT_STYLE, wxColour(192,192,192)); StyleSetForeground (wxSTC_C_DEFAULT, wxColour(0,0,0) ); StyleSetForeground (wxSTC_C_STRING, wxColour(163,21,21)); StyleSetForeground (wxSTC_C_PREPROCESSOR, wxColour(0,0,255)); StyleSetForeground (wxSTC_C_IDENTIFIER, wxColour(0,0,0)); StyleSetForeground (wxSTC_C_WORD, wxColour(0,0,255)); StyleSetForeground (wxSTC_C_WORD2, wxColour(0,0,255)); StyleSetForeground (wxSTC_C_NUMBER, wxColour(0,0,0)); StyleSetForeground (wxSTC_C_CHARACTER, wxColour(0,0,0)); StyleSetForeground (wxSTC_C_COMMENT, wxColour(0,128,0)); StyleSetForeground (wxSTC_C_COMMENTLINE, wxColour(0,128,0)); StyleSetForeground (wxSTC_C_COMMENTDOC, wxColour(0,128,0)); StyleSetForeground (wxSTC_C_COMMENTDOCKEYWORD, wxColour(0,128,0)); StyleSetForeground (wxSTC_C_COMMENTDOCKEYWORDERROR, wxColour(0,128,0)); StyleSetBold(wxSTC_C_WORD, true); StyleSetBold(wxSTC_C_WORD2, true); StyleSetBold(wxSTC_C_COMMENTDOCKEYWORD, true); for (int i = wxSTC_C_DEFAULT; i<=wxSTC_C_PREPROCESSORCOMMENT; ++i) StyleSetFont(i, wxFont( wxFontInfo(10).FaceName("Consolas") ) ); }
fbtTextFile::fbtTextFile(fbtMainFrame* parent, fbtText* fp, int id) : wxStyledTextCtrl(parent, FBT_WINDOW_TXT), m_file(fp), m_parent(parent) { SetViewEOL(false); SetIndentationGuides(false); SetEdgeMode(wxSTC_EDGE_NONE); SetViewWhiteSpace(wxSTC_WS_INVISIBLE); SetReadOnly(false); SetTabWidth(4); SetWrapMode(wxSTC_WRAP_NONE); wxFont font (10, wxMODERN, wxNORMAL, wxNORMAL); StyleSetFont(wxSTC_STYLE_DEFAULT, font); StyleSetForeground(wxSTC_STYLE_DEFAULT, *wxBLACK); StyleSetBackground(wxSTC_STYLE_DEFAULT, *wxWHITE); StyleSetForeground(wxSTC_STYLE_LINENUMBER, wxColour (wxT("DARK GREY"))); StyleSetBackground(wxSTC_STYLE_LINENUMBER, *wxWHITE); StyleSetForeground(wxSTC_STYLE_INDENTGUIDE, wxColour (wxT("DARK GREY"))); SetMarginType(0, wxSTC_MARGIN_NUMBER); SetMarginWidth(0, TextWidth (wxSTC_STYLE_LINENUMBER, wxT("_99999"))); SetVisiblePolicy(wxSTC_VISIBLE_STRICT | wxSTC_VISIBLE_SLOP, 1); SetXCaretPolicy(wxSTC_CARET_EVEN | wxSTC_VISIBLE_STRICT | wxSTC_CARET_SLOP, 1); SetYCaretPolicy(wxSTC_CARET_EVEN | wxSTC_VISIBLE_STRICT | wxSTC_CARET_SLOP, 1); SetLexer(wxSTC_LEX_CPP); StyleSetForeground(wxSTC_C_COMMENT, COMMENT_COLOR); StyleSetForeground(wxSTC_C_COMMENTLINEDOC, COMMENT_COLOR); StyleSetForeground(wxSTC_C_COMMENTLINE, COMMENT_COLOR); StyleSetForeground(wxSTC_C_COMMENTDOC, COMMENT_COLOR); StyleSetForeground(wxSTC_C_NUMBER, NUMBER_COLOR); StyleSetForeground(wxSTC_C_OPERATOR, OPERATOR_COLOR); StyleSetForeground(wxSTC_C_WORD, WORD_COLOR); StyleSetForeground(wxSTC_C_PREPROCESSOR, WORD_COLOR); SetKeyWords(0, WORDS); SetSelBackground(true, wxColor(51, 94, 168)); SetSelForeground(true, wxColor(255, 255, 255)); m_file->m_textFile = this; m_file->m_flag |= fbtText::FILE_IS_OPEN; }
/*---------------------------------------------------------------------------*/ void wxSQLEditorBase::ReInitAllStyle() { SetMarginType(0, wxSTC_MARGIN_NUMBER); StyleSetForeground(wxSTC_STYLE_LINENUMBER, wxColour(_T("BLACK"))); StyleSetBackground(wxSTC_STYLE_LINENUMBER, wxColour(_T("GREY"))); SetMarginWidth(0, 25); // default fonts for all styles! for (int i = wxSTC_SQL_DEFAULT; i <= wxSTC_SQL_QUOTEDIDENTIFIER; i++) { SetTypeStyle(i, false, false, false, wxSTC_CASE_MIXED, wxColour(_T("BLACK")), wxColour(_T("WHITE"))); } }
/* TextEditor::TextEditor * TextEditor class constructor *******************************************************************/ TextEditor::TextEditor(wxWindow* parent, int id) : wxStyledTextCtrl(parent, id) { // Init variables language = NULL; ct_argset = 0; ct_function = NULL; ct_start = 0; // Set tab width SetTabWidth(txed_tab_width); // Line numbers by default SetMarginType(0, wxSTC_MARGIN_NUMBER); SetMarginWidth(0, TextWidth(wxSTC_STYLE_LINENUMBER, "9999")); SetMarginWidth(1, 4); // Register icons for autocompletion list RegisterImage(1, getIcon("ac_key")); RegisterImage(2, getIcon("ac_const")); RegisterImage(3, getIcon("ac_func")); // Init w/no language setLanguage(NULL); // Find+Replace dialog dlg_fr = new FindReplaceDialog(this); // Setup various configurable properties setup(); // Bind events Bind(wxEVT_KEY_DOWN, &TextEditor::onKeyDown, this); Bind(wxEVT_KEY_UP, &TextEditor::onKeyUp, this); Bind(wxEVT_STC_CHARADDED, &TextEditor::onCharAdded, this); Bind(wxEVT_STC_UPDATEUI, &TextEditor::onUpdateUI, this); Bind(wxEVT_STC_CALLTIP_CLICK, &TextEditor::onCalltipClicked, this); Bind(wxEVT_STC_DWELLSTART, &TextEditor::onMouseDwellStart, this); Bind(wxEVT_STC_DWELLEND, &TextEditor::onMouseDwellEnd, this); Bind(wxEVT_LEFT_DOWN, &TextEditor::onMouseDown, this); Bind(wxEVT_KILL_FOCUS, &TextEditor::onFocusLoss, this); Bind(wxEVT_ACTIVATE, &TextEditor::onActivate, this); dlg_fr->getBtnFindNext()->Bind(wxEVT_BUTTON, &TextEditor::onFRDBtnFindNext, this); dlg_fr->getBtnReplace()->Bind(wxEVT_BUTTON, &TextEditor::onFRDBtnReplace, this); dlg_fr->getBtnReplaceAll()->Bind(wxEVT_BUTTON, &TextEditor::onFRDBtnReplaceAll, this); //dlg_fr->getTextFind()->Bind(wxEVT_BUTTON, &TextEditor::onFRDBtnFindNext, this); //dlg_fr->getTextReplace()->Bind(wxEVT_BUTTON, &TextEditor::onFRDBtnReplace, this); dlg_fr->Bind(wxEVT_CHAR_HOOK, &TextEditor::onFRDKeyDown, this); }
bool wxSTEditorShell::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name) { if (!wxSTEditor::Create(parent, id, pos, size, style, name)) return false; // set this up in case they don't want to bother with the preferences SetMarginWidth(STE_MARGIN_NUMBER,0); SetMarginWidth(STE_MARGIN_FOLD,0); SetMarginWidth(marginPrompt, 16); SetMarginType(marginPrompt, wxSTC_MARGIN_SYMBOL); SetMarginMask(marginPrompt, 1<<markerPrompt); // after creation you can change this to whatever prompt you prefer MarkerDefine(markerPrompt, wxSTC_MARK_ARROWS, *wxBLACK, wxColour(255,255,0)); return true; }
void AsmEditor::InitializePrefs() { SetMarginWidth (MARGIN_LINE_NUMBERS, 40); StyleSetForeground (wxSTC_STYLE_LINENUMBER, wxColour (75, 75, 75) ); StyleSetBackground (wxSTC_STYLE_LINENUMBER, wxColour (220, 220, 220)); SetMarginType (MARGIN_LINE_NUMBERS, wxSTC_MARGIN_NUMBER); SetWrapMode (wxSTC_WRAP_NONE); //wxSTC_WRAP_WORD); // other choice is wxSCI_WRAP_NONE StyleClearAll(); SetLexer(wxSTC_LEX_CPP); // we want to use CPP format -- not ASM wxFont f(10, wxFONTFAMILY_DEFAULT, wxNORMAL, wxFONTWEIGHT_NORMAL, false, wxT("Consolas")); for( int i=0; i < wxSTC_STYLE_LASTPREDEFINED; ++i ) StyleSetFont( i, f ); StyleSetForeground( mySTC_C_DEFAULT, wxColour(0,0,0) ); StyleSetForeground( mySTC_C_COMMENT, wxColour(0,0,0) ); // /* */ comment StyleSetForeground( mySTC_C_COMMENTLINE, wxColour(0,128,0) ); // // comment StyleSetForeground( mySTC_C_COMMENTDOC, wxColour(0,0,0) ); // /** */ comment StyleSetForeground( mySTC_C_NUMBER, wxColour(90,90,90) ); StyleSetForeground( mySTC_C_WORD, wxColour(40,86,165) ); // custom 0 StyleSetForeground( mySTC_C_STRING, wxColour(163,21,21) ); StyleSetForeground( mySTC_C_CHARACTER, wxColour(163,21,21) ); StyleSetForeground( mySTC_C_UUID, wxColour(0,0,0) ); // needs color StyleSetForeground( mySTC_C_PREPROCESSOR, wxColour(0,0,0) ); // needs color StyleSetForeground( mySTC_C_OPERATOR, wxColour(150,0,0) ); StyleSetForeground( mySTC_C_IDENTIFIER, wxColour(0,0,0) ); StyleSetForeground( mySTC_C_STRINGEOL, wxColour(0,0,0) ); // needs color StyleSetForeground( mySTC_C_VERBATIM, wxColour(0,0,0) ); // needs color StyleSetForeground( mySTC_C_REGEX, wxColour(0,0,0) ); // needs color StyleSetForeground( mySTC_C_COMMENTLINEDOC, wxColour(0,128,0) ); StyleSetForeground( mySTC_C_WORD2, wxColour(150,0,150) ); // custom 1 StyleSetForeground( mySTC_C_COMMENTDOCKEYWORD, wxColour(0,0,0) ); // needs color StyleSetForeground( mySTC_C_COMMENTDOCKEYWORDERROR, wxColour(0,0,0) ); StyleSetForeground( mySTC_C_GLOBALCLASS, wxColour(0,0,0) ); // custom 3 StyleSetBold( mySTC_C_NUMBER, true ); StyleSetBold( mySTC_C_WORD2, true ); StyleSetBold( mySTC_C_WORD, true ); StyleSetFont( mySTC_C_COMMENT, f ); StyleSetFont( mySTC_C_COMMENTDOC, f ); }
void CodeEdit::SetEditorSettings(const EditorSettings& settings) { m_indentationSize = settings.GetIndentSize(); SetIndent(m_indentationSize); SetTabWidth(m_indentationSize); bool useTabs = settings.GetUseTabs(); bool showWhiteSpace = settings.GetShowWhiteSpace(); SetUseTabs(useTabs); SetTabIndents(useTabs); SetBackSpaceUnIndents(useTabs); SetViewWhiteSpace(showWhiteSpace); SetMultipleSelection(true); SetAdditionalSelectionTyping(true); SetMultiPaste(1); SetVirtualSpaceOptions(1); if (settings.GetShowLineNumbers()) { // Figure out how wide the margin needs to be do display // the most number of linqes we'd reasonbly have. int marginSize = TextWidth(wxSTC_STYLE_LINENUMBER, "_99999"); SetMarginWidth(0, marginSize); SetMarginType(0,wxSTC_MARGIN_NUMBER); } else { SetMarginWidth(0, 0); } m_enableAutoComplete = settings.GetEnableAutoComplete(); }
bool Edit::InitializePrefs (const wxString &name) { // initialize styles StyleClearAll(); LanguageInfo const* curInfo = NULL; // determine language bool found = false; int languageNr; for (languageNr = 0; languageNr < g_LanguagePrefsSize; languageNr++) { curInfo = &g_LanguagePrefs [languageNr]; if (curInfo->name == name) { found = true; break; } } if (!found) return false; // set lexer and language SetLexer (curInfo->lexer); m_language = curInfo; // set margin for line numbers SetMarginType (m_LineNrID, wxSTC_MARGIN_NUMBER); StyleSetForeground (wxSTC_STYLE_LINENUMBER, wxColour (wxT("DARK GREY"))); StyleSetBackground (wxSTC_STYLE_LINENUMBER, *wxWHITE); SetMarginWidth (m_LineNrID, 0); // start out not visible // annotations style StyleSetBackground(ANNOTATION_STYLE, wxColour(244, 220, 220)); StyleSetForeground(ANNOTATION_STYLE, *wxBLACK); StyleSetSizeFractional(ANNOTATION_STYLE, (StyleGetSizeFractional(wxSTC_STYLE_DEFAULT)*4)/5); // default fonts for all styles! int Nr; for (Nr = 0; Nr < wxSTC_STYLE_LASTPREDEFINED; Nr++) { wxFont font(wxFontInfo(10).Family(wxFONTFAMILY_MODERN)); StyleSetFont (Nr, font); } // set common styles StyleSetForeground (wxSTC_STYLE_DEFAULT, wxColour (wxT("DARK GREY"))); StyleSetForeground (wxSTC_STYLE_INDENTGUIDE, wxColour (wxT("DARK GREY"))); // initialize settings if (g_CommonPrefs.syntaxEnable) { int keywordnr = 0; for (Nr = 0; Nr < STYLE_TYPES_COUNT; Nr++) { if (curInfo->styles[Nr].type == -1) continue; const StyleInfo &curType = g_StylePrefs [curInfo->styles[Nr].type]; wxFont font(wxFontInfo(curType.fontsize) .Family(wxFONTFAMILY_MODERN) .FaceName(curType.fontname)); StyleSetFont (Nr, font); if (curType.foreground) { StyleSetForeground (Nr, wxColour (curType.foreground)); } if (curType.background) { StyleSetBackground (Nr, wxColour (curType.background)); } StyleSetBold (Nr, (curType.fontstyle & mySTC_STYLE_BOLD) > 0); StyleSetItalic (Nr, (curType.fontstyle & mySTC_STYLE_ITALIC) > 0); StyleSetUnderline (Nr, (curType.fontstyle & mySTC_STYLE_UNDERL) > 0); StyleSetVisible (Nr, (curType.fontstyle & mySTC_STYLE_HIDDEN) == 0); StyleSetCase (Nr, curType.lettercase); const char *pwords = curInfo->styles[Nr].words; if (pwords) { SetKeyWords (keywordnr, pwords); keywordnr += 1; } } } // set margin as unused SetMarginType (m_DividerID, wxSTC_MARGIN_SYMBOL); SetMarginWidth (m_DividerID, 0); SetMarginSensitive (m_DividerID, false); // folding SetMarginType (m_FoldingID, wxSTC_MARGIN_SYMBOL); SetMarginMask (m_FoldingID, wxSTC_MASK_FOLDERS); StyleSetBackground (m_FoldingID, *wxWHITE); SetMarginWidth (m_FoldingID, 0); SetMarginSensitive (m_FoldingID, false); if (g_CommonPrefs.foldEnable) { SetMarginWidth (m_FoldingID, curInfo->folds != 0? m_FoldingMargin: 0); SetMarginSensitive (m_FoldingID, curInfo->folds != 0); SetProperty (wxT("fold"), curInfo->folds != 0? wxT("1"): wxT("0")); SetProperty (wxT("fold.comment"), (curInfo->folds & mySTC_FOLD_COMMENT) > 0? wxT("1"): wxT("0")); SetProperty (wxT("fold.compact"), (curInfo->folds & mySTC_FOLD_COMPACT) > 0? wxT("1"): wxT("0")); SetProperty (wxT("fold.preprocessor"), (curInfo->folds & mySTC_FOLD_PREPROC) > 0? wxT("1"): wxT("0")); SetProperty (wxT("fold.html"), (curInfo->folds & mySTC_FOLD_HTML) > 0? wxT("1"): wxT("0")); SetProperty (wxT("fold.html.preprocessor"), (curInfo->folds & mySTC_FOLD_HTMLPREP) > 0? wxT("1"): wxT("0")); SetProperty (wxT("fold.comment.python"), (curInfo->folds & mySTC_FOLD_COMMENTPY) > 0? wxT("1"): wxT("0")); SetProperty (wxT("fold.quotes.python"), (curInfo->folds & mySTC_FOLD_QUOTESPY) > 0? wxT("1"): wxT("0")); } SetFoldFlags (wxSTC_FOLDFLAG_LINEBEFORE_CONTRACTED | wxSTC_FOLDFLAG_LINEAFTER_CONTRACTED); // set spaces and indentation SetTabWidth (4); SetUseTabs (false); SetTabIndents (true); SetBackSpaceUnIndents (true); SetIndent (g_CommonPrefs.indentEnable? 4: 0); // others SetViewEOL (g_CommonPrefs.displayEOLEnable); SetIndentationGuides (g_CommonPrefs.indentGuideEnable); SetEdgeColumn (80); SetEdgeMode (g_CommonPrefs.longLineOnEnable? wxSTC_EDGE_LINE: wxSTC_EDGE_NONE); SetViewWhiteSpace (g_CommonPrefs.whiteSpaceEnable? wxSTC_WS_VISIBLEALWAYS: wxSTC_WS_INVISIBLE); SetOvertype (g_CommonPrefs.overTypeInitial); SetReadOnly (g_CommonPrefs.readOnlyInitial); SetWrapMode (g_CommonPrefs.wrapModeInitial? wxSTC_WRAP_WORD: wxSTC_WRAP_NONE); return true; }
void IWnd_stc::UpdateStyle() { bool flag=param.nlang==tempp.nlang && (param.flags.get(FLAG_FOLD)==tempp.flags.get(FLAG_FOLD)) && (param.flags.get(FLAG_SYNTAX)==tempp.flags.get(FLAG_SYNTAX)) && param.nsize==tempp.nsize; param=tempp; if(flag) { _DoUpdateStyle(); return; } BitFlags& flags(param.flags); StcLangInfo& lf(StcManager::current().langs[param.nlang]); wxFont fontNr (param.nsize, wxMODERN, wxNORMAL, wxNORMAL,false,str2wx(param.sface)); for (int Nr = 0; Nr < wxSTC_STYLE_LASTPREDEFINED; Nr++) { StyleSetFont (Nr, fontNr); } if(!flags.get(FLAG_FOLD)) { ClearDocumentStyle(); } StyleClearAll(); SetLexer (lf.lexer); SetMarginType (StcManager::LINE_NR_ID, wxSTC_MARGIN_NUMBER); StyleSetForeground (wxSTC_STYLE_LINENUMBER, wxColour (wxT("DARK GREY"))); StyleSetBackground (wxSTC_STYLE_LINENUMBER, *wxWHITE); SetMarginWidth (StcManager::LINE_NR_ID, 0); // set common styles StyleSetForeground (wxSTC_STYLE_DEFAULT, wxColour (wxT("DARK GREY"))); StyleSetForeground (wxSTC_STYLE_INDENTGUIDE, wxColour (wxT("DARK GREY"))); SetMarginType(StcManager::DIVIDER_ID, wxSTC_MARGIN_SYMBOL); SetMarginMask(StcManager::DIVIDER_ID, wxSTC_MASK_FOLDERS); SetMarginWidth (StcManager::DIVIDER_ID, 0); SetMarginSensitive (StcManager::DIVIDER_ID, false); // folding SetMarginType (StcManager::FOLDING_ID, wxSTC_MARGIN_SYMBOL); SetMarginMask (StcManager::FOLDING_ID, wxSTC_MASK_FOLDERS); StyleSetBackground (StcManager::FOLDING_ID, *wxWHITE); SetMarginWidth (StcManager::FOLDING_ID, 0); SetMarginSensitive (StcManager::FOLDING_ID, false); if (flags.get(FLAG_FOLD)) { SetMarginWidth (StcManager::FOLDING_ID,StcManager::FOLDING_MARGIN); SetMarginSensitive (StcManager::FOLDING_ID, true); SetPropertyEx ("fold", true); SetPropertyEx ("fold.comment",true); SetPropertyEx ("fold.compact",true); SetPropertyEx ("fold.preprocessor",true); SetPropertyEx ("fold.html", true); SetPropertyEx ("fold.html.preprocessor",true); SetPropertyEx ("fold.comment.python", true); SetPropertyEx ("fold.quotes.python", true); } else { SetMarginWidth (StcManager::DIVIDER_ID, StcManager::FOLDING_MARGIN); } SetFoldFlags (wxSTC_FOLDFLAG_LINEBEFORE_CONTRACTED| wxSTC_FOLDFLAG_LINEAFTER_CONTRACTED); if (flags.get(FLAG_SYNTAX)) { int keywordnr = 0; for(StcLangInfo::map_type::iterator it=lf.mapStyles.begin();it!=lf.mapStyles.end();++it) { int Nr=(*it).first; StcLangInfo::StyleWords& s((*it).second); StcStyleInfo& curType(StcManager::current().style[s.id]); wxFont font (param.nsize, wxMODERN, wxNORMAL, wxNORMAL, false,str2wx(curType.fontname)); StyleSetFont (Nr, font); if (curType.foreground!=wxEmptyString) { StyleSetForeground (Nr, wxColour (curType.foreground.c_str())); } if (curType.background!=wxEmptyString) { StyleSetBackground (Nr, wxColour (curType.background.c_str())); } StyleSetBold (Nr, curType.fontstyle.get(StcManager::STYLE_BOLD)); StyleSetItalic (Nr, curType.fontstyle.get(StcManager::STYLE_ITALIC)); StyleSetUnderline (Nr, curType.fontstyle.get(StcManager::STYLE_UNDERL)); StyleSetVisible (Nr, !curType.fontstyle.get(StcManager::STYLE_HIDDEN)); //StyleSetCase (Nr, curType.lettercase); if (s.words!="") { SetKeyWords (keywordnr, str2wx(s.words)); keywordnr += 1; } } } _DoUpdateStyle(); Colourise(0,this->GetLastPosition()); }
void ctlSQLBox::Create(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, long style) { wxStyledTextCtrl::Create(parent, id , pos, size, style); // Clear all styles StyleClearAll(); // Font extern sysSettings *settings; wxFont fntSQLBox = settings->GetSQLFont(); wxColour bgColor = settings->GetSQLBoxColourBackground(); if (settings->GetSQLBoxUseSystemBackground()) { bgColor = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW); } wxColour frColor = settings->GetSQLBoxColourForeground(); if (settings->GetSQLBoxUseSystemForeground()) { frColor = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT); } StyleSetBackground(wxSTC_STYLE_DEFAULT, bgColor); StyleSetForeground(wxSTC_STYLE_DEFAULT, frColor); StyleSetFont(wxSTC_STYLE_DEFAULT, fntSQLBox); SetSelBackground(true, wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT)); SetSelForeground(true, wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT)); SetCaretForeground(settings->GetSQLColourCaret()); SetMarginWidth(1, 0); SetTabWidth(settings->GetIndentSpaces()); SetUseTabs(!settings->GetSpacesForTabs()); // Setup the different highlight colurs for (int i = 0; i < 34; ++ i ) { if (i > 0 && i < 12) StyleSetForeground(i, settings->GetSQLBoxColour(i)); else StyleSetForeground(i, frColor); StyleSetBackground(i, bgColor); StyleSetFont(i, fntSQLBox); } // Keywords in uppercase? if (settings->GetSQLKeywordsInUppercase()) StyleSetCase(5, wxSTC_CASE_UPPER); // Margin style StyleSetBackground(wxSTC_STYLE_LINENUMBER, settings->GetSQLMarginBackgroundColour()); // Brace maching styles StyleSetBackground(34, wxColour(0x99, 0xF9, 0xFF)); StyleSetBackground(35, wxColour(0xFF, 0xCF, 0x27)); StyleSetFont(34, fntSQLBox); StyleSetFont(35, fntSQLBox); // SQL Lexer and keywords. if (sqlKeywords.IsEmpty()) FillKeywords(sqlKeywords); SetLexer(wxSTC_LEX_SQL); SetKeyWords(0, sqlKeywords + plpgsqlKeywords + ftsKeywords + pgscriptKeywords); // Enable folding SetMarginSensitive(2, true); SetMarginType(2, wxSTC_MARGIN_SYMBOL); // margin 2 for symbols SetMarginMask(2, wxSTC_MASK_FOLDERS); // set up mask for folding symbols SetMarginSensitive(2, true); // this one needs to be mouse-aware SetMarginWidth(2, 16); // set margin 2 16 px wide MarkerDefine(wxSTC_MARKNUM_FOLDEREND, wxSTC_MARK_BOXPLUSCONNECTED, *wxWHITE, *wxBLACK); MarkerDefine(wxSTC_MARKNUM_FOLDEROPENMID, wxSTC_MARK_BOXMINUSCONNECTED, *wxWHITE, *wxBLACK); MarkerDefine(wxSTC_MARKNUM_FOLDERMIDTAIL, wxSTC_MARK_TCORNER, *wxWHITE, *wxBLACK); MarkerDefine(wxSTC_MARKNUM_FOLDERTAIL, wxSTC_MARK_LCORNER, *wxWHITE, *wxBLACK); MarkerDefine(wxSTC_MARKNUM_FOLDERSUB, wxSTC_MARK_VLINE, *wxWHITE, *wxBLACK); MarkerDefine(wxSTC_MARKNUM_FOLDER, wxSTC_MARK_BOXPLUS, *wxWHITE, *wxBLACK); MarkerDefine(wxSTC_MARKNUM_FOLDEROPEN, wxSTC_MARK_BOXMINUS, *wxWHITE, *wxBLACK); SetProperty(wxT("fold"), wxT("1")); SetFoldFlags(16); // Setup accelerators wxAcceleratorEntry entries[2]; entries[0].Set(wxACCEL_CTRL, (int)'F', MNU_FIND); entries[1].Set(wxACCEL_CTRL, (int)' ', MNU_AUTOCOMPLETE); wxAcceleratorTable accel(2, entries); SetAcceleratorTable(accel); // Autocompletion configuration AutoCompSetSeparator('\t'); AutoCompSetChooseSingle(true); AutoCompSetIgnoreCase(true); AutoCompSetFillUps(wxT(" \t")); AutoCompSetDropRestOfWord(true); SetEOLMode(settings->GetLineEndingType()); }
CodeEditor::CodeEditor(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, long style) : wxScintilla (parent, id, pos, size, style) { mFileName = _T(""); //m_language = NULL; mLineNumID = 0; mLineNumMargin = TextWidth(wxSCI_STYLE_LINENUMBER, _T("99999")); mFoldingID = 1; mFoldingMargin = 16; mDividerID = 1; SetProperty(wxT("fold"), wxT("1")); SetFoldFlags(16); SetMarginType(mFoldingID, wxSCI_MARGIN_SYMBOL); SetMarginMask(mFoldingID, wxSCI_MASK_FOLDERS); SetMarginSensitive(mFoldingID, true); SetMarginWidth(mFoldingID, mFoldingMargin); MarkerDefine(wxSCI_MARKNUM_FOLDEROPEN, wxSCI_MARK_BOXMINUS); MarkerSetForeground(wxSCI_MARKNUM_FOLDEROPEN, wxColour(0xff, 0xff, 0xff)); MarkerSetBackground(wxSCI_MARKNUM_FOLDEROPEN, wxColour(0x80, 0x80, 0x80)); MarkerDefine(wxSCI_MARKNUM_FOLDER, wxSCI_MARK_BOXPLUS); MarkerSetForeground(wxSCI_MARKNUM_FOLDER, wxColour(0xff, 0xff, 0xff)); MarkerSetBackground(wxSCI_MARKNUM_FOLDER, wxColour(0x80, 0x80, 0x80)); MarkerDefine(wxSCI_MARKNUM_FOLDERSUB, wxSCI_MARK_VLINE); MarkerSetForeground(wxSCI_MARKNUM_FOLDERSUB, wxColour(0xff, 0xff, 0xff)); MarkerSetBackground(wxSCI_MARKNUM_FOLDERSUB, wxColour(0x80, 0x80, 0x80)); MarkerDefine(wxSCI_MARKNUM_FOLDERTAIL, wxSCI_MARK_LCORNER); MarkerSetForeground(wxSCI_MARKNUM_FOLDERTAIL, wxColour(0xff, 0xff, 0xff)); MarkerSetBackground(wxSCI_MARKNUM_FOLDERTAIL, wxColour(0x80, 0x80, 0x80)); MarkerDefine(wxSCI_MARKNUM_FOLDEREND, wxSCI_MARK_BOXPLUSCONNECTED); MarkerSetForeground(wxSCI_MARKNUM_FOLDEREND, wxColour(0xff, 0xff, 0xff)); MarkerSetBackground(wxSCI_MARKNUM_FOLDEREND, wxColour(0x80, 0x80, 0x80)); MarkerDefine(wxSCI_MARKNUM_FOLDEROPENMID, wxSCI_MARK_BOXMINUSCONNECTED); MarkerSetForeground(wxSCI_MARKNUM_FOLDEROPENMID, wxColour(0xff, 0xff, 0xff)); MarkerSetBackground(wxSCI_MARKNUM_FOLDEROPENMID, wxColour(0x80, 0x80, 0x80)); MarkerDefine(wxSCI_MARKNUM_FOLDERMIDTAIL, wxSCI_MARK_TCORNER); MarkerSetForeground(wxSCI_MARKNUM_FOLDERMIDTAIL, wxColour(0xff, 0xff, 0xff)); MarkerSetBackground(wxSCI_MARKNUM_FOLDERMIDTAIL, wxColour(0x80, 0x80, 0x80)); // Set defaults, these should eventually be set via user prefs SetViewEOL(false); SetIndentationGuides(false); SetMarginWidth(mLineNumID, mLineNumMargin); //SetMarginWidth(mFoldingID, mFoldingMargin); //SetMarginSensitive(mFoldingID, true); SetEdgeMode(wxSCI_EDGE_LINE); //SetViewWhiteSpace(wxSCI_WS_VISIBLEALWAYS); SetOvertype(false); SetReadOnly(false); SetWrapMode(wxSCI_WRAP_NONE); wxFont font(10, wxTELETYPE, wxNORMAL, wxNORMAL); StyleSetFont(wxSCI_STYLE_DEFAULT, font); StyleSetForeground(wxSCI_STYLE_DEFAULT, wxColour(wxT("BLACK"))); StyleSetBackground(wxSCI_STYLE_DEFAULT, wxColour(wxT("WHITE"))); StyleSetForeground(wxSCI_STYLE_LINENUMBER, wxColour(wxT("DARK BLUE"))); StyleSetBackground(wxSCI_STYLE_LINENUMBER, wxColour(wxT("WHITE"))); StyleSetForeground(wxSCI_STYLE_INDENTGUIDE, wxColour(wxT("DARK GREY"))); StyleSetBold(wxSCI_STYLE_BRACELIGHT, true); //InitializePrefs(DEFAULT_LANGUAGE); SetTabWidth(4); SetUseTabs(false); SetTabIndents(true); SetBackSpaceUnIndents(true); SetIndent(4); // Set visibility SetVisiblePolicy(wxSCI_VISIBLE_STRICT | wxSCI_VISIBLE_SLOP, 1); SetXCaretPolicy(wxSCI_CARET_EVEN | wxSCI_VISIBLE_STRICT | wxSCI_CARET_SLOP, 1); SetYCaretPolicy(wxSCI_CARET_EVEN | wxSCI_VISIBLE_STRICT | wxSCI_CARET_SLOP, 1); SetCaretLineVisible(true); SetCaretLineBackground(wxColour(225, 235, 224)); // Markers //MarkerDefine(wxSCI_MARKNUM_FOLDER, wxSCI_MARK_BOXPLUS); //MarkerSetBackground(wxSCI_MARKNUM_FOLDER, wxColour(_T("BLACK"))); //MarkerSetForeground(wxSCI_MARKNUM_FOLDER, wxColour(_T("WHITE"))); //MarkerDefine(wxSCI_MARKNUM_FOLDEROPEN, wxSCI_MARK_BOXMINUS); //MarkerSetBackground(wxSCI_MARKNUM_FOLDEROPEN, wxColour(_T("BLACK"))); //MarkerSetForeground(wxSCI_MARKNUM_FOLDEROPEN, wxColour(_T("WHITE"))); //MarkerDefine(wxSCI_MARKNUM_FOLDERSUB, wxSCI_MARK_EMPTY); //MarkerDefine(wxSCI_MARKNUM_FOLDEREND, wxSCI_MARK_SHORTARROW); //MarkerDefine(wxSCI_MARKNUM_FOLDEROPENMID, wxSCI_MARK_ARROWDOWN); //MarkerDefine(wxSCI_MARKNUM_FOLDERMIDTAIL, wxSCI_MARK_EMPTY); //MarkerDefine(wxSCI_MARKNUM_FOLDERTAIL, wxSCI_MARK_EMPTY); // Clear wrong default keys #if !defined(__WXGTK__) //CmdKeyClear(wxSCI_KEY_TAB, 0); CmdKeyClear(wxSCI_KEY_TAB, wxSCI_SCMOD_SHIFT); #endif CmdKeyClear('A', wxSCI_SCMOD_CTRL); #if !defined(__WXGTK__) CmdKeyClear('C', wxSCI_SCMOD_CTRL); #endif CmdKeyClear('D', wxSCI_SCMOD_CTRL); CmdKeyClear('D', wxSCI_SCMOD_SHIFT | wxSCI_SCMOD_CTRL); CmdKeyClear('F', wxSCI_SCMOD_ALT | wxSCI_SCMOD_CTRL); CmdKeyClear('L', wxSCI_SCMOD_CTRL); CmdKeyClear('L', wxSCI_SCMOD_SHIFT | wxSCI_SCMOD_CTRL); CmdKeyClear('T', wxSCI_SCMOD_CTRL); CmdKeyClear('T', wxSCI_SCMOD_SHIFT | wxSCI_SCMOD_CTRL); CmdKeyClear('U', wxSCI_SCMOD_CTRL); CmdKeyClear('U', wxSCI_SCMOD_SHIFT | wxSCI_SCMOD_CTRL); #if !defined(__WXGTK__) CmdKeyClear('V', wxSCI_SCMOD_CTRL); CmdKeyClear('X', wxSCI_SCMOD_CTRL); #endif CmdKeyClear('Y', wxSCI_SCMOD_CTRL); #if !defined(__WXGTK__) CmdKeyClear('Z', wxSCI_SCMOD_CTRL); #endif UsePopUp(0); SetLayoutCache(wxSCI_CACHE_PAGE); SetBufferedDraw(1); }
OutputCtrl::OutputCtrl( wxWindow* parent, wxWindowID id, const wxString& name, const wxPoint& pos, const wxSize& size, long style ) : wxStyledTextCtrl(), m_Selected( -1 ) { wxStyledTextCtrl::Create( parent, id, wxDefaultPosition, wxDefaultSize, wxVSCROLL | wxSTATIC_BORDER ); UsePopUp(false); // initialize styles StyleClearAll(); // Set the lexer language SetLexer( wxSTC_LEX_TEX ); // Clear the zoom keys and mouse mapping. CmdKeyClear( wxSTC_KEY_ADD, wxSTC_SCMOD_CTRL ); CmdKeyClear( wxSTC_KEY_SUBTRACT, wxSTC_SCMOD_CTRL ); CmdKeyClear( wxSTC_KEY_DIVIDE, wxSTC_SCMOD_CTRL ); StyleClearAll(); // TODO: Make the font style a configuration option or use some OS default! wxFont* font = wxTheFontList->FindOrCreateFont( 8, wxDEFAULT, wxNORMAL, wxNORMAL, false, "Courier New" ); for ( int i = 0; i < wxSTC_STYLE_LASTPREDEFINED; i++ ) StyleSetFont( i, *font ); StyleSetBackground( 1, wxColour( 255, 0, 0 ) ); StyleSetForeground( 1, wxColour( 255, 255, 255 ) ); StyleSetBackground( 2, wxColour( 255, 255, 255 ) ); StyleSetForeground( 2, wxColour( 255, 0, 0 ) ); /* StyleSetBackground( wxSTC_STYLE_DEFAULT, tsGetPrefs().GetBgColor() ); SetCaretForeground( tsGetPrefs().GetDefaultColor() ); StyleSetForeground( wxSTC_TCS_DEFAULT, tsGetPrefs().GetDefaultColor() ); StyleSetBackground( wxSTC_TCS_DEFAULT, tsGetPrefs().GetBgColor() ); SetSelBackground( 1, tsGetPrefs().GetSelBgColor() ); SetSelForeground( 1, tsGetPrefs().GetSelColor() ); */ IndicatorSetForeground( 0, wxColour( 255, 0, 0 ) ); //SetTabWidth( tsGetPrefs().GetTabWidth() ); // setup the caret. SetCaretWidth( 2 ); SetVisiblePolicy( wxSTC_VISIBLE_STRICT | wxSTC_VISIBLE_SLOP, 1 ); SetXCaretPolicy( wxSTC_CARET_EVEN | wxSTC_VISIBLE_STRICT | wxSTC_CARET_SLOP, 1 ); SetYCaretPolicy( wxSTC_CARET_EVEN | wxSTC_VISIBLE_STRICT | wxSTC_CARET_SLOP, 1 ); // Set the margin. SetMarginLeft( 0 ); SetMarginType( 0, wxSTC_MARGIN_SYMBOL ); SetMarginWidth( 0, 12 ); SetMarginWidth( 1, 0 ); SetMarginWidth( 2, 0 ); SetMarginSensitive( 0, false ); //StyleSetBackground( wxSTC_STYLE_LINENUMBER, tsGetPrefs().GetBgColor() ); SetWrapMode( wxSTC_WRAP_NONE ); SetLayoutCache( wxSTC_CACHE_PAGE ); SetReadOnly( true ); UpdatePrefs(); // Create the regular expression here once. // TODO: This possibly needs fixing for non Win32 platforms. m_ErrorExpr.Compile( "([^*?:<>|]*)[ \t]Line:[ \t]([0-9]*)[ \t]-[ \t](.*)", wxRE_ADVANCED | wxRE_ICASE ); wxASSERT( m_ErrorExpr.IsValid() ); m_WarnExpr.Compile( "([^*?:<>|]*)[ \t][(]([0-9]*)[)]:[ \t](.*)", wxRE_ADVANCED | wxRE_ICASE ); wxASSERT( m_WarnExpr.IsValid() ); }
Edit::Edit (wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, long style) : wxStyledTextCtrl (parent, id, pos, size, style) { m_findReplace = NULL; m_filename = wxEmptyString; m_LineNrID = 0; m_DividerID = 1; m_FoldingID = 2; // initialize language m_language = NULL; // Use all the bits in the style byte as styles, not indicators. SetStyleBits(8); #ifdef __WXOSX_COCOA__ SetZoom(4); #endif m_modified = false; SetModEventMask(wxSTC_MOD_INSERTTEXT | wxSTC_MOD_DELETETEXT); // setup unicode support SetKeysUnicode(true); SetCodePage(wxSTC_CP_UTF8); wxConvCurrent = &wxConvUTF8; // default font for all styles SetViewEOL (g_CommonPrefs.displayEOLEnable); SetIndentationGuides (g_CommonPrefs.indentGuideEnable); SetEdgeMode (g_CommonPrefs.longLineOnEnable? wxSTC_EDGE_LINE: wxSTC_EDGE_NONE); SetViewWhiteSpace (g_CommonPrefs.whiteSpaceEnable? wxSTC_WS_VISIBLEALWAYS: wxSTC_WS_INVISIBLE); SetOvertype (g_CommonPrefs.overTypeInitial); SetReadOnly (g_CommonPrefs.readOnlyInitial); SetWrapMode (g_CommonPrefs.wrapModeInitial? wxSTC_WRAP_WORD: wxSTC_WRAP_NONE); wxFont font (10, wxMODERN, wxNORMAL, wxNORMAL); StyleSetFont (wxSTC_STYLE_DEFAULT, font); StyleSetForeground (wxSTC_STYLE_DEFAULT, *wxBLACK); StyleSetBackground (wxSTC_STYLE_DEFAULT, *wxWHITE); StyleSetForeground (wxSTC_STYLE_LINENUMBER, wxColour (wxT("DARK GREY"))); StyleSetBackground (wxSTC_STYLE_LINENUMBER, *wxWHITE); StyleSetForeground(wxSTC_STYLE_INDENTGUIDE, wxColour (wxT("DARK GREY"))); InitializePrefs (DEFAULT_LANGUAGE); // set visibility SetVisiblePolicy (wxSTC_VISIBLE_STRICT|wxSTC_VISIBLE_SLOP, 1); SetXCaretPolicy (wxSTC_CARET_EVEN|wxSTC_VISIBLE_STRICT|wxSTC_CARET_SLOP, 1); SetYCaretPolicy (wxSTC_CARET_EVEN|wxSTC_VISIBLE_STRICT|wxSTC_CARET_SLOP, 1); // markers // ---- Enable code folding SetMarginType(MARGIN_FOLD, wxSTC_MARGIN_SYMBOL); SetMarginWidth(MARGIN_FOLD, 15); SetMarginMask(MARGIN_FOLD, wxSTC_MASK_FOLDERS); SetMarginSensitive(MARGIN_FOLD, true); // Properties found from http://www.scintilla.org/SciTEDoc.html SetProperty(wxT("fold"), wxT("1")); SetProperty(wxT("fold.comment"), wxT("1")); SetProperty(wxT("fold.compact"), wxT("1")); SetProperty(wxT("fold"), wxT("1")); SetProperty(wxT("fold.comment"), wxT("1")); SetProperty(wxT("fold.compact"), wxT("1")); SetProperty(wxT("fold.preprocessor"), wxT("1")); MarkerDefine(wxSTC_MARKNUM_FOLDER, wxSTC_MARK_BOXPLUS, wxT("WHITE"), wxT("GREY")); MarkerDefine(wxSTC_MARKNUM_FOLDEROPEN, wxSTC_MARK_BOXMINUS, wxT("WHITE"), wxT("GREY")); MarkerDefine(wxSTC_MARKNUM_FOLDERSUB, wxSTC_MARK_VLINE, wxT("WHITE"), wxT("GREY")); MarkerDefine(wxSTC_MARKNUM_FOLDEREND, wxSTC_MARK_BOXPLUSCONNECTED, wxT("WHITE"), wxT("GREY")); MarkerDefine(wxSTC_MARKNUM_FOLDEROPENMID, wxSTC_MARK_BOXMINUSCONNECTED, wxT("WHITE"), wxT("GREY")); MarkerDefine(wxSTC_MARKNUM_FOLDERMIDTAIL, wxSTC_MARK_TCORNER, wxT("WHITE"), wxT("GREY")); MarkerDefine(wxSTC_MARKNUM_FOLDERTAIL, wxSTC_MARK_LCORNER, wxT("WHITE"), wxT("GREY")); SetFoldFlags(wxSTC_FOLDFLAG_LINEBEFORE_CONTRACTED | wxSTC_FOLDFLAG_LINEAFTER_CONTRACTED); // miscellaneous m_LineNrMargin = TextWidth (wxSTC_STYLE_LINENUMBER, wxT("_999999")); m_FoldingMargin = 16; SetLayoutCache (wxSTC_CACHE_PAGE); }