Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVsevolod Kukol <sevoku@xamarin.com>2016-04-14 11:51:26 +0300
committerVsevolod Kukol <sevoku@xamarin.com>2016-04-14 11:55:45 +0300
commit982513f6bfee2a885f63863fe81a882e6326c21e (patch)
treeb7e70007a7d40ab59b3e156f6bb34857bbd97fba /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components
parent6c4fb77fb244427c3bb27f8138c8b361f108f8c9 (diff)
[Ide] Fix disabled state colors in Solution Pad
* Load cell foreground colors from GtkTreeView style * Different selected state colors on Mac (fixes bug #28451)
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs22
1 files changed, 15 insertions, 7 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs
index b388534ab5..7ed2e6911a 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs
@@ -325,10 +325,8 @@ namespace MonoDevelop.Ide.Gui.Components
var info = (NodeInfo)model.GetValue (it, NodeInfoColumn);
var cell = (CustomCellRendererText)renderer;
- if (info.DisabledStyle)
- cell.TextMarkup = "<span foreground='gray'>" + info.Label + "</span>";
- else
- cell.TextMarkup = info.Label;
+ cell.DisabledStyle = info.DisabledStyle;
+ cell.TextMarkup = info.Label;
cell.StatusIcon = info.StatusIconInternal;
}
@@ -2386,6 +2384,8 @@ namespace MonoDevelop.Ide.Gui.Components
set { Markup = markup = value; }
}
+ public bool DisabledStyle { get; set; }
+
[GLib.Property ("status-icon")]
public Xwt.Drawing.Image StatusIcon { get; set; }
@@ -2419,7 +2419,7 @@ namespace MonoDevelop.Ide.Gui.Components
return icon.WithSize (size);
}
- void SetupLayout (Gtk.Widget widget)
+ void SetupLayout (Gtk.Widget widget, Gtk.CellRendererState flags = 0)
{
if (scaledFont == null) {
if (scaledFont != null)
@@ -2437,7 +2437,15 @@ namespace MonoDevelop.Ide.Gui.Components
layout.FontDescription = scaledFont;
}
- layout.SetMarkup (TextMarkup);
+ if (DisabledStyle) {
+ Gdk.Color fgColor;
+ if (Platform.IsMac && flags.HasFlag (Gtk.CellRendererState.Selected))
+ fgColor = widget.Style.Text (IdeTheme.UserInterfaceSkin == Skin.Light ? Gtk.StateType.Selected : Gtk.StateType.Normal);
+ else
+ fgColor = widget.Style.Text (Gtk.StateType.Insensitive);
+ layout.SetMarkup ("<span foreground='" + fgColor.GetHex () + "'>" + TextMarkup + "</span>");
+ } else
+ layout.SetMarkup (TextMarkup);
}
protected override void Render (Gdk.Drawable window, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, Gtk.CellRendererState flags)
@@ -2452,7 +2460,7 @@ namespace MonoDevelop.Ide.Gui.Components
if ((flags & Gtk.CellRendererState.Selected) != 0)
st = widget.HasFocus ? Gtk.StateType.Selected : Gtk.StateType.Active;
- SetupLayout (widget);
+ SetupLayout (widget, flags);
int w, h;
layout.GetPixelSize (out w, out h);