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:
authorMike Krüger <mkrueger@novell.com>2009-10-13 15:47:24 +0400
committerMike Krüger <mkrueger@novell.com>2009-10-13 15:47:24 +0400
commit7a599f9c89dc3ae9b6f8ae69e59db19b88a8d0bc (patch)
treef25f9c42f584cc7d18b2e33464f961536a000172 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles
parentaa1f36e34edc43eceeaaf3f9130ba17cba7b1481 (diff)
* Makefile.am:
* MonoDevelop.Ide.csproj: * MonoDevelop.Ide.FindInFiles/HslColor.cs: * MonoDevelop.Ide.FindInFiles/SearchResultWidget.cs: Moved hsl color & brightness into the text edior. (removed brightness * 1e-3, it correctly ranges now 0.0-1.0); svn path=/trunk/monodevelop/; revision=144006
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/HslColor.cs137
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchResultWidget.cs26
2 files changed, 9 insertions, 154 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/HslColor.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/HslColor.cs
deleted file mode 100644
index 8164c73607..0000000000
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/HslColor.cs
+++ /dev/null
@@ -1,137 +0,0 @@
-//
-// Hsl.cs
-//
-// Author:
-// Mike Krüger <mkrueger@novell.com>
-//
-// Copyright (c) 2009 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-using System;
-using Gdk;
-
-namespace MonoDevelop.Ide.FindInFiles
-{
- public struct HslColor
- {
- public double H {
- get;
- set;
- }
-
- public double S {
- get;
- set;
- }
-
- public double L {
- get;
- set;
- }
-
- static Gdk.Color black = new Gdk.Color (0, 0, 0);
- public static implicit operator Color (HslColor hsl)
- {
- double r = 0, g = 0, b = 0;
-
- if (hsl.L == 0)
- return black;
-
- if (hsl.S == 0) {
- r = g = b = hsl.L;
- } else {
- double temp2 = hsl.L <= 0.5 ? hsl.L * (1.0 + hsl.S) : hsl.L + hsl.S -(hsl.L * hsl.S);
- double temp1 = 2.0 * hsl.L - temp2;
-
- double[] t3 = new double[] { hsl.H + 1.0 / 3.0, hsl.H, hsl.H - 1.0 / 3.0};
- double[] clr= new double[] { 0, 0, 0};
- for (int i = 0; i < 3; i++) {
- if (t3[i] < 0)
- t3[i] += 1.0;
- if (t3[i] > 1)
- t3[i]-=1.0;
- if (6.0 * t3[i] < 1.0)
- clr[i] = temp1 + (temp2 - temp1) * t3[i] * 6.0;
- else if (2.0 * t3[i] < 1.0)
- clr[i] = temp2;
- else if (3.0 * t3[i] < 2.0)
- clr[i] = (temp1 + (temp2 - temp1) * ((2.0 / 3.0) - t3[i]) * 6.0);
- else
- clr[i] = temp1;
- }
-
- r = clr[0];
- g = clr[1];
- b = clr[2];
- }
- return new Color ((byte)(255 * r),
- (byte)(255 * g),
- (byte)(255 * b));
- }
-
- public static implicit operator HslColor (Color color)
- {
- return new HslColor (color);
- }
-
- public HslColor (Color color) : this ()
- {
- double r = color.Red / (double)ushort.MaxValue;
- double g = color.Green / (double)ushort.MaxValue;
- double b = color.Blue / (double)ushort.MaxValue;
-
- double v = Math.Max (r, g);
- v = Math.Max (v, b);
-
- double m = Math.Min (r, g);
- m = Math.Min (m, b);
-
- this.L = (m + v) / 2.0;
- if (this.L <= 0.0)
- return;
- double vm = v - m;
- this.S = vm;
-
- if (this.S > 0.0) {
- this.S /= (this.L <= 0.5) ? (v + m) : (2.0 - v - m);
- } else {
- return;
- }
-
- double r2 = (v - r) / vm;
- double g2 = (v - g) / vm;
- double b2 = (v - b) / vm;
-
- if (r == v) {
- this.H = (g == m ? 5.0 + b2 : 1.0 - g2);
- } else if (g == v) {
- this.H = (b == m ? 1.0 + r2 : 3.0 - b2);
- } else {
- this.H = (r == m ? 3.0 + g2 : 5.0 - r2);
- }
- this.H /= 6.0;
- }
-
- public override string ToString ()
- {
- return string.Format ("[HslColor: H={0}, S={1}, L={2}]", H, S, L);
- }
- }
-}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchResultWidget.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchResultWidget.cs
index af7158ee38..2b591697e9 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchResultWidget.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchResultWidget.cs
@@ -220,23 +220,15 @@ namespace MonoDevelop.Ide.FindInFiles
}
}
- static double Brightness (Gdk.Color c)
+ Gdk.Color AdjustColor (Gdk.Color baseColor, Gdk.Color color)
{
- double r = c.Red / (double)ushort.MaxValue;
- double g = c.Green / (double)ushort.MaxValue;
- double b = c.Blue / (double)ushort.MaxValue;
- return Math.Sqrt (r * .241 + g * .691 + b * .068) / 1000.0;
- }
-
- Gdk.Color AdjustColor (Gdk.Color color)
- {
- double b1 = Brightness (color);
- double b2 = Brightness (Style.Base (StateType.Normal));
+ double b1 = HslColor.Brightness (color);
+ double b2 = HslColor.Brightness (baseColor);
double delta = Math.Abs (b1 - b2);
- if (delta < 1e-4) {
+ if (delta < 0.1) {
HslColor color1 = color;
color1.L -= 0.5;
- if (Math.Abs (Brightness (color1) - b2) < delta) {
+ if (Math.Abs (HslColor.Brightness (color1) - b2) < delta) {
color1 = color;
color1.L += 0.5;
}
@@ -262,7 +254,7 @@ namespace MonoDevelop.Ide.FindInFiles
Gdk.Color color = Gdk.Color.Zero;
if (Gdk.Color.Parse (colorStr, ref color)) {
- colorStr = SyntaxMode.ColorToPangoMarkup (AdjustColor (color));
+ colorStr = SyntaxMode.ColorToPangoMarkup (AdjustColor (Style.Base (StateType.Normal), color));
}
result.Append (colorStr);
idx = markup.IndexOf ("foreground=\"", idx);
@@ -384,10 +376,10 @@ namespace MonoDevelop.Ide.FindInFiles
markup = markup.Insert (pos2, "</span>");
}
Gdk.Color searchColor = style.SearchTextBg;
- double b1 = Brightness (searchColor);
- double b2 = Brightness (AdjustColor (style.Default.Color));
+ double b1 = HslColor.Brightness (searchColor);
+ double b2 = HslColor.Brightness (AdjustColor (Style.Base (StateType.Normal), style.Default.Color));
double delta = Math.Abs (b1 - b2);
- if (delta < 0.0001) {
+ if (delta < 0.1) {
HslColor color1 = style.SearchTextBg;
if (color1.L + 0.5 > 1.0) {
color1.L -= 0.5;