classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cp-patches] FYI: fixed thumb painting in BasicSliderUI


From: David Gilbert
Subject: [cp-patches] FYI: fixed thumb painting in BasicSliderUI
Date: Mon, 18 Jul 2005 16:02:38 +0000
User-agent: Mozilla Thunderbird 1.0.2 (X11/20050426)

I committed this patch - it fixes the painting of the thumb on sliders
using the Basic look and feel:

2005-07-18  David Gilbert  <address@hidden>

        * javax/swing/plaf/basic/BasicLookAndFeel.java
        (initComponentDefaults): changed Slider.thumbWidth.
        * javax/swing/plaf/basic/BasicSliderUI.java
        (paintThumb): fixed thumb painting.

Regards,

Dave Gilbert

Index: javax/swing/plaf/basic/BasicLookAndFeel.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicLookAndFeel.java,v
retrieving revision 1.36
diff -u -r1.36 BasicLookAndFeel.java
--- javax/swing/plaf/basic/BasicLookAndFeel.java        13 Jul 2005 21:23:51 
-0000      1.36
+++ javax/swing/plaf/basic/BasicLookAndFeel.java        18 Jul 2005 14:58:13 
-0000
@@ -748,7 +748,7 @@
       "Slider.highlight", new ColorUIResource(highLight),
       "Slider.shadow", new ColorUIResource(shadow),
       "Slider.thumbHeight", new Integer(20),
-      "Slider.thumbWidth", new Integer(10),
+      "Slider.thumbWidth", new Integer(11),
       "Slider.tickHeight", new Integer(12),
       "Spinner.background", new ColorUIResource(light),
       "Spinner.foreground", new ColorUIResource(light),
Index: javax/swing/plaf/basic/BasicSliderUI.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicSliderUI.java,v
retrieving revision 1.15
diff -u -r1.15 BasicSliderUI.java
--- javax/swing/plaf/basic/BasicSliderUI.java   2 Jul 2005 20:32:50 -0000       
1.15
+++ javax/swing/plaf/basic/BasicSliderUI.java   18 Jul 2005 14:58:16 -0000
@@ -1924,8 +1924,6 @@
   {
     Color saved_color = g.getColor();
 
-    Polygon thumb = new Polygon();
-
     Point a = new Point(thumbRect.x, thumbRect.y);
     Point b = new Point(a);
     Point c = new Point(a);
@@ -1933,7 +1931,8 @@
     Point e = new Point(a);
 
     Polygon bright;
-    Polygon dark;
+    Polygon light;  // light shadow
+    Polygon dark;   // dark shadow
     Polygon all;
 
     // This will be in X-dimension if the slider is inverted and y if it 
isn't.                  
@@ -1943,36 +1942,42 @@
       {
        turnPoint = thumbRect.height * 3 / 4;
 
-       b.translate(thumbRect.width, 0);
-       c.translate(thumbRect.width, turnPoint);
-       d.translate(thumbRect.width / 2, thumbRect.height);
+       b.translate(thumbRect.width - 1, 0);
+       c.translate(thumbRect.width - 1, turnPoint);
+       d.translate(thumbRect.width / 2 - 1, thumbRect.height - 1);
        e.translate(0, turnPoint);
 
-       bright = new Polygon(new int[] { b.x, a.x, e.x, d.x },
+       bright = new Polygon(new int[] { b.x - 1, a.x, e.x, d.x },
                             new int[] { b.y, a.y, e.y, d.y }, 4);
 
-       dark = new Polygon(new int[] { b.x, c.x, d.x },
-                          new int[] { b.y, c.y, d.y }, 3);
-       all = new Polygon(new int[] { a.x + 1, b.x, c.x, d.x, e.x + 1 },
-                         new int[] { a.y + 1, b.y + 1, c.y, d.y + 1, e.y }, 5);
+       dark = new Polygon(new int[] { b.x, c.x, d.x + 1 },
+                          new int[] { b.y, c.y - 1, d.y }, 3);
+    
+    light = new Polygon(new int[] { b.x - 1, c.x - 1, d.x + 1 },
+                        new int[] { b.y + 1, c.y - 1, d.y - 1 }, 3);
+    
+       all = new Polygon(new int[] { a.x + 1, b.x - 2, c.x - 2, d.x, e.x + 1 },
+                         new int[] { a.y + 1, b.y + 1, c.y - 1, d.y - 1, e.y 
}, 5);
       }
     else
       {
-       turnPoint = thumbRect.width * 3 / 4;
+       turnPoint = thumbRect.width * 3 / 4 - 1;
 
        b.translate(turnPoint, 0);
-       c.translate(thumbRect.width, thumbRect.height / 2);
-       d.translate(turnPoint, thumbRect.height);
-       e.translate(0, thumbRect.height);
+       c.translate(thumbRect.width - 1, thumbRect.height / 2);
+       d.translate(turnPoint, thumbRect.height - 1);
+       e.translate(0, thumbRect.height - 1);
 
-       bright = new Polygon(new int[] { c.x, b.x, a.x, e.x },
-                            new int[] { c.y, b.y, a.y, e.y }, 4);
+       bright = new Polygon(new int[] { c.x - 1, b.x, a.x, e.x },
+                            new int[] { c.y - 1, b.y, a.y, e.y - 1 }, 4);
 
-       dark = new Polygon(new int[] { c.x, d.x, e.x + 1 },
+       dark = new Polygon(new int[] { c.x, d.x, e.x },
                           new int[] { c.y, d.y, e.y }, 3);
 
-       all = new Polygon(new int[] { a.x + 1, b.x, c.x - 1, d.x, e.x + 1 },
-                         new int[] { a.y + 1, b.y + 1, c.y, d.y, e.y }, 5);
+    light = new Polygon(new int[] { c.x - 1, d.x, e.x + 1},
+                       new int[] { c.y, d.y - 1, e.y - 1}, 3);
+       all = new Polygon(new int[] { a.x + 1, b.x, c.x - 2, c.x - 2, d.x, e.x 
+ 1 },
+                         new int[] { a.y + 1, b.y + 1, c.y - 1, c.y, d.y - 2, 
e.y - 2 }, 6);
       }
 
     g.setColor(Color.WHITE);
@@ -1982,6 +1987,10 @@
     g.drawPolyline(dark.xpoints, dark.ypoints, dark.npoints);
 
     g.setColor(Color.GRAY);
+    g.drawPolyline(light.xpoints, light.ypoints, light.npoints);
+    
+    g.setColor(Color.LIGHT_GRAY);
+    g.drawPolyline(all.xpoints, all.ypoints, all.npoints);
     g.fillPolygon(all);
 
     g.setColor(saved_color);

reply via email to

[Prev in Thread] Current Thread [Next in Thread]