aboutsummaryrefslogtreecommitdiff
path: root/libjava/javax/swing/plaf
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@redhat.com>2004-02-12 00:17:26 +0000
committerGraydon Hoare <graydon@gcc.gnu.org>2004-02-12 00:17:26 +0000
commit9288d1120423d9743dd6b4c419f201c4749122f6 (patch)
treefcb9c2df4781981800f59c865ef83b1963ac0eff /libjava/javax/swing/plaf
parentfeec8922812c116dd9739928800e24ce06820f26 (diff)
downloadgcc-9288d1120423d9743dd6b4c419f201c4749122f6.zip
gcc-9288d1120423d9743dd6b4c419f201c4749122f6.tar.gz
gcc-9288d1120423d9743dd6b4c419f201c4749122f6.tar.bz2
ToggleButtonModel.java: Remove dead class.
2004-02-09 Graydon Hoare <graydon@redhat.com> * javax/swing/ToggleButtonModel.java: Remove dead class. * javax/swing/plaf/basic/BasicDefaults.java: Remove dead class. * javax/swing/plaf/basic/BasicButtonListener.java: New class. * javax/swing/plaf/basic/BasicRootPaneUI.java: New class. * Makefile.am: Update for new and removed files. * Makefile.in: Regenerate. * gnu/java/awt/peer/gtk/GdkGraphics2D.java: Initialize default hints. * javax/swing/AbstractButton.java (AbstractButton): Initialize fields correctly in ctor. * javax/swing/JCheckbox.java (JCheckBox): Override painting flags. * javax/swing/DefaultButtonModel.java: Conform to sun. * javax/swing/JComponent.java (paint): Fill with background color if available. (processComponentKeyEvent) (processFocusEvent) (processKeyEvent) (processMouseMotionEvent): Remove event-consuming empty methods. (getUIClassID): Return "ComponentUI" not "JComponent" * javax/swing/JFrame.java: Remove some debugging chatter. (JFrame): Subscribe to window events. * javax/swing/JRadioButton.java (JRadioButton): Override painting flags. * javax/swing/JRootPane.java (JRootPane): Set background from UIDefaults. * javax/swing/JToggleButton.java (ToggleButtonModel): New inner class. (JToggleButton): Override layout alighment. * javax/swing/SwingUtilities.java: (getLocalBounds): Return width and height, not x and y. (calculateInnerArea): Use local bounds, not bounds. (layoutCompoundLabel): Provide overridden form. (layoutCompoundLabel): Correct bugs. * javax/swing/UIDefaults.java: Correct comment. * javax/swing/plaf/basic/BasicButtonUI.java: Move most logic into defaults, external listener. (paintIcon): Implement icon painting. (paint): Fix state painting to conform to changes in model. * javax/swing/plaf/basic/BasicCheckBoxUI.java: Remove most dead/wrong methods. (getDefaultIcon): Return defaults.getIcon("CheckBox.icon"). * javax/swing/plaf/basic/BasicIconFactory.java: (DummyIcon): New class. (getMenuItemCheckIcon) (getMenuItemArrowIcon) (getMenuArrowIcon) (getCheckBoxMenuItemIcon) (getRadioButtonMenuItemIcon) (createEmptyFrameIcon): Return DummyIcons, not null. (getCheckBoxIcon): Implement an icon that looks like sun's. (getRadioButtonIcon): Implement an icon that looks like sun's. * javax/swing/plaf/basic/BasicLookAndFeel.java (initComponentDefaults): Fix impossible values, add some missing. * javax/swing/plaf/basic/BasicPanelUI.java (gap): Remove field. * javax/swing/plaf/basic/BasicRadioButtonUI.java: Remove most dead/wrong methods. (icon): New field. (getDefaultIcon): New method. * javax/swing/plaf/basic/BasicToggleButtonUI.java: Remove most dead/wrong methods. * javax/swing/plaf/metal/MetalLookAndFeel.java (getDefaults): Return super.getDefaults(), not BasicDefaults. * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect): Implement "clearing" as drawing, when on pixmap drawables. * javax/swing/JButton.java (getUIClassID): * javax/swing/JCheckBox.java (getUIClassID): * javax/swing/JEditorPane.java (getUIClassID): * javax/swing/JLabel.java (getUIClassID): * javax/swing/JList.java (getUIClassID): * javax/swing/JOptionPane.java (getUIClassID): * javax/swing/JPanel.java (getUIClassID): * javax/swing/JPasswordField.java (uiClassID): * javax/swing/JRadioButton.java (getUIClassID): * javax/swing/JRootPane.java (getUIClassID): * javax/swing/JScrollPane.java (getUIClassID): * javax/swing/JTabbedPane.java (getUIClassID): * javax/swing/JToggleButton.java (getUIClassID): * javax/swing/JTree.java (getUIClassID): * javax/swing/JViewport.java (getUIClassID): * javax/swing/text/JTextComponent.java (getUIClassID): Return "fooUI" not "Jfoo" From-SVN: r77686
Diffstat (limited to 'libjava/javax/swing/plaf')
-rw-r--r--libjava/javax/swing/plaf/basic/BasicButtonUI.java402
-rw-r--r--libjava/javax/swing/plaf/basic/BasicCheckBoxUI.java88
-rw-r--r--libjava/javax/swing/plaf/basic/BasicIconFactory.java140
-rw-r--r--libjava/javax/swing/plaf/basic/BasicLookAndFeel.java27
-rw-r--r--libjava/javax/swing/plaf/basic/BasicPanelUI.java4
-rw-r--r--libjava/javax/swing/plaf/basic/BasicRadioButtonUI.java130
-rw-r--r--libjava/javax/swing/plaf/basic/BasicToggleButtonUI.java67
-rw-r--r--libjava/javax/swing/plaf/metal/MetalLookAndFeel.java3
8 files changed, 380 insertions, 481 deletions
diff --git a/libjava/javax/swing/plaf/basic/BasicButtonUI.java b/libjava/javax/swing/plaf/basic/BasicButtonUI.java
index 3bcff94..7d59fc2 100644
--- a/libjava/javax/swing/plaf/basic/BasicButtonUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicButtonUI.java
@@ -47,14 +47,20 @@ import java.awt.Graphics2D;
import java.awt.Stroke;
import java.awt.Insets;
import java.awt.Rectangle;
+import java.awt.event.FocusListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.InputEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.AbstractButton;
+import javax.swing.ButtonModel;
+import javax.swing.Icon;
import javax.swing.JComponent;
import javax.swing.SwingUtilities;
+import javax.swing.UIDefaults;
+import javax.swing.UIManager;
+import javax.swing.event.MouseInputListener;
import javax.swing.plaf.ButtonUI;
import javax.swing.plaf.ComponentUI;
@@ -62,21 +68,11 @@ public class BasicButtonUI extends ButtonUI
{
/** A constant used to pad out elements in the button's layout and
preferred size calculations. */
- int gap = 3;
+ int defaultTextIconGap = 3;
- /** The color that text will be painted when the button is enabled */
- Color textColor;
-
- /** The color that text will be painted when the button is disabled */
- Color disabledTextColor;
-
- /** The color that the button's background will be painted when the
- button is pressed. */
- Color pressedBackgroundColor;
-
- /** The color that the button's background will be painted when the
- button is not pressed. */
- Color normalBackgroundColor;
+ /** A constant added to the defaultTextIconGap to adjust the text
+ within this particular button. */
+ int defaultTextShiftOffset = 0;
/**
* Factory method to create an instance of BasicButtonUI for a given
@@ -86,125 +82,65 @@ public class BasicButtonUI extends ButtonUI
*
* @return A new UI capable of drawing the component
*/
- public static ComponentUI createUI(final JComponent c)
- {
- return new BasicButtonUI();
- }
+ public static ComponentUI createUI(final JComponent c)
+ {
+ return new BasicButtonUI();
+ }
- /**
- * Helper class which listens to a button's focus events and disarms the
- * button's model when focus is lost.
- */
- private static class FocusUIListener extends FocusAdapter
+ public int getDefaultTextIconGap(AbstractButton b)
{
- /** Button to listen to focus events from */
- AbstractButton button;
-
- /**
- * Creates a new FocusUIListener object.
- *
- * @param b The button to listen to
- */
- FocusUIListener(AbstractButton b)
- {
- button = b;
- }
-
- /**
- * Called when the button loses focus.
- *
- * @param event The loss of focus event.
- */
- public void focusLost(FocusEvent event)
- {
- // System.err.println("ButtonUI :: lost focus -- disarming");
- button.getModel().setArmed(false);
- }
+ return defaultTextIconGap;
}
- /**
- * A helper class which interprets mouse events as
- * state changes to the button's underlying model.
- */
- private static class ButtonUIListener extends MouseAdapter
+ protected void installDefaults(AbstractButton b)
+ {
+ UIDefaults defaults = UIManager.getLookAndFeelDefaults();
+ b.setForeground(defaults.getColor("Button.foreground"));
+ b.setBackground(defaults.getColor("Button.background"));
+ b.setMargin(defaults.getInsets("Button.margin"));
+ b.setBorder(defaults.getBorder("Button.border"));
+ }
+
+ protected void uninstallDefaults(AbstractButton b)
+ {
+ b.setForeground(null);
+ b.setBackground(null);
+ b.setBorder(null);
+ b.setMargin(null);
+ }
+
+ protected BasicButtonListener listener;
+
+ protected BasicButtonListener createButtonListener(AbstractButton b)
+ {
+ return new BasicButtonListener();
+ }
+
+ public void installListeners(AbstractButton b)
+ {
+ listener = createButtonListener(b);
+ b.addChangeListener(listener);
+ b.addPropertyChangeListener(listener);
+ b.addFocusListener(listener);
+ b.addMouseListener(listener);
+ b.addMouseMotionListener(listener);
+ }
+
+ public void uninstallListeners(AbstractButton b)
+ {
+ b.removeChangeListener(listener);
+ b.removePropertyChangeListener(listener);
+ b.removeFocusListener(listener);
+ b.removeMouseListener(listener);
+ b.removeMouseMotionListener(listener);
+ }
+
+ protected void installKeyboardActions(AbstractButton b)
+ {
+ }
+
+ protected void uninstallKeyboardActions(AbstractButton b)
{
- /** The button to change the model of */
- AbstractButton button;
-
- /**
- * Creates a new ButtonUIListener object.
- *
- * @param b The button to change the model of
- */
- public ButtonUIListener(AbstractButton b)
- {
- button = b;
- }
-
- /**
- * Accept a mouse press event and arm the button's model.
- *
- * @param e The mouse press event to accept
- */
- public void mousePressed(MouseEvent e)
- {
- // System.err.println("ButtonUI :: mouse pressed");
- if ((e.getModifiers() & InputEvent.BUTTON1_MASK) != 0)
- {
- // System.err.println("ButtonUI :: arming");
- button.getModel().setArmed(true);
- }
- }
-
- /**
- * Accept a mouse enter event and set the button's model's
- * "rollover" property to <code>true</code>. If the button's
- * model is currently armed and the mouse button is not held
- * down, this enter event will also disarm the model.
- *
- * @param e The mouse enter event to accept
- */
- public void mouseEntered(MouseEvent e)
- {
- // System.err.println("ButtonUI :: mouse entered");
- // System.err.println("ButtonUI :: rolling over");
- button.getModel().setRollover(true);
- if (button.getModel().isArmed()
- && (e.getModifiers() & InputEvent.BUTTON1_MASK) == 0)
- {
- // System.err.println("ButtonUI :: no button pressed -- disarming");
- button.getModel().setArmed(false);
- }
- }
-
- /**
- * Accept a mouse exit event and set the button's model's
- * "rollover" property to <code>false</code>.
- *
- * @param e The mouse exit event to accept
- */
- public void mouseExited(MouseEvent e)
- {
- // System.err.println("ButtonUI :: mouse exited");
- button.getModel().setRollover(false);
- }
-
- /**
- * Accept a mouse release event and set the button's model's
- * "pressed" property to <code>true</code>, if the model
- * is armed. If the model is not armed, ignore the event.
- *
- * @param e The mouse release event to accept
- */
- public void mouseReleased(MouseEvent e)
- {
- // System.err.println("ButtonUI :: mouse released");
- if (button.getModel().isArmed()
- && (e.getModifiers() & InputEvent.BUTTON1_MASK) != 0)
- {
- button.getModel().setPressed(true);
- }
- }
}
/**
@@ -215,22 +151,16 @@ public class BasicButtonUI extends ButtonUI
*
* @param c The component to install the UI into
*/
- public void installUI(final JComponent c)
- {
- super.installUI(c);
-
- textColor = new Color(0,0,0);
- disabledTextColor = new Color(130, 130, 130);
- pressedBackgroundColor = new Color(150,150,150);
- pressedBackgroundColor = new Color(150,150,150);
- normalBackgroundColor = new Color(192,192,192);
-
- // this tells the border (if we have one) how to paint.
- c.setBackground(normalBackgroundColor);
- ((AbstractButton)c).setMargin (new Insets(10,10,10,10));
-
- c.addMouseListener(new ButtonUIListener((AbstractButton) c));
- c.addFocusListener(new FocusUIListener((AbstractButton) c));
+ public void installUI(final JComponent c)
+ {
+ super.installUI(c);
+ if (c instanceof AbstractButton)
+ {
+ AbstractButton b = (AbstractButton) c;
+ installDefaults(b);
+ installListeners(b);
+ installKeyboardActions(b);
+ }
}
/**
@@ -241,13 +171,45 @@ public class BasicButtonUI extends ButtonUI
*
* @return The preferred dimensions of the component
*/
- public Dimension getPreferredSize(JComponent c)
- {
- AbstractButton b = (AbstractButton)c;
- Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, gap);
- return d;
- }
-
+ public Dimension getPreferredSize(JComponent c)
+ {
+ AbstractButton b = (AbstractButton)c;
+ Dimension d =
+ BasicGraphicsUtils.getPreferredButtonSize
+ (b, defaultTextIconGap + defaultTextShiftOffset);
+ return d;
+ }
+
+ static private Icon currentIcon(AbstractButton b)
+ {
+ Icon i = b.getIcon();
+ ButtonModel model = b.getModel();
+
+ if (model.isPressed() && b.getPressedIcon() != null)
+ i = b.getPressedIcon();
+
+ else if (model.isRollover())
+ {
+ if (b.isSelected() && b.getRolloverSelectedIcon() != null)
+ i = b.getRolloverSelectedIcon();
+ else if (b.getRolloverIcon() != null)
+ i = b.getRolloverIcon();
+ }
+
+ else if (b.isSelected())
+ {
+ if (b.isEnabled() && b.getSelectedIcon() != null)
+ i = b.getSelectedIcon();
+ else if (b.getDisabledSelectedIcon() != null)
+ i = b.getDisabledSelectedIcon();
+ }
+
+ else if (! b.isEnabled() && b.getDisabledIcon() != null)
+ i = b.getDisabledIcon();
+
+ return i;
+ }
+
/**
* Paint the component, which is an {@link AbstractButton}, according to
* its current state.
@@ -255,52 +217,42 @@ public class BasicButtonUI extends ButtonUI
* @param g The graphics context to paint with
* @param c The component to paint the state of
*/
- public void paint(Graphics g, JComponent c)
- {
- AbstractButton b = (AbstractButton) c;
+ public void paint(Graphics g, JComponent c)
+ {
+ AbstractButton b = (AbstractButton) c;
- Rectangle tr = new Rectangle();
- Rectangle ir = new Rectangle();
- Rectangle vr = new Rectangle();
+ Rectangle tr = new Rectangle();
+ Rectangle ir = new Rectangle();
+ Rectangle vr = new Rectangle();
Rectangle br = new Rectangle();
- Font f = c.getFont();
-
- g.setFont(f);
-
- FontMetrics fm = g.getFontMetrics(f);
-
- Insets border = b.getInsets();
- Insets margin = b.getMargin();
-
- br.x = border.left;
- br.y = border.top;
- br.width = b.getWidth() - (border.right + border.left);
- br.height = b.getHeight() - (border.top + border.bottom);
-
- vr.x = br.x + margin.left;
- vr.y = br.y + margin.top;
- vr.width = br.width - (margin.right + margin.left);
- vr.height = br.height - (margin.top + margin.bottom);
-
- String text = SwingUtilities.layoutCompoundLabel(c, fm, b.getText(),
- b.getIcon(),
- b.getVerticalAlignment(),
- b.getHorizontalAlignment(),
- b.getVerticalTextPosition(),
- b.getHorizontalTextPosition(),
- vr, ir, tr, gap);
-
- if ((b.getModel().isRollover() && b.getModel().isArmed())
- || b.getModel().isSelected())
+ Font f = c.getFont();
+
+ g.setFont(f);
+
+ SwingUtilities.calculateInnerArea(b, br);
+ SwingUtilities.calculateInsetArea(br, b.getMargin(), vr);
+ String text = SwingUtilities.layoutCompoundLabel(c, g.getFontMetrics(f),
+ b.getText(),
+ currentIcon(b),
+ b.getVerticalAlignment(),
+ b.getHorizontalAlignment(),
+ b.getVerticalTextPosition(),
+ b.getHorizontalTextPosition(),
+ vr, ir, tr,
+ defaultTextIconGap
+ + defaultTextShiftOffset);
+
+ if ((b.getModel().isArmed() && b.getModel().isPressed())
+ || b.isSelected())
paintButtonPressed(g, br, c);
- else
+ else
paintButtonNormal(g, br, c);
- paintIcon(g, c, ir);
- paintText(g, c, tr, b.getText());
- paintFocus(g, c, vr, tr, ir);
- }
+ paintIcon(g, c, ir);
+ paintText(g, c, tr, b.getText());
+ paintFocus(g, c, vr, tr, ir);
+ }
/**
* Paint any focus decoration this {@link JComponent} might have. The
@@ -322,7 +274,7 @@ public class BasicButtonUI extends ButtonUI
{
AbstractButton b = (AbstractButton) c;
if (b.hasFocus() && b.isFocusPainted())
- {
+ {
Graphics2D g2 = (Graphics2D) g;
Stroke saved_stroke = g2.getStroke();
Color saved_color = g2.getColor();
@@ -340,7 +292,7 @@ public class BasicButtonUI extends ButtonUI
g2.setStroke(saved_stroke);
g2.setColor(saved_color);
}
- }
+ }
/**
* Paint the icon for this component. Depending on the state of the
@@ -352,15 +304,17 @@ public class BasicButtonUI extends ButtonUI
* @param iconRect Rectangle in which the icon should be painted
*/
protected void paintIcon(Graphics g, JComponent c, Rectangle iconRect)
- {
- AbstractButton b = (AbstractButton) c;
- if (b.getIcon() != null)
- {
- int x = iconRect.x;
- int y = iconRect.y;
- b.getIcon().paintIcon(c, g, x, y);
- }
- }
+ {
+ AbstractButton b = (AbstractButton) c;
+ Icon i = currentIcon(b);
+
+ if (i != null)
+ {
+ int x = iconRect.x;
+ int y = iconRect.y;
+ i.paintIcon(c, g, x, y);
+ }
+ }
/**
* Paints the background area of an {@link AbstractButton} in the pressed
@@ -372,12 +326,13 @@ public class BasicButtonUI extends ButtonUI
* @param b The component to paint the state of
*/
protected void paintButtonPressed(Graphics g, Rectangle area, JComponent b)
- {
- Dimension size = b.getSize();
-
- g.setColor(pressedBackgroundColor);
- g.fillRect(area.x, area.y, area.width, area.height);
- }
+ {
+ if (((AbstractButton)b).isContentAreaFilled())
+ {
+ g.setColor(b.getBackground().darker());
+ g.fillRect(area.x, area.y, area.width, area.height);
+ }
+ }
/**
* Paints the background area of an {@link AbstractButton} in the normal,
@@ -389,11 +344,13 @@ public class BasicButtonUI extends ButtonUI
* @param b The component to paint the state of
*/
protected void paintButtonNormal(Graphics g, Rectangle area, JComponent b)
- {
- Dimension size = b.getSize();
- g.setColor(normalBackgroundColor);
- g.fillRect(area.x, area.y, area.width, area.height);
- }
+ {
+ if (((AbstractButton)b).isContentAreaFilled())
+ {
+ g.setColor(b.getBackground());
+ g.fillRect(area.x, area.y, area.width, area.height);
+ }
+ }
/**
* Paints the "text" property of an {@link AbstractButton}, using the
@@ -405,15 +362,14 @@ public class BasicButtonUI extends ButtonUI
* @param text The text to paint
*/
protected void paintText(Graphics g, JComponent c, Rectangle textRect,
- String text)
- {
- Font f = c.getFont();
- g.setFont(f);
- FontMetrics fm = g.getFontMetrics(f);
- g.setColor(c.isEnabled() ? textColor : disabledTextColor);
- BasicGraphicsUtils.drawString(g, text,
- 0,
- textRect.x,
+ String text)
+ {
+ Font f = c.getFont();
+ g.setFont(f);
+ FontMetrics fm = g.getFontMetrics(f);
+ g.setColor(c.getForeground());
+ BasicGraphicsUtils.drawString(g, text, 0,
+ textRect.x,
textRect.y + fm.getAscent());
- }
+ }
}
diff --git a/libjava/javax/swing/plaf/basic/BasicCheckBoxUI.java b/libjava/javax/swing/plaf/basic/BasicCheckBoxUI.java
index 32eb128..0efc7ab 100644
--- a/libjava/javax/swing/plaf/basic/BasicCheckBoxUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicCheckBoxUI.java
@@ -38,82 +38,28 @@ exception statement from your version. */
package javax.swing.plaf.basic;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.Graphics;
-import java.awt.Rectangle;
-import javax.swing.AbstractButton;
+import javax.swing.Icon;
import javax.swing.JComponent;
+import javax.swing.UIDefaults;
+import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI;
public class BasicCheckBoxUI extends BasicRadioButtonUI
{
- public static ComponentUI createUI(final JComponent c) {
- return new BasicCheckBoxUI();
- }
-
-
- public void installUI(final JComponent c) {
- super.installUI(c);
- }
-
- public Dimension getPreferredSize(JComponent c)
- {
- AbstractButton b = (AbstractButton)c;
- Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, gap);
- //System.out.println("^^^^^^^^^^^^^^^^^^^^^^ BASIC-PREF="+d + ",T="+b.text);
- return d;
- }
-
- protected void paintFocus(Graphics g,
- JComponent c,
- Rectangle vr,
- Rectangle tr,
- Rectangle ir)
- {
- }
-
- protected void paintIcon(Graphics g,
- JComponent c,
- Rectangle iconRect)
- {
- }
-
- protected void paintButtonPressed(Graphics g,
- JComponent b)
- {
- Dimension size = b.getSize();
-
- g.setColor(pressedBackgroundColor);
- g.fillRect(1,1,size.width-2, size.height-2);
-
- }
-
- protected void paintButtonNormal(Graphics g,
- JComponent b)
- {
- Dimension size = b.getSize();
-
- g.setColor(normalBackgroundColor);
- g.fillRect(1,1,size.width-2, size.height-2);
-
- }
- protected void paintText(Graphics g,
- JComponent c,
- Rectangle textRect,
- String text)
- {
- // AbstractButton b = (AbstractButton) c;
-
- // System.out.println("drawing string: " + text + ", at:" + textRect);
-
- g.setColor(textColor);
- BasicGraphicsUtils.drawString(g,
- text,
- 0,
- textRect.x,
- textRect.y);
- }
+
+ public static ComponentUI createUI(final JComponent c) {
+ return new BasicCheckBoxUI();
+ }
+
+ public Icon getDefaultIcon()
+ {
+ UIDefaults defaults = UIManager.getLookAndFeelDefaults();
+ return defaults.getIcon("CheckBox.icon");
+ }
+
+ public void installUI(final JComponent c) {
+ super.installUI(c);
+ }
}
diff --git a/libjava/javax/swing/plaf/basic/BasicIconFactory.java b/libjava/javax/swing/plaf/basic/BasicIconFactory.java
index 3a8adf3..39e86b6 100644
--- a/libjava/javax/swing/plaf/basic/BasicIconFactory.java
+++ b/libjava/javax/swing/plaf/basic/BasicIconFactory.java
@@ -39,7 +39,14 @@ exception statement from your version. */
package javax.swing.plaf.basic;
import java.io.Serializable;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Graphics;
+import java.awt.Polygon;
+import javax.swing.AbstractButton;
import javax.swing.Icon;
+import javax.swing.UIDefaults;
+import javax.swing.UIManager;
/**
* STUBBED
*/
@@ -47,39 +54,156 @@ public class BasicIconFactory implements Serializable
{
static final long serialVersionUID = 5605588811185324383L;
+ static private class DummyIcon
+ implements Icon
+ {
+ public int getIconHeight() { return 10; }
+ public int getIconWidth() { return 10; }
+ public void paintIcon(Component c, Graphics g, int x, int y)
+ {
+ Color save = g.getColor();
+ g.setColor(c.getForeground());
+ g.drawRect(x, y, 10, 10);
+ g.setColor(save);
+ }
+ }
+
+
public BasicIconFactory()
{
}
public static Icon getMenuItemCheckIcon()
{
- return null;
+ return new DummyIcon();
}
public static Icon getMenuItemArrowIcon()
{
- return null;
+ return new DummyIcon();
}
public static Icon getMenuArrowIcon()
{
- return null;
+ return new DummyIcon();
}
+
public static Icon getCheckBoxIcon()
{
- return null;
+ return new Icon()
+ {
+ public int getIconHeight()
+ {
+ return 10;
+ }
+ public int getIconWidth()
+ {
+ return 10;
+ }
+ public void paintIcon(Component c, Graphics g, int x, int y)
+ {
+ if (c instanceof AbstractButton)
+ {
+ UIDefaults defaults;
+ defaults = UIManager.getLookAndFeelDefaults();
+ Color hi = defaults.getColor("CheckBox.highlight");
+ Color low = defaults.getColor("CheckBox.darkShadow");
+ Color sel = defaults.getColor("CheckBox.foreground");
+ Color dim = defaults.getColor("CheckBox.shadow");
+ Polygon check = new Polygon(new int[] {x+3, x+3, x+8},
+ new int[] {y+5, y+9, y+3}, 3);
+ AbstractButton b = (AbstractButton) c;
+ Color saved = g.getColor();
+ if (b.isEnabled())
+ {
+ g.setColor(low);
+ g.drawRect(x, y, 10, 10);
+ g.setColor(hi);
+ g.drawRect(x+1, y+1, 10, 10);
+ if (b.isSelected())
+ {
+ g.setColor(sel);
+ if (b.isSelected())
+ {
+ g.drawLine(x+3, y+5, x+3, y+8);
+ g.drawLine(x+4, y+5, x+4, y+8);
+ g.drawLine(x+3, y+8, x+8, y+3);
+ g.drawLine(x+4, y+8, x+8, y+3);
+ }
+ }
+ }
+ else
+ {
+ g.setColor(hi);
+ g.drawRect(x, y, 10, 10);
+ if (b.isSelected())
+ {
+ g.drawLine(x+3, y+5, x+3, y+9);
+ g.drawLine(x+3, y+9, x+8, y+3);
+ }
+ }
+ g.setColor(saved);
+ }
+ }
+ };
}
+
public static Icon getRadioButtonIcon()
{
- return null;
+ return new Icon()
+ {
+ public int getIconHeight()
+ {
+ return 12;
+ }
+ public int getIconWidth()
+ {
+ return 12;
+ }
+ public void paintIcon(Component c, Graphics g, int x, int y)
+ {
+ UIDefaults defaults;
+ defaults = UIManager.getLookAndFeelDefaults();
+ Color hi = defaults.getColor("RadioButton.highlight");
+ Color low = defaults.getColor("RadioButton.darkShadow");
+ Color sel = defaults.getColor("RadioButton.foreground");
+ Color dim = defaults.getColor("RadioButton.shadow");
+
+ if (c instanceof AbstractButton)
+ {
+ AbstractButton b = (AbstractButton) c;
+ Color saved = g.getColor();
+ if (b.isEnabled())
+ {
+ g.setColor(low);
+ g.drawOval(x, y, 12, 12);
+ g.setColor(hi);
+ g.drawOval(x+1, y+1, 12, 12);
+ if (b.isSelected())
+ {
+ g.setColor(sel);
+ g.fillOval(x+4, y+4, 6, 6);
+ }
+ }
+ else
+ {
+ g.setColor(hi);
+ g.drawOval(x, y, 12, 12);
+ if (b.isSelected())
+ g.fillOval(x+4, y+4, 6, 6);
+ }
+ g.setColor(saved);
+ }
+ }
+ };
}
public static Icon getCheckBoxMenuItemIcon()
{
- return null;
+ return new DummyIcon();
}
public static Icon getRadioButtonMenuItemIcon()
{
- return null;
+ return new DummyIcon();
}
public static Icon createEmptyFrameIcon()
{
- return null;
+ return new DummyIcon();
}
} // class BasicIconFactory
diff --git a/libjava/javax/swing/plaf/basic/BasicLookAndFeel.java b/libjava/javax/swing/plaf/basic/BasicLookAndFeel.java
index ff73edb..901ea51 100644
--- a/libjava/javax/swing/plaf/basic/BasicLookAndFeel.java
+++ b/libjava/javax/swing/plaf/basic/BasicLookAndFeel.java
@@ -227,29 +227,40 @@ public abstract class BasicLookAndFeel extends LookAndFeel
{
Object[] uiDefaults;
uiDefaults = new Object[] {
+
+ "AbstractUndoableEdit.undoText", "Undo",
+ "AbstractUndoableEdit.redoText", "Redo",
+
"Button.background", new ColorUIResource(Color.lightGray),
- "Button.border", new BorderUIResource.CompoundBorderUIResource(null,
- null),
+ "Button.border", BorderUIResource.getEtchedBorderUIResource(),
+ "Button.darkShadow", new ColorUIResource(Color.darkGray),
"Button.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
"SPACE", "pressed",
"released SPACE", "released"
}),
"Button.font", new FontUIResource("Dialog", Font.PLAIN, 12),
"Button.foreground", new ColorUIResource(Color.black),
+ "Button.highlight", new ColorUIResource(Color.white),
+ "Button.light", new ColorUIResource(Color.lightGray.brighter()),
"Button.margin", new InsetsUIResource(2, 14, 2, 14),
+ "Button.shadow", new ColorUIResource(Color.gray),
"Button.textIconGap", new Integer(4),
"Button.textShiftOffset", new Integer(0),
"CheckBox.background", new ColorUIResource(Color.lightGray),
"CheckBox.border", new BorderUIResource.CompoundBorderUIResource(null,
null),
+ "CheckBox.darkShadow", new ColorUIResource(Color.darkGray),
"CheckBox.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
"SPACE", "pressed",
"released SPACE", "released"
}),
"CheckBox.font", new FontUIResource("Dialog", Font.PLAIN, 12),
"CheckBox.foreground", new ColorUIResource(Color.black),
+ "CheckBox.highlight", new ColorUIResource(Color.white),
"CheckBox.icon", BasicIconFactory.getCheckBoxIcon(),
+ "CheckBox.light", new ColorUIResource(Color.lightGray.brighter()),
"CheckBox.margin",new InsetsUIResource(2, 2, 2, 2),
+ "CheckBox.shadow", new ColorUIResource(Color.gray),
"CheckBox.textIconGap", new Integer(4),
"CheckBox.textShiftOffset", new Integer(0),
"CheckBoxMenuItem.acceleratorFont", new FontUIResource("Dialog",
@@ -540,7 +551,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
"PopupMenu.font", new FontUIResource("Dialog", Font.PLAIN, 12),
"PopupMenu.foreground", new ColorUIResource(Color.black),
"ProgressBar.background", new ColorUIResource(Color.lightGray),
- "ProgressBar.border", new BorderUIResource.LineBorderUIResource(null),
+ "ProgressBar.border", new BorderUIResource.LineBorderUIResource(Color.darkGray),
"ProgressBar.cellLength", new Integer(1),
"ProgressBar.cellSpacing", new Integer(0),
"ProgressBar.font", new FontUIResource("Dialog", Font.PLAIN, 12),
@@ -550,14 +561,18 @@ public abstract class BasicLookAndFeel extends LookAndFeel
"RadioButton.background", new ColorUIResource(Color.lightGray),
"RadioButton.border", new BorderUIResource.CompoundBorderUIResource(null,
null),
+ "RadioButton.darkShadow", new ColorUIResource(Color.darkGray),
"RadioButton.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
"SPACE", "pressed",
"released SPACE", "released"
}),
"RadioButton.font", new FontUIResource("Dialog", Font.PLAIN, 12),
"RadioButton.foreground", new ColorUIResource(Color.black),
+ "RadioButton.highlight", new ColorUIResource(Color.white),
"RadioButton.icon", BasicIconFactory.getRadioButtonIcon(),
+ "RadioButton.light", new ColorUIResource(Color.lightGray.brighter()),
"RadioButton.margin", new InsetsUIResource(2, 2, 2, 2),
+ "RadioButton.shadow", new ColorUIResource(Color.gray),
"RadioButton.textIconGap", new Integer(4),
"RadioButton.textShiftOffset", new Integer(0),
"RadioButtonMenuItem.acceleratorFont", new FontUIResource("Dialog",
@@ -742,7 +757,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
"Table.background", new ColorUIResource(Color.white),
"Table.focusCellBackground", new ColorUIResource(Color.white),
"Table.focusCellForeground", new ColorUIResource(Color.black),
- "Table.focusCellHighlightBorder", new BorderUIResource.LineBorderUIResource(null),
+ "Table.focusCellHighlightBorder", new BorderUIResource.LineBorderUIResource(Color.white),
"Table.font", new FontUIResource("Dialog", Font.PLAIN, 12),
"Table.foreground", new ColorUIResource(Color.black),
"Table.gridColor", new ColorUIResource(Color.gray),
@@ -849,7 +864,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
"ToolBar.foreground", new ColorUIResource(Color.black),
"ToolBar.separatorSize", new DimensionUIResource(10, 10),
"ToolTip.background", new ColorUIResource(Color.white),
- "ToolTip.border", new BorderUIResource.LineBorderUIResource(null),
+ "ToolTip.border", new BorderUIResource.LineBorderUIResource(Color.lightGray),
"ToolTip.font", new FontUIResource("SansSerif", Font.PLAIN, 12),
"ToolTip.foreground", new ColorUIResource(Color.black),
"Tree.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
@@ -860,7 +875,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
// XXX Don't use gif
"Tree.closedIcon", new IconUIResource(new ImageIcon("icons/TreeClosed.gif")),
"Tree.drawsFocusBorderAroundIcon", Boolean.FALSE,
- "Tree.editorBorder", new BorderUIResource.LineBorderUIResource(null),
+ "Tree.editorBorder", new BorderUIResource.LineBorderUIResource(Color.lightGray),
"Tree.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
"shift PAGE_DOWN", "scrollDownExtendSelection",
"PAGE_DOWN", "scrollDownChangeSelection",
diff --git a/libjava/javax/swing/plaf/basic/BasicPanelUI.java b/libjava/javax/swing/plaf/basic/BasicPanelUI.java
index f4e1f5e..7e72d73 100644
--- a/libjava/javax/swing/plaf/basic/BasicPanelUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicPanelUI.java
@@ -44,8 +44,6 @@ import javax.swing.plaf.PanelUI;
public class BasicPanelUI extends PanelUI
{
- int gap = 3;
-
public static ComponentUI createUI(JComponent x)
{
return new BasicPanelUI();
@@ -53,6 +51,6 @@ public class BasicPanelUI extends PanelUI
public void installUI(JComponent c)
{
- super.installUI(c);
+ super.installUI(c);
}
}
diff --git a/libjava/javax/swing/plaf/basic/BasicRadioButtonUI.java b/libjava/javax/swing/plaf/basic/BasicRadioButtonUI.java
index edf357e..15d2e7a 100644
--- a/libjava/javax/swing/plaf/basic/BasicRadioButtonUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicRadioButtonUI.java
@@ -38,116 +38,42 @@ exception statement from your version. */
package javax.swing.plaf.basic;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.Graphics;
-import java.awt.Rectangle;
import javax.swing.AbstractButton;
+import javax.swing.Icon;
import javax.swing.JComponent;
+import javax.swing.UIDefaults;
+import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI;
public class BasicRadioButtonUI extends BasicToggleButtonUI
{
- int large_circle_width = 20;
- int circle_width = large_circle_width - 8; // FIXME: sun == ?
-
- public static ComponentUI createUI(final JComponent c) {
- return new BasicRadioButtonUI();
- }
+ protected Icon icon;
+
+ public static ComponentUI createUI(final JComponent c) {
+ return new BasicRadioButtonUI();
+ }
+
+ public BasicRadioButtonUI()
+ {
+ icon = getDefaultIcon();
+ }
+
+ public void installUI(final JComponent c) {
+ super.installUI(c);
+ if (c instanceof AbstractButton)
+ {
+ AbstractButton b = (AbstractButton) c;
+ b.setIcon(icon);
+ }
+ }
+
+ public Icon getDefaultIcon()
+ {
+ UIDefaults defaults = UIManager.getLookAndFeelDefaults();
+ return defaults.getIcon("RadioButton.icon");
+ }
- public void installUI(final JComponent c) {
- super.installUI(c);
- }
-
- public Dimension getPreferredSize(JComponent c)
- {
- AbstractButton b = (AbstractButton)c;
- Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, gap);
-
- // and add a little something for the circles:
-
- d.width += large_circle_width;
- d.height = Math.max(large_circle_width, d.height);
-
- //System.out.println("^^^^^^^^^^^^^^^^^^^^^^ BASIC-PREF="+d + ",T="+b.text);
- return d;
- }
-
- protected void paintFocus(Graphics g,
- JComponent c,
- Rectangle vr,
- Rectangle tr,
- Rectangle ir)
- {
- }
-
- protected void paintIcon(Graphics g,
- JComponent c,
- Rectangle iconRect)
- {
- }
-
- protected void paintButtonPressed(Graphics g,
- JComponent b)
- {
- Dimension size = b.getSize();
-
- paintButtonNormal(g, b);
-
- int x = gap;
- int y = gap;
-
- int diffp = 2;
- int diff = 3;
-
- g.setColor(textColor);
- g.fillArc(x+diffp, y+diffp,
- circle_width-diff, circle_width-diff,
- 0, 360);
- }
-
- protected void paintButtonNormal(Graphics g,
- JComponent c)
- {
- AbstractButton b = (AbstractButton) c;
-
- Dimension size = b.getSize();
-
- g.setColor(normalBackgroundColor);
- g.fillRect(1,1,size.width-2, size.height-2);
-
- int x = gap;
- int y = gap;
-
- g.setColor(pressedBackgroundColor);
- g.drawArc(x, y,
- circle_width, circle_width,
- 0, 360);
-
- g.setColor(new Color(255,255,255));
- g.drawArc(x, y,
- circle_width+1, circle_width+1,
- 145, 160);
- }
-
- protected void paintText(Graphics g,
- JComponent c,
- Rectangle textRect,
- String text)
- {
- // AbstractButton b = (AbstractButton) c;
-
- //System.out.println("drawing string: " + text + ", " + c.isEnabled());
-
- g.setColor(c.isEnabled() ? textColor : disabledTextColor);
-
- BasicGraphicsUtils.drawString(g,
- text,
- 0,
- textRect.x + circle_width + gap,
- textRect.y);
- }
}
diff --git a/libjava/javax/swing/plaf/basic/BasicToggleButtonUI.java b/libjava/javax/swing/plaf/basic/BasicToggleButtonUI.java
index f18d85c..c6b3bdb 100644
--- a/libjava/javax/swing/plaf/basic/BasicToggleButtonUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicToggleButtonUI.java
@@ -50,72 +50,7 @@ public class BasicToggleButtonUI extends BasicButtonUI
public static ComponentUI createUI(final JComponent c) {
return new BasicToggleButtonUI();
- }
-
-
- public void installUI(final JComponent c) {
- super.installUI(c);
- }
-
- public Dimension getPreferredSize(JComponent c)
- {
- AbstractButton b = (AbstractButton)c;
- Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, gap);
-
- //System.out.println("^^^^^^^^^^^^^^^^^^^^^^ BASIC-PREF="+d + ",T="+b.text);
- return d;
- }
-
- protected void paintFocus(Graphics g,
- JComponent c,
- Rectangle vr,
- Rectangle tr,
- Rectangle ir)
- {
- }
-
- protected void paintIcon(Graphics g,
- JComponent c,
- Rectangle iconRect)
- {
- }
-
- protected void paintButtonPressed(Graphics g,
- JComponent b)
- {
- Dimension size = b.getSize();
-
- g.setColor(pressedBackgroundColor);
- g.fillRect(1,1,size.width-2, size.height-2);
-
- }
-
- protected void paintButtonNormal(Graphics g,
- JComponent b)
- {
- Dimension size = b.getSize();
-
- g.setColor(normalBackgroundColor);
- g.fillRect(1,1,size.width-2, size.height-2);
-
- }
- protected void paintText(Graphics g,
- JComponent c,
- Rectangle textRect,
- String text)
- {
- // AbstractButton b = (AbstractButton) c;
-
- // System.out.println("drawing string: " + text + ", at:" + textRect);
-
- g.setColor(textColor);
-
- BasicGraphicsUtils.drawString(g,
- text,
- 0,
- textRect.x,
- textRect.y);
- }
+ }
}
diff --git a/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java b/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java
index 075c0b2..20becaf 100644
--- a/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java
+++ b/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java
@@ -40,7 +40,6 @@ exception statement from your version. */
package javax.swing.plaf.metal;
import javax.swing.UIDefaults;
-import javax.swing.plaf.basic.BasicDefaults;
import javax.swing.plaf.basic.BasicLookAndFeel;
public class MetalLookAndFeel extends BasicLookAndFeel
@@ -61,7 +60,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel
public UIDefaults getDefaults()
{
if (LAF_defaults == null)
- LAF_defaults = new BasicDefaults();
+ LAF_defaults = super.getDefaults();
// Returns the default values for this look and feel.
return LAF_defaults;