Skip to content
This repository has been archived by the owner on Oct 4, 2021. It is now read-only.

Commit

Permalink
Corrected some usages of the syntax scheme system.
Browse files Browse the repository at this point in the history
  • Loading branch information
Mike Krüger committed Feb 15, 2013
1 parent 80deafd commit a3b18c6
Show file tree
Hide file tree
Showing 10 changed files with 61 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,8 @@ internal LayoutDescriptor CreateLayoutDescriptor (ErrorText errorText)
void SetColors ()
{
ColorScheme style = editor.ColorStyle;
errorGc = (HslColor)(style.GetChunkStyle ("bubble.error").CairoColor);
warningGc = (HslColor)(style.GetChunkStyle ("bubble.warning").CairoColor);
errorGc = (HslColor)(style.MessageBubbleError.GetColor ("color"));
warningGc = (HslColor)(style.MessageBubbleWarning.GetColor ("color"));
errorMatrix = CreateColorMatrix (editor, true);
warningMatrix = CreateColorMatrix (editor, false);

Expand Down Expand Up @@ -153,11 +153,10 @@ static void AdjustColorMatrix (Cairo.Color[,,,,] colorMatrix , int side, Cairo.C

static Cairo.Color[,,,,] CreateColorMatrix (TextEditor editor, bool isError)
{
string typeString = isError ? "error" : "warning";
Cairo.Color[,,,,] colorMatrix = new Cairo.Color[2, 2, 3, 2, 2];

ColorScheme style = editor.ColorStyle;
var baseColor = style.GetChunkStyle ("bubble." + typeString + "").CairoBackgroundColor;
var baseColor = (isError ? style.MessageBubbleError : style.MessageBubbleWarning).GetColor ("secondcolor");

AdjustColorMatrix (colorMatrix, 0, baseColor);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ protected override bool OnExposeEvent (Gdk.EventExpose evnt)
cr.Fill ();
}

cr.Color = Editor.ColorStyle.GetChunkStyle ("bubble.error").CairoColor;
cr.Color = Editor.ColorStyle.MessageBubbleError.GetColor ("color");

int layoutWidth, layoutHeight;
marker.Layouts [0].Layout.GetPixelSize (out layoutWidth, out layoutHeight);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ public class AmbientColor

public Cairo.Color GetColor (string name)
{
if (Colors.Count == 0)
return new Cairo.Color (0, 0, 0);
return Colors.First (t => t.Item1 == name).Item2;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ public ColorDescriptionAttribute (string name)
{
this.Name = name;
}

public override string ToString ()
{
return string.Format ("[ColorDescriptionAttribute: Name={0}, Description={1}, VSSetting={2}]", Name, Description, VSSetting);
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,23 @@ public class ColorScheme

[ColorDescription("Column Ruler")] // not defined
public AmbientColor Ruler { get; private set; }

[ColorDescription("Completion Matching Substring")]
public AmbientColor CompletionHighlight { get; private set; }

[ColorDescription("Completion Border")]
public AmbientColor CompletionBorder { get; private set; }

[ColorDescription("Completion Border(Inactive)")]
public AmbientColor CompletionInactiveBorder { get; private set; }

[ColorDescription("Message Bubble Error")]
public AmbientColor MessageBubbleError { get; private set; }

[ColorDescription("Message Bubble Warning")]
public AmbientColor MessageBubbleWarning { get; private set; }


#endregion

#region Text Colors
Expand Down Expand Up @@ -214,6 +230,12 @@ public class ColorScheme
[ColorDescription("Completion Text")] //not defined in vs.net
public ChunkStyle CompletionText { get; private set; }

[ColorDescription("Completion Selected Text")] //not defined in vs.net
public ChunkStyle CompletionSelectedText { get; private set; }

[ColorDescription("Completion Selected Text(Inactive)")] //not defined in vs.net
public ChunkStyle CompletionSelectedInactiveText { get; private set; }

[ColorDescription("Keyword(Access)", VSSetting = "Keyword")]
public ChunkStyle KeywordAccessors { get; private set; }

Expand Down Expand Up @@ -333,7 +355,7 @@ static ColorScheme ()
var description = property.GetCustomAttributes (false).FirstOrDefault (p => p is ColorDescriptionAttribute) as ColorDescriptionAttribute;
if (description == null)
continue;
if (property.PropertyType.Name == "TextColor") {
if (property.PropertyType == typeof (ChunkStyle)) {
textColors.Add (description.Name, property);
} else {
ambientColors.Add (description.Name, property);
Expand Down Expand Up @@ -364,8 +386,10 @@ public ChunkStyle GetChunkStyle (Chunk chunk)
public ChunkStyle GetChunkStyle (string color)
{
PropertyInfo val;
if (!textColors.TryGetValue (color, out val))
if (!textColors.TryGetValue (color, out val)) {
Console.WriteLine ("Chunk style : " + color + " is undefined.");
return null;
}
return val.GetValue (this, null) as ChunkStyle;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,15 @@ public static void InstallSyntaxMode (string mimeType, ISyntaxModeProvider modeP

public static ColorScheme GetColorStyle (string name)
{
return ds;
/*
if (styles.ContainsKey (name))
return styles [name];
if (styleLookup.ContainsKey (name)) {
LoadStyle (name);
return GetColorStyle (name);
}
return GetColorStyle ("Default");
return GetColorStyle ("Default");*/
}

public static IXmlProvider GetProvider (SyntaxMode mode)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1315,7 +1315,9 @@ void DecorateTabsAndSpaces (Cairo.Context ctx, LayoutWrapper layout, int offset,
while (curchunk != null && curchunk.EndOffset < offset + i)
curchunk = curchunk.Next;
if (curchunk != null && curchunk.SpanStack.Count > 0 && curchunk.SpanStack.Peek ().Color != "text") {
col = ColorStyle.GetChunkStyle (curchunk.SpanStack.Peek ().Color).CairoColor;
var chunkStyle = ColorStyle.GetChunkStyle (curchunk.SpanStack.Peek ().Color);
if (chunkStyle != null)
col = chunkStyle.CairoColor;
} else {
col = ColorStyle.Default.CairoColor;
}
Expand Down Expand Up @@ -1666,7 +1668,9 @@ void DrawEolMarker (Cairo.Context cr, DocumentLine line, bool selected, double x
} else {
if (line != null && line.NextLine != null && line.NextLine.StartSpan != null && line.NextLine.StartSpan.Count > 0) {
var span = line.NextLine.StartSpan.Peek ();
col = ColorStyle.GetChunkStyle (span.Color).CairoColor;
var chunkStyle = ColorStyle.GetChunkStyle (span.Color);
if (chunkStyle != null)
col = chunkStyle.CairoColor;
}
}

Expand Down Expand Up @@ -2533,6 +2537,8 @@ protected internal override void Draw (Cairo.Context cr, Cairo.Rectangle area, D
if (wrapper.EolSpanStack != null) {
foreach (var span in wrapper.EolSpanStack) {
var spanStyle = textEditor.ColorStyle.GetChunkStyle (span.Color);
if (spanStyle == null)
continue;
if (!spanStyle.TransparentBackround && GetPixel (ColorStyle.Default.CairoBackgroundColor) != GetPixel (spanStyle.CairoBackgroundColor)) {
DrawRectangleWithRuler (cr, x, lineArea, spanStyle.CairoBackgroundColor, false);
break;
Expand Down
5 changes: 4 additions & 1 deletion main/src/core/Mono.Texteditor/Styles/DefaultStyle.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,10 @@
{ "name": "Primary Link", "color":"chameleon3", "secondcolor":"chameleon2"},
{ "name": "Primary Link(Highlighted)", "color":"chameleon3", "secondcolor":"chameleon1"},
{ "name": "Secondary Link", "color":"aluminum2", "secondcolor":"white"},
{ "name": "Secondary Link(Highlighted)", "color":"aluminum3", "secondcolor":"aluminum1"}
{ "name": "Secondary Link(Highlighted)", "color":"aluminum3", "secondcolor":"aluminum1"},

{ "name": "Message Bubble Error", "color":"aluminum5", "secondcolor":"#f4eeda"},
{ "name": "Message Bubble Warning", "color":"aluminum5", "secondcolor":"#f5eae7"}
],

"text":[
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,15 +158,14 @@ public ListWidget (ListWindow win)
layout.Wrap = Pango.WrapMode.Char;
var style = SyntaxModeService.GetColorStyle (IdeApp.Preferences.ColorScheme);
SetFont ();
var completion = style.GetChunkStyle ("completion");
textColor = completion.CairoColor;

highlightColor = style.GetChunkStyle ("completion.highlight").CairoColor;
backgroundColor = completion.CairoBackgroundColor;
selectedItemColor = style.GetChunkStyle ("completion.selection");
selectedItemInactiveColor = style.GetChunkStyle ("completion.selection.inactive");
selectionBorderColor = style.GetChunkStyle ("completion.selection.border").CairoColor;
selectionBorderInactiveColor = style.GetChunkStyle ("completion.selection.inactive.border").CairoColor;
textColor = style.CompletionText.CairoColor;

highlightColor = style.CompletionHighlight.GetColor ("color");
backgroundColor = style.CompletionText.CairoBackgroundColor;
selectedItemColor = style.CompletionSelectedText;
selectedItemInactiveColor = style.CompletionSelectedInactiveText;
selectionBorderColor = style.CompletionBorder.GetColor ("color");
selectionBorderInactiveColor = style.CompletionInactiveBorder.GetColor ("color");
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,9 +93,7 @@ public ListWindow (Gtk.WindowType type) : base(type)
this.TypeHint = WindowTypeHint.Menu;
Theme.CornerRadius = 4;
var style = SyntaxModeService.GetColorStyle (IdeApp.Preferences.ColorScheme);
var completion = style.GetChunkStyle ("completion");

Theme.SetFlatColor (completion.CairoBackgroundColor);
Theme.SetFlatColor (style.CompletionText.CairoBackgroundColor);
}

protected virtual void DoubleClick ()
Expand Down

0 comments on commit a3b18c6

Please sign in to comment.