classpath-patches
[Top][All Lists]
Advanced

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

[cp-patches] FYI: more icons in MetalIconFactory


From: David Gilbert
Subject: [cp-patches] FYI: more icons in MetalIconFactory
Date: Thu, 25 Aug 2005 00:18:59 +0000
User-agent: Mozilla Thunderbird 1.0.6 (X11/20050728)

I implemented some more icons (the ones used for internal frames) in MetalIconFactory. This patch is committed:

2005-08-24  David Gilbert  <address@hidden>

        * javax/swing/plaf/metal/MetalIconFactory.java
        (InternalFrameCloseIcon): new private class,
        (InternalFrameAltMaximizeIcon): likewise,
        (InternalFrameMaximizeIcon): likewise,
        (InternalFrameMinimizeIcon): likewise,
        (getInternalFrameCloseIcon): implemented,
        (getInternalFrameMaximizeIcon): implemented,
        (getInternalFrameMinimizeIcon): implemented,
        (getInternalFrameAltMaximizeIcon): implemented.

Regards,

Dave Gilbert
Index: javax/swing/plaf/metal/MetalIconFactory.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/javax/swing/plaf/metal/MetalIconFactory.java,v
retrieving revision 1.5
diff -u -r1.5 MetalIconFactory.java
--- javax/swing/plaf/metal/MetalIconFactory.java        24 Aug 2005 09:00:32 
-0000      1.5
+++ javax/swing/plaf/metal/MetalIconFactory.java        24 Aug 2005 23:08:48 
-0000
@@ -49,6 +49,7 @@
 import javax.swing.JSlider;
 import javax.swing.plaf.UIResource;
 
+
 /**
  * Creates icons for the address@hidden MetalLookAndFeel}.
  */
@@ -409,6 +410,91 @@
   }
   
   /**
+   * An icon used for the 'close' button in the title frame of a 
+   * address@hidden JInternalFrame}.
+   */
+  private static class InternalFrameCloseIcon implements Icon, Serializable 
+  {
+    /** The icon size in pixels. */
+    private int size;
+    
+    /**
+     * Creates a new icon.
+     * 
+     * @param size  the icon size (width and height) in pixels.
+     */
+    public InternalFrameCloseIcon(int size) 
+    {
+      this.size = size;
+    }
+    
+    /**
+     * Returns the width of the icon, in pixels.
+     * 
+     * @return The width of the icon.
+     */
+    public int getIconWidth() 
+    {
+      return size;
+    }
+    
+    /**
+     * Returns the height of the icon, in pixels.
+     * 
+     * @return The height of the icon.
+     */
+    public int getIconHeight() 
+    {
+      return size;
+    }
+    
+    /**
+     * Paints the icon.
+     * 
+     * @param c  the component.
+     * @param g  the graphics device.
+     * @param x  the x-coordinate.
+     * @param y  the y-coordinate.
+     */
+    public void paintIcon(Component c, Graphics g, int x, int y) 
+    {
+      // draw the gray areas first
+      g.setColor(MetalLookAndFeel.getPrimaryControlDarkShadow());
+      g.drawLine(x + 1, y + 1, x + 13, y + 1);
+      g.drawLine(x + 1, y + 2, x + 1, y + 12);
+      g.drawLine(x + 1, y + 13, x + 13, y + 13);
+      g.drawLine(x + 13, y + 2, x + 13, y + 12);
+      
+      g.fillRect(x + 4, y + 4, 2, 2);
+      g.fillRect(x + 4, y + 9, 2, 2);
+      g.fillRect(x + 9, y + 4, 2, 2);
+      g.fillRect(x + 9, y + 9, 2, 2);
+      g.fillRect(x + 5, y + 5, 5, 5);
+      
+      g.setColor(MetalLookAndFeel.getBlack());
+      g.drawLine(x, y, x + 13, y);
+      g.drawLine(x, y + 1, x, y + 13);
+      g.drawLine(x + 3, y + 4, x + 4, y + 3);
+      g.drawLine(x + 3, y + 9, x + 5, y + 7);
+      g.drawLine(x + 7, y + 5, x + 9, y + 3);
+      
+      g.drawLine(x + 12, y + 3, x + 12, y + 11);
+      g.drawLine(x + 3, y + 12, x + 12, y + 12);
+      
+      g.setColor(MetalLookAndFeel.getWhite());
+      g.drawLine(x + 1, y + 14, x + 14, y + 14);
+      g.drawLine(x + 14, y + 1, x + 14, y + 14);
+      
+      g.drawLine(x + 5, y + 10, x + 5, y + 10);
+      g.drawLine(x + 6, y + 9, x + 7, y + 9);
+      g.drawLine(x + 10, y + 5, x + 10, y + 5);
+      g.drawLine(x + 9, y + 6, x + 9, y + 7);
+      g.drawLine(x + 10, y + 10, x + 11, y + 10);
+      g.drawLine(x + 10, y + 11, x + 10, y + 11);
+    }        
+  }
+
+  /**
    * The icon displayed at the top-left corner of a address@hidden 
JInternalFrame}.
    */
   private static class InternalFrameDefaultMenuIcon 
