BioInfo
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Как сделать чтобы если в style.*.32 не указан параметр back, то SciTE не красил бы тогда фон окна в белый цвет? Чтобы он, при отсутствии этого параметра, вообще окно ни в какой цвет не красил! Чтобы фон окна оставался как есть по умолчанию, т.е. равным системному Window Background. | Я решил эту задачу так: В файле SciTEProps.cxx нужно заменить функцию (см ниже) и будет счастье ;) Код: void SciTEBase::ReadFontProperties() { char key[200]; SString sval; // Set styles // For each window set the global default style, then the language default style, then the other global styles, then the other language styles SendEditor(SCI_STYLERESETDEFAULT, 0, 0); SendOutput(SCI_STYLERESETDEFAULT, 0, 0); sprintf(key, "style.%s.%0d", "*", STYLE_DEFAULT); sval = props.GetNewExpand(key); /*! SetOneStyle(wEditor, STYLE_DEFAULT, sval.c_str()); SetOneStyle(wOutput, STYLE_DEFAULT, sval.c_str()); */ //!-start-[StyleDefault] #if PLAT_WIN StyleDefinition style(sval.c_str()); char sColor[8]; ColourDesired color; if (!(style.specified & StyleDefinition::sdBack)) { color.Set( ::GetSysColor(COLOR_WINDOW) ); sprintf(sColor, "#%2X%2X%2X\0",color.GetRed(), color.GetGreen(), color.GetBlue() ); style.back = sColor; style.back.substitute(' ', '0'); style.specified = static_cast<StyleDefinition::flags>(style.specified | style.sdBack); } if (!(style.specified & StyleDefinition::sdFore)) { color.Set( ::GetSysColor(COLOR_WINDOWTEXT) ); sprintf(sColor, "#%2X%2X%2X\0",color.GetRed(), color.GetGreen(), color.GetBlue() ); style.fore = sColor; style.fore.substitute(' ', '0'); style.specified = static_cast<StyleDefinition::flags>(style.specified | style.sdFore); } SetOneStyle(wEditor, STYLE_DEFAULT, style); SetOneStyle(wOutput, STYLE_DEFAULT, style); #else SetOneStyle(wEditor, STYLE_DEFAULT, sval.c_str()); SetOneStyle(wOutput, STYLE_DEFAULT, sval.c_str()); #endif //!-end-[StyleDefault] sprintf(key, "style.%s.%0d", language.c_str(), STYLE_DEFAULT); sval = props.GetNewExpand(key); SetOneStyle(wEditor, STYLE_DEFAULT, sval.c_str()); SendEditor(SCI_STYLECLEARALL, 0, 0); SetStyleFor(wEditor, "*"); SetStyleFor(wEditor, language.c_str()); SendOutput(SCI_STYLECLEARALL, 0, 0); sprintf(key, "style.%s.%0d", "errorlist", STYLE_DEFAULT); sval = props.GetNewExpand(key); SetOneStyle(wOutput, STYLE_DEFAULT, sval.c_str()); SendOutput(SCI_STYLECLEARALL, 0, 0); SetStyleFor(wOutput, "*"); SetStyleFor(wOutput, "errorlist"); if (CurrentBuffer()->useMonoFont) { sval = props.GetExpanded("font.monospace"); StyleDefinition sd(sval.c_str()); for (int style = 0; style <= STYLE_MAX; style++) { if (style != STYLE_LINENUMBER) { if (sd.specified & StyleDefinition::sdFont) { SendEditorString(SCI_STYLESETFONT, style, sd.font.c_str()); } if (sd.specified & StyleDefinition::sdSize) { SendEditor(SCI_STYLESETSIZE, style, sd.size); } } } } } | Данный код внедрен в форум с помощью скрипта vladvro | Всего записей: 83 | Зарегистр. 30-04-2007 | Отправлено: 16:28 03-05-2007 | Исправлено: BioInfo, 23:26 05-05-2007 |
|