Author: jpobst
Date: 2007-07-16 14:07:00 -0400 (Mon, 16 Jul 2007)
New Revision: 82052

Modified:
   
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms.Theming/Default/ButtonPainter.cs
   
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms.Theming/Default/ChangeLog
Log:
2007-07-16  Jonathan Pobst  <[EMAIL PROTECTED]>

        * ButtonPainter.cs: For Flat button, if no mouse over / press
        backcolor is specified, calculate one from the normal backcolor.

Modified: 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms.Theming/Default/ButtonPainter.cs
===================================================================
--- 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms.Theming/Default/ButtonPainter.cs
 2007-07-16 17:31:29 UTC (rev 82051)
+++ 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms.Theming/Default/ButtonPainter.cs
 2007-07-16 18:07:00 UTC (rev 82052)
@@ -111,10 +111,14 @@
                                case ButtonThemeState.Entered:
                                        if (appearance.MouseOverBackColor != 
Color.Empty)
                                                g.FillRectangle 
(ResPool.GetSolidBrush (appearance.MouseOverBackColor), bounds);
+                                       else
+                                               g.FillRectangle 
(ResPool.GetSolidBrush (ChangeIntensity (backColor, .9F)), bounds);
                                        break;
                                case ButtonThemeState.Pressed:
                                        if (appearance.MouseDownBackColor != 
Color.Empty)
                                                g.FillRectangle 
(ResPool.GetSolidBrush (appearance.MouseDownBackColor), bounds);
+                                       else
+                                               g.FillRectangle 
(ResPool.GetSolidBrush (ChangeIntensity (backColor, .95F)), bounds);
                                        break;
                                case ButtonThemeState.Default:
                                        if (appearance.CheckedBackColor != 
Color.Empty)
@@ -175,5 +179,15 @@
                }
                #endregion
                #endregion
+               
+               private static Color ChangeIntensity (Color baseColor, float 
percent)
+               {
+                       int H, I, S;
+
+                       ControlPaint.Color2HBS (baseColor, out H, out I, out S);
+                       int NewIntensity = Math.Min (255, (int)(I * percent));
+
+                       return ControlPaint.HBS2Color (H, NewIntensity, S);     
                
+               }
        }
 }

Modified: 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms.Theming/Default/ChangeLog
===================================================================
--- 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms.Theming/Default/ChangeLog
        2007-07-16 17:31:29 UTC (rev 82051)
+++ 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms.Theming/Default/ChangeLog
        2007-07-16 18:07:00 UTC (rev 82052)
@@ -1,3 +1,8 @@
+2007-07-16  Jonathan Pobst  <[EMAIL PROTECTED]>
+
+       * ButtonPainter.cs: For Flat button, if no mouse over / press
+       backcolor is specified, calculate one from the normal backcolor.
+
 2007-07-12  Jonathan Pobst  <[EMAIL PROTECTED]>
 
        * ButtonPainter.cs: For Flat button, if BorderSize is 0, don't

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

Reply via email to