Author: toshok
Date: 2006-11-04 15:03:14 -0500 (Sat, 04 Nov 2006)
New Revision: 67363

Modified:
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Theme.cs
   
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ThemeWin32Classic.cs
Log:
        * Theme.cs: add a Clamp method, just for kicks.

        * ThemeWin32Classic.cs: clamp all color components to [0..255].

2006-11-04  Chris Toshok  <[EMAIL PROTECTED]>



Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog        
2006-11-04 18:28:41 UTC (rev 67362)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog        
2006-11-04 20:03:14 UTC (rev 67363)
@@ -1,5 +1,11 @@
 2006-11-04  Chris Toshok  <[EMAIL PROTECTED]>
 
+       * Theme.cs: add a Clamp method, just for kicks.
+
+       * ThemeWin32Classic.cs: clamp all color components to [0..255].
+
+2006-11-04  Chris Toshok  <[EMAIL PROTECTED]>
+
        * Form.cs: if the form isn't visible, Close() does nothing.
 
 2006-11-03  Chris Toshok  <[EMAIL PROTECTED]>

Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Theme.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Theme.cs 
2006-11-04 18:28:41 UTC (rev 67362)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Theme.cs 
2006-11-04 20:03:14 UTC (rev 67363)
@@ -527,7 +527,14 @@
                                return 16;
                        }
                }
