#endregion // Private Enumerations
#region Helpers
- private static Color Win32ToColor(int Win32Color) {
- return(Color.FromArgb(
- (int)(Win32Color) & 0xff0000 >> 16, // blue
- (int)(Win32Color) & 0xff00 >> 8, // green
- (int)(Win32Color) & 0xff // red
- ));
- }
-
internal static void Color2HBS(Color color, out int h, out int l, out int s) {
int r;
int g;
}
public static Color Light(Color baseColor) {
- if (baseColor == ThemeEngine.Current.ColorButtonFace) {
- return ThemeEngine.Current.ColorButtonLight;
- }
-
- return Light( baseColor, 10.0f);
- }
-
- public static Color Light(Color baseColor,float percOfLightLight) {
+ return Light(baseColor, 0.5f);
+ }
+
+ public static Color Light(Color baseColor,float per) {
+ if (baseColor.ToArgb () == ThemeEngine.Current.ColorControl.ToArgb ()) {
+ int r_sub, g_sub, b_sub;
+ Color color;
+
+ if (per <= 0f)
+ return ThemeEngine.Current.ColorControlLight;
+
+ if (per == 1.0f)
+ return ThemeEngine.Current.ColorControlLightLight;
+
+ r_sub = ThemeEngine.Current.ColorControlLightLight.R - ThemeEngine.Current.ColorControlLight.R;
+ g_sub = ThemeEngine.Current.ColorControlLightLight.G - ThemeEngine.Current.ColorControlLight.G;
+ b_sub = ThemeEngine.Current.ColorControlLightLight.B - ThemeEngine.Current.ColorControlLight.B;
+
+ color = Color.FromArgb (ThemeEngine.Current.ColorControlLight.A,
+ (int) (ThemeEngine.Current.ColorControlLight.R + (r_sub * per)),
+ (int) (ThemeEngine.Current.ColorControlLight.G + (g_sub * per)),
+ (int) (ThemeEngine.Current.ColorControlLight.B + (b_sub * per)));
+
+ return color;
+ }
+
int H, I, S;
ControlPaint.Color2HBS(baseColor, out H, out I, out S);
- int NewIntensity = Math.Min( 255, I + ((255*(int)percOfLightLight)/100));
- return ControlPaint.HBS2Color(H, NewIntensity, S);
+ int NewIntensity = Math.Min (255, I + (int)((255 - I) * 0.5f * per));
+
+ return ControlPaint.HBS2Color(H, NewIntensity, S);
}
- public static Color LightLight(Color baseColor) {
- if (baseColor == ThemeEngine.Current.ColorButtonFace) {
- return ThemeEngine.Current.ColorButtonHilight;
- }
-
- return Light( baseColor, 20.0f);
+ public static Color LightLight(Color baseColor) {
+ return Light(baseColor, 1.0f);
}
public static Color Dark(Color baseColor) {
- if (baseColor == ThemeEngine.Current.ColorButtonFace) {
- return ThemeEngine.Current.ColorButtonShadow;
- }
-
- return Dark(baseColor, 10.0f);
- }
-
- public static Color Dark(Color baseColor,float percOfDarkDark) {
+ return Dark(baseColor, 0.5f);
+ }
+
+ public static Color Dark(Color baseColor,float per) {
+
+ if (baseColor.ToArgb () == ThemeEngine.Current.ColorControl.ToArgb ()) {
+
+ int r_sub, g_sub, b_sub;
+ Color color;
+
+ if (per <= 0f)
+ return ThemeEngine.Current.ColorControlDark;
+
+ if (per == 1.0f)
+ return ThemeEngine.Current.ColorControlDarkDark;
+
+ r_sub = ThemeEngine.Current.ColorControlDarkDark.R - ThemeEngine.Current.ColorControlDark.R;
+ g_sub = ThemeEngine.Current.ColorControlDarkDark.G - ThemeEngine.Current.ColorControlDark.G;
+ b_sub = ThemeEngine.Current.ColorControlDarkDark.B - ThemeEngine.Current.ColorControlDark.B;
+
+ color = Color.FromArgb (ThemeEngine.Current.ColorControlDark.A,
+ (int) (ThemeEngine.Current.ColorControlDark.R + (r_sub * per)),
+ (int) (ThemeEngine.Current.ColorControlDark.G + (g_sub * per)),
+ (int) (ThemeEngine.Current.ColorControlDark.B + (b_sub * per)));
+ return color;
+ }
+
int H, I, S;
- ControlPaint.Color2HBS(baseColor, out H, out I, out S);
- int NewIntensity = Math.Max(0, I - ((255*(int)percOfDarkDark) / 100));
+ ControlPaint.Color2HBS(baseColor, out H, out I, out S);
+ int PreIntensity = Math.Max (0, I - (int) (I * 0.333f));
+ int NewIntensity = Math.Max (0, PreIntensity - (int) (PreIntensity * per));
return ControlPaint.HBS2Color(H, NewIntensity, S);
}
- public static Color DarkDark(Color baseColor) {
- if (baseColor == ThemeEngine.Current.ColorButtonFace) {
- return ThemeEngine.Current.ColorButtonDkShadow;
- }
-
- return Dark(baseColor, 20.0f);
+ public static Color DarkDark(Color baseColor) {
+ return Dark(baseColor, 1.0f);
}
public static void DrawBorder(Graphics graphics, Rectangle bounds, Color color, ButtonBorderStyle style) {
- DrawBorder(graphics, bounds, color, 1, style, color, 1, style, color, 1, style, color, 1, style);
+ int line_width_top_left = 1;
+ int line_width_bottom_right = 1;
+
+ if (style == ButtonBorderStyle.Inset)
+ line_width_top_left = 2;
+ if (style == ButtonBorderStyle.Outset) {
+ line_width_bottom_right = 2;
+ line_width_top_left = 2;
+ }
+
+ DrawBorder(graphics, bounds, color, line_width_top_left, style, color, line_width_top_left, style, color, line_width_bottom_right, style, color, line_width_bottom_right, style);
}
public static void DrawBorder( Graphics graphics, Rectangle bounds, Color leftColor, int leftWidth,
public static void DrawBorder3D(Graphics graphics, Rectangle rectangle) {
- DrawBorder3D(graphics, rectangle, Border3DStyle.Etched, Border3DSide.All);
+ DrawBorder3D(graphics, rectangle, Border3DStyle.Etched, Border3DSide.Left | Border3DSide.Right | Border3DSide.Top | Border3DSide.Bottom);
}
public static void DrawBorder3D(Graphics graphics, Rectangle rectangle, Border3DStyle style) {
- DrawBorder3D(graphics, rectangle, style, Border3DSide.All);
+ DrawBorder3D(graphics, rectangle, style, Border3DSide.Left | Border3DSide.Right | Border3DSide.Top | Border3DSide.Bottom);
}
public static void DrawBorder3D(Graphics graphics, int x, int y, int width, int height) {
- DrawBorder3D(graphics, new Rectangle(x, y, width, height), Border3DStyle.Etched, Border3DSide.All);
+ DrawBorder3D(graphics, new Rectangle(x, y, width, height), Border3DStyle.Etched, Border3DSide.Left | Border3DSide.Right | Border3DSide.Top | Border3DSide.Bottom);
}
public static void DrawBorder3D(Graphics graphics, int x, int y, int width, int height, Border3DStyle style) {
- DrawBorder3D(graphics, new Rectangle(x, y, width, height), style, Border3DSide.All);
+ DrawBorder3D(graphics, new Rectangle(x, y, width, height), style, Border3DSide.Left | Border3DSide.Right | Border3DSide.Top | Border3DSide.Bottom);
}
public static void DrawBorder3D( Graphics graphics, int x, int y, int width, int height, Border3DStyle style,Border3DSide sides) {
public static void DrawMenuGlyph(Graphics graphics, Rectangle rectangle, MenuGlyph glyph) {
- ThemeEngine.Current.CPDrawMenuGlyph (graphics, rectangle, glyph);
+ ThemeEngine.Current.CPDrawMenuGlyph (graphics, rectangle, glyph, ThemeEngine.Current.ColorMenuText);
}
public static void DrawMenuGlyph(Graphics graphics, int x, int y, int width, int height, MenuGlyph glyph) {
ThemeEngine.Current.CPDrawRadioButton (graphics, rectangle, state);
}
- [MonoTODO("Figure out a good System.Drawing way for XOR drawing")]
- private static bool DRFNotImpl = false;
public static void DrawReversibleFrame(Rectangle rectangle, Color backColor, FrameStyle style) {
- if (!DRFNotImpl) {
- DRFNotImpl = true;
- Console.WriteLine("NOT IMPLEMENTED: FillReversibleRectangle(Rectangle rectangle, Color backColor)");
- }
- //throw new NotImplementedException();
+ XplatUI.DrawReversibleFrame (rectangle, backColor, style);
}
- [MonoTODO("Figure out a good System.Drawing way for XOR drawing")]
- private static bool DRLNotImpl = false;
public static void DrawReversibleLine(Point start, Point end, Color backColor) {
- if (!DRLNotImpl) {
- DRLNotImpl = true;
- Console.WriteLine("NOT IMPLEMENTED: FillReversibleRectangle(Rectangle rectangle, Color backColor)");
- }
- //throw new NotImplementedException();
+ XplatUI.DrawReversibleLine (start, end, backColor);
}
- [MonoTODO("Figure out a good System.Drawing way for XOR drawing")]
- private static bool FRRNotImpl = false;
public static void FillReversibleRectangle(Rectangle rectangle, Color backColor) {
- if (!FRRNotImpl) {
- FRRNotImpl = true;
- Console.WriteLine("NOT IMPLEMENTED: FillReversibleRectangle(Rectangle rectangle, Color backColor)");
- }
- //throw new NotImplementedException();
+ XplatUI.FillReversibleRectangle (rectangle, backColor);
}
-
public static void DrawScrollButton (Graphics graphics, int x, int y, int width, int height, ScrollButton button, ButtonState state) {
ThemeEngine.Current.CPDrawScrollButton (graphics, new Rectangle(x, y, width, height), button, state);
}