Fixes in DropDown arrows drawing operations
authorEveraldo Canuto <everaldo@mono-cvs.ximian.com>
Mon, 20 Nov 2006 23:20:19 +0000 (23:20 -0000)
committerEveraldo Canuto <everaldo@mono-cvs.ximian.com>
Mon, 20 Nov 2006 23:20:19 +0000 (23:20 -0000)
svn path=/trunk/mcs/; revision=68226

mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
mcs/class/Managed.Windows.Forms/System.Windows.Forms/ThemeWin32Classic.cs
mcs/class/Managed.Windows.Forms/System.Windows.Forms/ToolBarButton.cs

index af1b1772aef80f64368f53f4ef03c78effff0c1b..608edd869ddda98649dc49f12d2e0a228cb1508b 100644 (file)
@@ -1,3 +1,10 @@
+2006-11-20  Everaldo Canuto  <everaldo@simios.org>
+
+       * ToolButton.cs: Invalidate middle of DropDown button when
+       ToolBar theres DropDownArrows.
+       * ThemeWin32Classic.cs: Change position of DropDown arrow and
+       fix DropDown drawing operations.
+
 2006-11-20  Chris Toshok  <toshok@ximian.com>
 
        * NativeWindow.cs: fix the formatting of functions ('{' on the
index d4d6588be61ce72b65002859f2b455e4250be0c6..bea3da884a5e168ad90c6e4bb1baeac66cbda8b2 100644 (file)
@@ -4043,8 +4043,12 @@ namespace System.Windows.Forms
                                else 
                                        style = Border3DStyle.Raised;
                        }
+                       
+                       Rectangle rect = button.Rectangle;
+                       if ((button.Style == ToolBarButtonStyle.DropDownButton) && (button.Parent.DropDownArrows))
+                               rect.Width -= ToolBarDropDownWidth;
 
-                       CPDrawBorder3D (dc, button.Rectangle, style, all_sides);
+                       CPDrawBorder3D (dc, rect, style, all_sides);
                }
 
                protected virtual void DrawToolBarSeparator (Graphics dc, ToolBarButton button)
@@ -4076,20 +4080,19 @@ namespace System.Windows.Forms
                        Rectangle rect = button.Rectangle;
                        rect.X = button.Rectangle.Right - ToolBarDropDownWidth;
                        rect.Width = ToolBarDropDownWidth;
-
-                       if (button.dd_pressed) {
+                       
+                       if (button.dd_pressed || button.Pushed || button.Pressed) {
                                CPDrawBorder3D (dc, rect, Border3DStyle.SunkenOuter, all_sides);
-                               CPDrawBorder3D (dc, rect, Border3DStyle.SunkenInner, Border3DSide.Bottom | Border3DSide.Right);
-                       } else if (button.Pushed || button.Pressed)
-                               CPDrawBorder3D (dc, rect, Border3DStyle.Sunken, all_sides);
-                       else if (is_flat) {
+                               if (!is_flat)
+                                       CPDrawBorder3D (dc, rect, Border3DStyle.SunkenInner, Border3DSide.Bottom | Border3DSide.Right);
+                       }else if (is_flat) {
                                if (button.Hilight)
                                        CPDrawBorder3D (dc, rect, Border3DStyle.RaisedInner, all_sides);
                        } else
                                CPDrawBorder3D (dc, rect, Border3DStyle.Raised, all_sides);
 
                        PointF [] vertices = new PointF [3];
-                       PointF ddCenter = new PointF (rect.X + (rect.Width/2.0f), rect.Y + (rect.Height/2.0f));
+                       PointF ddCenter = new PointF (rect.X + (rect.Width/2.0f), rect.Y + (rect.Height/2.0f)-2);
                        vertices [0].X = ddCenter.X - ToolBarDropDownArrowWidth / 2.0f + 0.5f;
                        vertices [0].Y = ddCenter.Y;
                        vertices [1].X = ddCenter.X + ToolBarDropDownArrowWidth / 2.0f + 0.5f;
index 0eb0f64b2e1e6cc7fe80da7602fbf6a1aa00bd59..e2617569c5169d7a349c7e6dccbe35cc985c50ea 100644 (file)
@@ -407,6 +407,10 @@ namespace System.Windows.Forms
                                                                  Rectangle.Width + 4, 4));
                                Parent.Invalidate (new Rectangle (Rectangle.X + Rectangle.Width - 2, Rectangle.Y - 2,
                                                                  4, Rectangle.Height + 4));
+                                                                 
+                               if ((Style == ToolBarButtonStyle.DropDownButton) && Parent.DropDownArrows)                        
+                                       Parent.Invalidate (new Rectangle (Rectangle.Width - ThemeEngine.Current.ToolBarDropDownWidth - 2, 
+                                                                               Rectangle.Y - 2, 6, Rectangle.Height + 4));
                        }
                }