本文整理汇总了C++中lexerconf::Ptr_t::GetProperty方法的典型用法代码示例。如果您正苦于以下问题:C++ Ptr_t::GetProperty方法的具体用法?C++ Ptr_t::GetProperty怎么用?C++ Ptr_t::GetProperty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类lexerconf::Ptr_t
的用法示例。
在下文中一共展示了Ptr_t::GetProperty方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InitView
void NewBuildTab::InitView(const wxString& theme)
{
LexerConf::Ptr_t lexText = ColoursAndFontsManager::Get().GetLexer("text", theme);
lexText->Apply(m_view);
m_view->SetUndoCollection(false);
m_view->EmptyUndoBuffer();
m_view->HideSelection(true);
m_view->SetEditable(false);
StyleProperty::Map_t& props = lexText->GetLexerProperties();
const StyleProperty& defaultStyle = lexText->GetProperty(0);
// reset the styles
m_view->SetLexer(wxSTC_LEX_CONTAINER);
wxFont defaultFont = lexText->GetFontForSyle(0);
for(size_t i = 0; i < wxSTC_STYLE_MAX; ++i) {
m_view->StyleSetForeground(i, defaultStyle.GetFgColour());
m_view->StyleSetBackground(i, defaultStyle.GetBgColour());
m_view->StyleSetFont(i, defaultFont);
}
m_view->StyleSetForeground(LEX_GCC_INFO, wxSystemSettings::GetColour(wxSYS_COLOUR_GRAYTEXT));
m_view->StyleSetForeground(LEX_GCC_DEFAULT, props[0].GetFgColour());
m_view->StyleSetForeground(LEX_GCC_WARNING, this->m_buildTabSettings.GetWarnColour());
m_view->StyleSetForeground(LEX_GCC_ERROR, this->m_buildTabSettings.GetErrorColour());
m_view->StyleSetHotSpot(LEX_GCC_ERROR, true);
m_view->StyleSetHotSpot(LEX_GCC_WARNING, true);
m_view->SetHotspotActiveUnderline(false); // No underline
m_view->MarkerDefine(LEX_GCC_MARKER, wxSTC_MARK_BACKGROUND);
if(lexText->IsDark()) {
m_view->MarkerSetBackground(LEX_GCC_MARKER, wxColour(defaultStyle.GetBgColour()).ChangeLightness(110));
} else {
m_view->MarkerSetBackground(LEX_GCC_MARKER, wxColour(defaultStyle.GetBgColour()).ChangeLightness(90));
}
// Hide all margins
for(int i = 0; i <= wxSTC_MARGIN_RTEXT; ++i) {
m_view->SetMarginWidth(i, 0);
}
// make the symbol margin 5 pixel width
m_view->SetMarginType(0, wxSTC_MARGIN_SYMBOL);
m_view->SetMarginWidth(0, 5);
}
示例2: UpdateLexerColours
void ColoursAndFontsManager::UpdateLexerColours(LexerConf::Ptr_t lexer, bool force)
{
StyleProperty& defaultProp = lexer->GetProperty(0); // Default
if(force || m_lexersVersion < 1) {
// adjust line numbers
if(lexer->IsDark()) {
StyleProperty& lineNumbers = lexer->GetProperty(LINE_NUMBERS_ATTR_ID); // Line numbers
if(!defaultProp.IsNull()) {
if(lexer->GetName() == "c++") {
defaultProp.SetFgColour(
wxColour(defaultProp.GetBgColour()).ChangeLightness(120).GetAsString(wxC2S_HTML_SYNTAX));
}
if(!lineNumbers.IsNull()) {
lineNumbers.SetFgColour(
wxColour(defaultProp.GetBgColour()).ChangeLightness(120).GetAsString(wxC2S_HTML_SYNTAX));
lineNumbers.SetBgColour(defaultProp.GetBgColour());
}
}
} else {
lexer->SetLineNumbersFgColour(wxSystemSettings::GetColour(wxSYS_COLOUR_GRAYTEXT));
StyleProperty& lineNumbers = lexer->GetProperty(LINE_NUMBERS_ATTR_ID); // Line numbers
if(!lineNumbers.IsNull()) {
lineNumbers.SetBgColour(defaultProp.GetBgColour());
}
// don't adjust PHP and HTML default colours, since they also affects the various operators
// foreground colours
if(lexer->GetName() != "php" && lexer->GetName() != "html" && lexer->GetName() != "text" &&
lexer->GetName() != "cmake" && lexer->GetName() != "xml") {
lexer->SetDefaultFgColour(wxSystemSettings::GetColour(wxSYS_COLOUR_GRAYTEXT));
}
}
}
//=====================================================================
// Second upgrade stage: adjust whitespace colour and fold margin
//=====================================================================
if(force || m_lexersVersion < 2) {
// adjust line numbers
StyleProperty& fold = lexer->GetProperty(FOLD_MARGIN_ATTR_ID); // fold margin
StyleProperty& whitespace = lexer->GetProperty(WHITE_SPACE_ATTR_ID); // whitespace
if(lexer->IsDark()) {
wxColour newCol = wxColour(defaultProp.GetBgColour()).ChangeLightness(110);
fold.SetFgColour(newCol.GetAsString(wxC2S_HTML_SYNTAX));
fold.SetBgColour(newCol.GetAsString(wxC2S_HTML_SYNTAX));
whitespace.SetFgColour(newCol.GetAsString(wxC2S_HTML_SYNTAX));
} else {
wxColour newCol = wxColour(defaultProp.GetBgColour()).ChangeLightness(95);
fold.SetFgColour(newCol.GetAsString(wxC2S_HTML_SYNTAX));
fold.SetBgColour(newCol.GetAsString(wxC2S_HTML_SYNTAX));
whitespace.SetFgColour(newCol.GetAsString(wxC2S_HTML_SYNTAX));
}
}
//=====================================================================
// Third upgrade stage: adjust whitespace colour and fold margin
//=====================================================================
if(force || m_lexersVersion < 3) {
// remove the *.js;*.javascript from the C++ lexer
if(lexer->GetName() == "c++") {
lexer->SetFileSpec("*.cxx;*.hpp;*.cc;*.h;*.c;*.cpp;*.l;*.y;*.c++;*.hh;*.ipp;*.hxx;*.h++");
}
}
// Upgrade CSS colours
if((force || m_lexersVersion < 4) && lexer->GetName().Lower() == "css") {
// adjust line numbers
bool isDark = lexer->IsDark();
StyleProperty& var = lexer->GetProperty(wxSTC_CSS_VARIABLE);
StyleProperty& identifier = lexer->GetProperty(wxSTC_CSS_IDENTIFIER);
StyleProperty& identifier2 = lexer->GetProperty(wxSTC_CSS_IDENTIFIER2);
StyleProperty& identifier3 = lexer->GetProperty(wxSTC_CSS_IDENTIFIER3);
StyleProperty& oper = lexer->GetProperty(wxSTC_CSS_OPERATOR);
if(!var.IsNull()) {
if(!identifier.IsNull()) {
identifier.SetFgColour(var.GetFgColour());
}
if(!identifier2.IsNull()) {
identifier2.SetFgColour(var.GetFgColour());
}
if(!identifier3.IsNull()) {
identifier3.SetFgColour(var.GetFgColour());
}
if(!oper.IsNull()) {
oper.SetFgColour(isDark ? "WHITE" : "BLACK");
}
}
}
if(force || m_lexersVersion < 5) {
// Indentation guides (style #37)
StyleProperty& indentGuides = lexer->GetProperty(37);
indentGuides.SetFgColour(defaultProp.GetBgColour());
indentGuides.SetBgColour(defaultProp.GetBgColour());
}
}
示例3: SetStyles
void FindResultsTab::SetStyles(wxStyledTextCtrl* sci)
{
//#define LEX_FIF_DEFAULT 0
//#define LEX_FIF_FILE 1
//#define LEX_FIF_MATCH 2
//#define LEX_FIF_LINE_NUMBER 3
//#define LEX_FIF_HEADER 4
//#define LEX_FIF_SCOPE 5
//#define LEX_FIF_MATCH_COMMENT 6
LexerConf::Ptr_t lexer = ColoursAndFontsManager::Get().GetLexer("c++");
if(!lexer) {
lexer = ColoursAndFontsManager::Get().GetLexer("text");
}
const StyleProperty& defaultStyle = lexer->GetProperty(0);
wxFont defaultFont = lexer->GetFontForSyle(0);
for(size_t i = 0; i < wxSTC_STYLE_MAX; ++i) {
sci->StyleSetForeground(i, defaultStyle.GetFgColour());
sci->StyleSetBackground(i, defaultStyle.GetBgColour());
sci->StyleSetFont(i, defaultFont);
}
StyleProperty::Map_t& props = lexer->GetLexerProperties();
sci->StyleSetForeground(LEX_FIF_HEADER, props[11].GetFgColour());
sci->StyleSetBackground(LEX_FIF_HEADER, props[11].GetBgColour());
// 33 is the style for line numbers
sci->StyleSetForeground(LEX_FIF_LINE_NUMBER, props[33].GetFgColour());
sci->StyleSetBackground(LEX_FIF_LINE_NUMBER, props[33].GetBgColour());
// 11 is the style number for "identifier"
sci->StyleSetForeground(LEX_FIF_MATCH, props[11].GetFgColour());
sci->StyleSetBackground(LEX_FIF_MATCH, props[11].GetBgColour());
// 16 is the stule for colouring classes
sci->StyleSetForeground(LEX_FIF_SCOPE, props[16].GetFgColour());
sci->StyleSetBackground(LEX_FIF_SCOPE, props[16].GetBgColour());
sci->StyleSetForeground(LEX_FIF_MATCH_COMMENT, props[wxSTC_C_COMMENTLINE].GetFgColour());
sci->StyleSetBackground(LEX_FIF_MATCH_COMMENT, props[wxSTC_C_COMMENTLINE].GetBgColour());
sci->StyleSetForeground(LEX_FIF_FILE, props[wxSTC_C_WORD].GetFgColour());
sci->StyleSetBackground(LEX_FIF_FILE, props[wxSTC_C_WORD].GetBgColour());
sci->StyleSetEOLFilled(LEX_FIF_FILE, true);
sci->StyleSetForeground(LEX_FIF_DEFAULT, props[11].GetFgColour());
sci->StyleSetBackground(LEX_FIF_DEFAULT, props[11].GetBgColour());
sci->StyleSetHotSpot(LEX_FIF_MATCH, true);
sci->StyleSetHotSpot(LEX_FIF_FILE, true);
sci->StyleSetHotSpot(LEX_FIF_MATCH_COMMENT, true);
sci->SetHotspotActiveForeground(true, lexer->IsDark() ? "WHITE" : "BLACK");
sci->SetHotspotActiveUnderline(false);
sci->MarkerDefine(7, wxSTC_MARK_ARROW);
sci->MarkerSetBackground(7, lexer->IsDark() ? "YELLOW" : "#FF4500");
sci->MarkerSetForeground(7, lexer->IsDark() ? "YELLOW" : "#FF4500");
sci->IndicatorSetForeground(1, lexer->IsDark() ? "YELLOW" : "#FF4500");
#ifdef __WXGTK__
// On GTK we dont have the wxSTC_INDIC_TEXTFORE symbol yet (old wx version)
sci->IndicatorSetStyle(1, wxSTC_INDIC_DOTBOX);
#else
sci->IndicatorSetStyle(1, wxSTC_INDIC_TEXTFORE);
#endif
sci->IndicatorSetUnder(1, true);
sci->SetMarginWidth(0, 0);
sci->SetMarginWidth(1, 16);
sci->SetMarginWidth(2, 0);
sci->SetMarginWidth(3, 0);
sci->SetMarginWidth(4, 0);
sci->SetMarginSensitive(1, true);
sci->HideSelection(true);
sci->Refresh();
}
示例4: SetStyles
void FindResultsTab::SetStyles(wxStyledTextCtrl* sci)
{
LexerConf::Ptr_t lexer = ColoursAndFontsManager::Get().GetLexer("c++");
if(!lexer) {
lexer = ColoursAndFontsManager::Get().GetLexer("text");
}
const StyleProperty& defaultStyle = lexer->GetProperty(0);
wxFont defaultFont = lexer->GetFontForSyle(0);
for(size_t i = 0; i < wxSTC_STYLE_MAX; ++i) {
sci->StyleSetForeground(i, defaultStyle.GetFgColour());
sci->StyleSetBackground(i, defaultStyle.GetBgColour());
sci->StyleSetFont(i, defaultFont);
}
// Show/hide whitespace
sci->SetViewWhiteSpace(EditorConfigST::Get()->GetOptions()->GetShowWhitspaces());
StyleProperty::Map_t& props = lexer->GetLexerProperties();
// Set the whitespace colours
sci->SetWhitespaceForeground(true, props[WHITE_SPACE_ATTR_ID].GetFgColour());
sci->StyleSetForeground(LEX_FIF_HEADER, props[11].GetFgColour());
sci->StyleSetBackground(LEX_FIF_HEADER, props[11].GetBgColour());
// 33 is the style for line numbers
sci->StyleSetForeground(LEX_FIF_LINE_NUMBER, props[33].GetFgColour());
// 11 is the style number for "identifier"
sci->StyleSetForeground(LEX_FIF_MATCH, props[11].GetFgColour());
// 16 is the stule for colouring classes
sci->StyleSetForeground(LEX_FIF_SCOPE, props[16].GetFgColour());
sci->StyleSetForeground(LEX_FIF_MATCH_COMMENT, props[wxSTC_C_COMMENTLINE].GetFgColour());
sci->StyleSetForeground(LEX_FIF_FILE, props[wxSTC_C_WORD].GetFgColour());
sci->StyleSetEOLFilled(LEX_FIF_FILE, true);
sci->StyleSetForeground(LEX_FIF_DEFAULT, props[11].GetFgColour());
sci->StyleSetBackground(LEX_FIF_DEFAULT, props[11].GetBgColour());
sci->StyleSetHotSpot(LEX_FIF_MATCH, true);
sci->StyleSetHotSpot(LEX_FIF_FILE, true);
sci->StyleSetHotSpot(LEX_FIF_MATCH_COMMENT, true);
sci->SetHotspotActiveForeground(true, lexer->IsDark() ? "WHITE" : "BLACK");
sci->SetHotspotActiveUnderline(false);
sci->MarkerDefine(7, wxSTC_MARK_ARROW);
#if wxVERSION_NUMBER < 3100
// On GTK we dont have the wxSTC_INDIC_TEXTFORE symbol yet (old wx version)
sci->MarkerDefine(7, wxSTC_MARK_ARROW);
sci->MarkerSetBackground(7, lexer->IsDark() ? "CYAN" : "ORANGE");
sci->MarkerSetForeground(7, lexer->IsDark() ? "CYAN" : "ORANGE");
sci->IndicatorSetForeground(1, lexer->IsDark() ? "CYAN" : "ORANGE");
sci->IndicatorSetStyle(1, wxSTC_INDIC_ROUNDBOX);
#else
sci->MarkerDefine(7, wxSTC_MARK_ARROW);
sci->MarkerSetBackground(7, lexer->IsDark() ? "#FFD700" : "#FF4500");
sci->MarkerSetForeground(7, lexer->IsDark() ? "#FFD700" : "#FF4500");
sci->IndicatorSetForeground(1, lexer->IsDark() ? "#FFD700" : "#FF4500");
sci->IndicatorSetStyle(1, wxSTC_INDIC_TEXTFORE);
#endif
sci->IndicatorSetUnder(1, true);
sci->SetMarginWidth(0, 0);
sci->SetMarginWidth(1, 16);
sci->SetMarginWidth(2, 0);
sci->SetMarginWidth(3, 0);
sci->SetMarginWidth(4, 0);
sci->SetMarginSensitive(1, true);
sci->HideSelection(true);
// Indentation
OptionsConfigPtr options = EditorConfigST::Get()->GetOptions();
sci->SetUseTabs(options->GetIndentUsesTabs());
sci->SetTabWidth(options->GetIndentWidth());
sci->SetIndent(options->GetIndentWidth());
sci->Refresh();
}