-               
+
+               public int Clamp (int value, int lower, int upper)
+               {
+                       if (value < lower) return lower;
+                       else if (value > upper) return upper;
+                       else return value;
+               }
+
                [MonoTODO("Figure out where to point for My Network Places")]
                public virtual string Places(UIIcon index) {
                        switch (index) {

Modified: 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ThemeWin32Classic.cs
===================================================================
--- 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ThemeWin32Classic.cs 
    2006-11-04 18:28:41 UTC (rev 67362)
+++ 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ThemeWin32Classic.cs 
    2006-11-04 20:03:14 UTC (rev 67363)
@@ -4888,7 +4888,11 @@
                public override void CPDrawButton (Graphics dc, Rectangle 
rectangle, ButtonState state)
                {
                        // sadly enough, the rectangle gets always filled with 
a hatchbrush
-                       dc.FillRectangle (ResPool.GetHatchBrush 
(HatchStyle.Percent50, Color.FromArgb (ColorControl.R + 3, ColorControl.G, 
ColorControl.B), ColorControl), rectangle.X + 1, rectangle.Y + 1, 
rectangle.Width - 2, rectangle.Height - 2);
+                       dc.FillRectangle (ResPool.GetHatchBrush 
(HatchStyle.Percent50,
+                                                                Color.FromArgb 
(Clamp (ColorControl.R + 3, 0, 255),
+                                                                               
 ColorControl.G, ColorControl.B),
+                                                                ColorControl),
+                                         rectangle.X + 1, rectangle.Y + 1, 
rectangle.Width - 2, rectangle.Height - 2);
                        
                        if ((state & ButtonState.All) == ButtonState.All || 
((state & ButtonState.Checked) == ButtonState.Checked && (state & 
ButtonState.Flat) == ButtonState.Flat)) {
                                dc.FillRectangle (ResPool.GetHatchBrush 
(HatchStyle.Percent50, ColorControlLight, ColorControl), rectangle.X + 2, 
rectangle.Y + 2, rectangle.Width - 4, rectangle.Height - 4);
@@ -5029,7 +5033,10 @@
                                Rectangle rect = new Rectangle (x_pos, y_pos, 
check_box_visible_size, check_box_visible_size);
                                
                                if (((state & ButtonState.Pushed) == 
ButtonState.Pushed) || ((state & ButtonState.Inactive) == 
ButtonState.Inactive)) {
-                                       dc.FillRectangle (ResPool.GetHatchBrush 
(HatchStyle.Percent50, Color.FromArgb (ColorControl.R + 3, ColorControl.G, 
ColorControl.B), ColorControl), rect.X + 2, rect.Y + 2, rect.Width - 3, 
rect.Height - 3);
+                                       dc.FillRectangle (ResPool.GetHatchBrush 
(HatchStyle.Percent50,
+                                                                               
 Color.FromArgb (Clamp (ColorControl.R + 3, 0, 255),
+                                                                               
                 ColorControl.G, ColorControl.B),
+                                                                               
 ColorControl), rect.X + 2, rect.Y + 2, rect.Width - 3, rect.Height - 3);
                                } else
                                        dc.FillRectangle 
(SystemBrushes.ControlLightLight, rect.X + 2, rect.Y + 2, rect.Width - 3, 
rect.Height - 3);
                                
@@ -5046,7 +5053,9 @@
                                dc.DrawLine (pen, rect.X, rect.Bottom, 
rect.Right, rect.Bottom);
                                
                                // oh boy, matching ms is like fighting against 
windmills
-                               using (Pen h_pen = new Pen 
(ResPool.GetHatchBrush (HatchStyle.Percent50, Color.FromArgb (ColorControl.R + 
3, ColorControl.G, ColorControl.B), ColorControl))) {
+                               using (Pen h_pen = new Pen 
(ResPool.GetHatchBrush (HatchStyle.Percent50,
+                                                                               
   Color.FromArgb (Clamp (ColorControl.R + 3, 0, 255),
+                                                                               
                   ColorControl.G, ColorControl.B), ColorControl))) {
                                        dc.DrawLine (h_pen, rect.X + 1, 
rect.Bottom - 1, rect.Right - 1, rect.Bottom - 1);
                                        dc.DrawLine (h_pen, rect.Right - 1, 
rect.Y + 1, rect.Right - 1, rect.Bottom - 1);
                                }
@@ -5443,17 +5452,18 @@
                        Brush brush = null;
                        
                        if ((state & ButtonState.All) == ButtonState.All) {
-                               brush = ResPool.GetHatchBrush 
(HatchStyle.Percent50, Color.FromArgb (ColorControl.R + 3, ColorControl.G, 
ColorControl.B), ColorControl);
+                               brush = ResPool.GetHatchBrush 
(HatchStyle.Percent50, Color.FromArgb (Clamp (ColorControl.R + 3, 0, 255),
+                                                                               
                     ColorControl.G, ColorControl.B), ColorControl);
                                dot_color = cpcolor.Dark;
                        } else
                        if ((state & ButtonState.Flat) == ButtonState.Flat) {
                                if (((state & ButtonState.Inactive) == 
ButtonState.Inactive) || ((state & ButtonState.Pushed) == ButtonState.Pushed))
-                                       brush = ResPool.GetHatchBrush 
(HatchStyle.Percent50, Color.FromArgb (ColorControl.R + 3, ColorControl.G, 
ColorControl.B), ColorControl);
+                                       brush = ResPool.GetHatchBrush 
(HatchStyle.Percent50, Color.FromArgb (Clamp (ColorControl.R + 3, 0, 255), 
ColorControl.G, ColorControl.B), ColorControl);
                                else
                                        brush = SystemBrushes.ControlLightLight;
                        } else {
                                if (((state & ButtonState.Inactive) == 
ButtonState.Inactive) || ((state & ButtonState.Pushed) == ButtonState.Pushed))
-                                       brush = ResPool.GetHatchBrush 
(HatchStyle.Percent50, Color.FromArgb (ColorControl.R + 3, ColorControl.G, 
ColorControl.B), ColorControl);
+                                       brush = ResPool.GetHatchBrush 
(HatchStyle.Percent50, Color.FromArgb (Clamp (ColorControl.R + 3, 0, 255), 
ColorControl.G, ColorControl.B), ColorControl);
                                else
                                        brush = SystemBrushes.ControlLightLight;
                                
@@ -5477,7 +5487,7 @@
                        if (bottom_right_inner != Color.Transparent)
                                dc.DrawArc (ResPool.GetSizedPen 
(bottom_right_inner, line_width), Rectangle.Inflate (rb_rect, -line_width, 
-line_width), 315.0f, 180.0f);
                        else
-                               using (Pen h_pen = new Pen 
(ResPool.GetHatchBrush (HatchStyle.Percent50, Color.FromArgb (ColorControl.R + 
3, ColorControl.G, ColorControl.B), ColorControl), line_width)) {
+                               using (Pen h_pen = new Pen 
(ResPool.GetHatchBrush (HatchStyle.Percent50, Color.FromArgb (Clamp 
(ColorControl.R + 3, 0, 255), ColorControl.G, ColorControl.B), ColorControl), 
line_width)) {
                                        dc.DrawArc (h_pen, Rectangle.Inflate 
(rb_rect, -line_width, -line_width), 315.0f, 180.0f);
                                }
                        

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to