@@ -478,6 +564,293 @@
   }
 
   /**
+   * An icon used in the title frame of a address@hidden JInternalFrame}.  
When you 
+   * maximise an internal frame, this icon will replace the 'maximise' icon to
+   * provide a 'restore' option.
+   */
+  private static class InternalFrameAltMaximizeIcon 
+      implements Icon, Serializable 
+  {
+    /** The icon size in pixels. */
+    private int size;
+    
+    /**
+     * Creates a new icon.
+     * 
+     * @param size  the icon size in pixels.
+     */
+    public InternalFrameAltMaximizeIcon(int size) 
+    {
+      this.size = size;
+    }
+    
+    /**
+     * Returns the width of the icon, in pixels.
+     * 
+     * @return The width of the icon.
+     */
+    public int getIconWidth() 
+    {
+      return size;
+    }
+    
+    /**
+     * Returns the height of the icon, in pixels.
+     * 
+     * @return The height of the icon.
+     */
+    public int getIconHeight() 
+    {
+      return size;
+    }
+    
+    /**
+     * Paints the icon at the specified location.
+     * 
+     * @param c  the component.
+     * @param g  the graphics device.
+     * @param x  the x coordinate.
+     * @param y  the y coordinate.
+     */
+    public void paintIcon(Component c, Graphics g, int x, int y) 
+    {
+      Color color = MetalLookAndFeel.getControlDarkShadow();
+      if (c instanceof JInternalFrame)
+        {
+          JInternalFrame f = (JInternalFrame) c;
+          if (f.isSelected())
+            color = MetalLookAndFeel.getPrimaryControlShadow();
+        }
+      g.setColor(color);
+      g.drawLine(x + 12, y + 1, x + 13, y + 1);
+      g.drawLine(x + 11, y + 2, x + 12, y + 2);
+      g.drawLine(x + 10, y + 3, x + 11, y + 3);
+      g.drawLine(x + 8, y + 2, x + 8, y + 3);
+      g.fillRect(x + 8, y + 4, 3, 3);
+      g.drawLine(x + 11, y + 6, x + 12, y + 6);
+      
+      g.drawLine(x + 1, y + 5, x + 5, y + 5);
+      g.drawLine(x + 1, y + 6, x + 1, y + 12);
+      g.drawLine(x + 9, y + 9, x + 9, y + 12);
+      g.drawLine(x + 1, y + 13, x + 9, y + 13);
+      
+      g.drawLine(x + 2, y + 12, x + 2, y + 12);
+      
+      g.setColor(MetalLookAndFeel.getBlack());
+      g.drawLine(x + 12, y, x + 9, y + 3);
+      g.drawLine(x + 7, y + 1, x + 8, y + 1);
+      g.drawLine(x + 7, y + 2, x + 7, y + 6);
+      g.drawLine(x + 11, y + 5, x + 12, y + 5);
+      g.drawLine(x, y + 4, x + 5, y + 4);
+      g.drawLine(x, y + 5, x, y + 13);
+      g.drawLine(x + 3, y + 12, x + 8, y + 12);
+      g.drawLine(x + 8, y + 8, x + 8, y + 11);
+      g.drawLine(x + 9, y + 8, x + 9, y + 8);
+      
+      g.setColor(MetalLookAndFeel.getWhite());
+      g.drawLine(x + 9, y + 2, x + 9, y + 2);
+      g.drawLine(x + 11, y + 4, x + 13, y + 2);
+      g.drawLine(x + 13, y + 6, x + 13, y + 6);
+      g.drawLine(x + 8, y + 7, x + 13, y + 7);
+      g.drawLine(x + 6, y + 5, x + 6, y + 5);
+      g.drawLine(x + 2, y + 6, x + 6, y + 6);
+      g.drawLine(x + 2, y + 6, x + 2, y + 11);
+      g.drawLine(x + 10, y + 8, x + 10, y + 13);
+      g.drawLine(x + 1, y + 14, x + 10, y + 14);
+    }        
+  }
+  
+  /**
+   * An icon used for the 'maximize' button in the title frame of a 
+   * address@hidden JInternalFrame}.
+   */
+  private static class InternalFrameMaximizeIcon 
+      implements Icon, Serializable 
+  {
+    
+    /**
+     * Creates a new instance.
+     */
+    public InternalFrameMaximizeIcon() 
+    {
+    }
+    
+    /**
+     * Returns the width of the icon, in pixels.
+     * 
+     * @return The width of the icon.
+     */
+    public int getIconWidth() 
+    {
+      return 16;
+    }
+    
+    /**
+     * Returns the height of the icon, in pixels.
+     * 
+     * @return The height of the icon.
+     */
+    public int getIconHeight() 
+    {
+      return 16;
+    }
+    
+    /**
+     * Paints the icon at the specified location.
+     * 
+     * @param c  the component.
+     * @param g  the graphics device.
+     * @param x  the x coordinate.
+     * @param y  the y coordinate.
+     */
+    public void paintIcon(Component c, Graphics g, int x, int y) 
+    {
+      Color color = MetalLookAndFeel.getControlDarkShadow();
+      if (c instanceof JInternalFrame)
+        {
+          JInternalFrame f = (JInternalFrame) c;
+          if (f.isSelected())
+            color = MetalLookAndFeel.getPrimaryControlShadow();
+        }
+      g.setColor(color);
+      g.drawLine(x + 9, y + 1, x + 10, y + 1);
+      g.fillRect(x + 11, y + 1, 3, 3);
+      g.fillRect(x + 12, y + 4, 2, 2);
+      g.drawLine(x + 10, y + 3, x + 10, y + 3);
+      g.drawLine(x + 9, y + 4, x + 10, y + 4);
+      g.drawLine(x + 1, y + 5, x + 9, y + 5);
+      g.drawLine(x + 1, y + 6, x + 1, y + 12);
+      g.drawLine(x + 9, y + 6, x + 9, y + 12);
+      g.drawLine(x + 1, y + 13, x + 9, y + 13);
+      
+      // fill
+      g.drawLine(x + 7, y + 6, x + 8, y + 6);
+      g.drawLine(x + 6, y + 7, x + 8, y + 7);
+      g.drawLine(x + 5, y + 8, x + 6, y + 8);
+      g.drawLine(x + 4, y + 9, x + 5, y + 9);
+      g.drawLine(x + 3, y + 10, x + 4, y + 10);
+      g.drawLine(x + 2, y + 11, x + 3, y + 11);
+      g.drawLine(x + 2, y + 12, x + 4, y + 12);
+      g.drawLine(x + 8, y + 8, x + 8, y + 8);
+      
+      // draw black
+      g.setColor(MetalLookAndFeel.getBlack());
+      g.drawLine(x + 8, y, x + 13, y);
+      g.drawLine(x + 8, y + 1, x + 8, y + 1);
+      g.drawLine(x + 10, y + 2, x + 9, y + 3);
+      g.drawLine(x, y + 4, x + 8, y + 4);
+      g.drawLine(x, y + 5, x, y + 13);
+      
+      g.drawLine(x + 2, y + 10, x + 6, y + 6);
+      g.drawLine(x + 8, y + 9, x + 8, y + 11);
+      g.drawLine(x + 5, y + 12, x + 8, y + 12);
+      
+      // draw white
+      g.setColor(MetalLookAndFeel.getWhite());
+      g.drawLine(x + 2, y + 6, x + 5, y + 6);
+      g.drawLine(x + 2, y + 7, x + 2, y + 9);
+      g.drawLine(x + 4, y + 11, x + 7, y + 8);
+      
+      g.drawLine(x + 1, y + 14, x + 10, y + 14);
+      g.drawLine(x + 10, y + 5, x + 10, y + 13);
+      
+      g.drawLine(x + 9, y + 2, x + 9, y + 2);
+      g.drawLine(x + 11, y + 4, x + 11, y + 5);
+      g.drawLine(x + 13, y + 6, x + 14, y + 6);
+      g.drawLine(x + 14, y + 1, x + 14, y + 5);
+    }        
+  }
+
+  /**
+   * An icon used in the title frame of a address@hidden JInternalFrame}.
+   */
+  private static class InternalFrameMinimizeIcon 
+      implements Icon, Serializable 
+  {
+  
+    /**
+     * Creates a new instance.
+     */
+    public InternalFrameMinimizeIcon() 
+    {
+    }
+    
+    /**
+     * Returns the width of the icon, in pixels.
+     * 
+     * @return The width of the icon.
+     */
+    public int getIconWidth() 
+    {
+      return 16;
+    }
+    
+    /**
+     * Returns the height of the icon, in pixels.
+     * 
+     * @return The height of the icon.
+     */
+    public int getIconHeight() 
+    {
+      return 16;
+    }
+    
+    /**
+     * Paints the icon at the specified location.
+     * 
+     * @param c  the component.
+     * @param g  the graphics device.
+     * @param x  the x coordinate.
+     * @param y  the y coordinate.
+     */
+    public void paintIcon(Component c, Graphics g, int x, int y) 
+    {
+      Color color = MetalLookAndFeel.getControlDarkShadow();
+      if (c instanceof JInternalFrame)
+        {
+          JInternalFrame f = (JInternalFrame) c;
+          if (f.isSelected())
+            color = MetalLookAndFeel.getPrimaryControlShadow();
+        }
+      g.setColor(color);
+      g.drawLine(x + 12, y + 1, x + 13, y + 1);
+      g.drawLine(x + 11, y + 2, x + 12, y + 2);
+      g.drawLine(x + 10, y + 3, x + 11, y + 3);
+      g.drawLine(x + 8, y + 2, x + 8, y + 3);
+      g.fillRect(x + 8, y + 4, 3, 3);
+      g.drawLine(x + 11, y + 6, x + 12, y + 6);
+      
+      g.drawLine(x + 1, y + 8, x + 6, y + 8);
+      g.drawLine(x + 1, y + 9, x + 1, y + 12);
+      g.drawLine(x + 6, y + 9, x + 6, y + 12);
+      g.drawLine(x + 1, y + 13, x + 6, y + 13);
+      
+      g.drawLine(x + 5, y + 9, x + 5, y + 9);
+      g.drawLine(x + 2, y + 12, x + 2, y + 12);
+      
+      g.setColor(MetalLookAndFeel.getBlack());
+      g.drawLine(x + 12, y, x + 9, y + 3);
+      g.drawLine(x + 7, y + 1, x + 8, y + 1);
+      g.drawLine(x + 7, y + 2, x + 7, y + 6);
+      g.drawLine(x, y + 7, x + 6, y + 7);
+      g.drawLine(x, y + 8, x, y + 13);
+      g.drawLine(x + 3, y + 12, x + 5, y + 12);
+      g.drawLine(x + 5, y + 10, x + 5, y + 11);
+      g.drawLine(x + 11, y + 5, x + 12, y + 5);
+      
+      g.setColor(MetalLookAndFeel.getWhite());
+      g.drawLine(x + 9, y + 2, x + 9, y + 2);
+      g.drawLine(x + 11, y + 4, x + 13, y + 2);
+      g.drawLine(x + 13, y + 6, x + 13, y + 6);
+      g.drawLine(x + 8, y + 7, x + 13, y + 7);
+      g.drawLine(x + 2, y + 9, x + 4, y + 9);
+      g.drawLine(x + 2, y + 10, x + 2, y + 11);
+      g.drawLine(x + 7, y + 9, x + 7, y + 13);
+      g.drawLine(x + 1, y + 14, x + 7, y + 14);
+    }        
+  }
+
+  /**
    * The icon used to display the thumb control on a horizontally oriented
    * address@hidden JSlider} component.
    */
@@ -810,6 +1183,19 @@
   }
     
   /**
+   * Creates a new icon used to represent the 'close' button in the title
+   * pane of a address@hidden JInternalFrame}.
+   * 
+   * @param size  the icon size.
+   * 
+   * @return A close icon.
+   */
+  public static Icon getInternalFrameCloseIcon(int size) 
+  {
+    return new InternalFrameCloseIcon(size);
+  }
+
+  /**
    * Creates a new icon for the menu in a address@hidden JInternalFrame}.  
This is the
    * icon displayed at the top left of the frame.
    * 
@@ -819,7 +1205,49 @@
   {
     return new InternalFrameDefaultMenuIcon();
   }
+  
+  /**
+   * Creates a new icon for the 'maximize' button in a address@hidden 
JInternalFrame}.
+   * 
+   * @param size  the icon size in pixels.
+   * 
+   * @return The icon.
+   * 
+   * @see #getInternalFrameAltMaximizeIcon(int)
+   */
+  public static Icon getInternalFrameMaximizeIcon(int size) 
+  {
+    return new InternalFrameMaximizeIcon();
+  }
+    
+  /**
+   * Returns the icon used for the minimize button in the frame title for a
+   * address@hidden JInternalFrame}.
+   * 
+   * @param size  the icon size in pixels (ignored by this implementation).
+   * 
+   * @return The icon.
+   */
+  public static Icon getInternalFrameMinimizeIcon(int size) 
+  {
+    return new InternalFrameMinimizeIcon();
+  }
 
+  /**
+   * Creates a new icon for the 'restore' button in a address@hidden 
JInternalFrame}
+   * that has been maximised.
+   * 
+   * @param size  the icon size in pixels.
+   * 
+   * @return The icon.
+   * 
+   * @see #getInternalFrameMaximizeIcon(int)
+   */
+  public static Icon getInternalFrameAltMaximizeIcon(int size) 
+  {
+    return new InternalFrameAltMaximizeIcon(size);
+  }
+  
   /**
    * Returns the icon used to display the thumb for a vertically oriented
    * address@hidden JSlider}.

reply via email to

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