ToggleButtonModel.java: Remove dead class.
authorGraydon Hoare <graydon@redhat.com>
Thu, 12 Feb 2004 00:17:26 +0000 (00:17 +0000)
committerGraydon Hoare <graydon@gcc.gnu.org>
Thu, 12 Feb 2004 00:17:26 +0000 (00:17 +0000)
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

35 files changed:
libjava/ChangeLog
libjava/Makefile.am
libjava/Makefile.in
libjava/gnu/java/awt/peer/gtk/GdkGraphics2D.java
libjava/javax/swing/AbstractButton.java
libjava/javax/swing/DefaultButtonModel.java
libjava/javax/swing/JButton.java
libjava/javax/swing/JCheckBox.java
libjava/javax/swing/JComponent.java
libjava/javax/swing/JEditorPane.java
libjava/javax/swing/JFrame.java
libjava/javax/swing/JLabel.java
libjava/javax/swing/JList.java
libjava/javax/swing/JOptionPane.java
libjava/javax/swing/JPanel.java
libjava/javax/swing/JPasswordField.java
libjava/javax/swing/JRadioButton.java
libjava/javax/swing/JRootPane.java
libjava/javax/swing/JScrollPane.java
libjava/javax/swing/JTabbedPane.java
libjava/javax/swing/JToggleButton.java
libjava/javax/swing/JTree.java
libjava/javax/swing/JViewport.java
libjava/javax/swing/SwingUtilities.java
libjava/javax/swing/UIDefaults.java
libjava/javax/swing/plaf/basic/BasicButtonUI.java
libjava/javax/swing/plaf/basic/BasicCheckBoxUI.java
libjava/javax/swing/plaf/basic/BasicIconFactory.java
libjava/javax/swing/plaf/basic/BasicLookAndFeel.java
libjava/javax/swing/plaf/basic/BasicPanelUI.java
libjava/javax/swing/plaf/basic/BasicRadioButtonUI.java
libjava/javax/swing/plaf/basic/BasicToggleButtonUI.java
libjava/javax/swing/plaf/metal/MetalLookAndFeel.java
libjava/javax/swing/text/JTextComponent.java
libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c

index db67e406552fa371b13fb2207629ff5f2aaabf8b..b5b260bb3f561595436f6fcfbf169da011711368 100644 (file)
@@ -1,3 +1,90 @@
+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"
+
 2004-02-11  Michael Koch  <konqueror@gmx.de>
 
        * java/net/DatagramSocket.java
index 07c996511f0052173cef34fd10e2e4795cac5ad7..d99da5681aa96f47f05fa33056bb60f864c150cb 100644 (file)
@@ -1287,16 +1287,18 @@ javax/swing/border/TitledBorder.java \
 javax/swing/GrayFilter.java \
 javax/swing/AbstractAction.java \
 javax/swing/AbstractButton.java \
+javax/swing/plaf/basic/BasicButtonListener.java \
 javax/swing/plaf/basic/BasicButtonUI.java \
 javax/swing/plaf/basic/BasicCheckBoxUI.java \
-javax/swing/plaf/basic/BasicDefaults.java \
 javax/swing/plaf/basic/BasicGraphicsUtils.java \
 javax/swing/plaf/basic/BasicLabelUI.java \
 javax/swing/plaf/basic/BasicListUI.java \
 javax/swing/plaf/basic/BasicOptionPaneUI.java \
 javax/swing/plaf/basic/BasicPanelUI.java \
+javax/swing/plaf/basic/BasicRootPaneUI.java \
 javax/swing/plaf/basic/BasicRadioButtonUI.java \
 javax/swing/plaf/basic/BasicScrollPaneUI.java \
+javax/swing/plaf/basic/BasicSliderUI.java \
 javax/swing/plaf/basic/BasicSplitPaneDivider.java \
 javax/swing/plaf/basic/BasicSplitPaneUI.java \
 javax/swing/plaf/basic/BasicTabbedPaneUI.java \
@@ -1416,7 +1418,6 @@ javax/swing/Scrollable.java \
 javax/swing/SwingConstants.java \
 javax/swing/SwingUtilities.java \
 javax/swing/Timer.java \
-javax/swing/ToggleButtonModel.java \
 javax/swing/UIDefaults.java \
 javax/swing/UIManager.java \
 javax/swing/UnsupportedLookAndFeelException.java \
index 7c0ef87cc2b3fc200b8a66e8f0ca5881d154008b..4b0d034cd8b61bd3572c080f8d05be447967988d 100644 (file)
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
 
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -992,16 +992,18 @@ javax/swing/border/TitledBorder.java \
 javax/swing/GrayFilter.java \
 javax/swing/AbstractAction.java \
 javax/swing/AbstractButton.java \
+javax/swing/plaf/basic/BasicButtonListener.java \
 javax/swing/plaf/basic/BasicButtonUI.java \
 javax/swing/plaf/basic/BasicCheckBoxUI.java \
-javax/swing/plaf/basic/BasicDefaults.java \
 javax/swing/plaf/basic/BasicGraphicsUtils.java \
 javax/swing/plaf/basic/BasicLabelUI.java \
 javax/swing/plaf/basic/BasicListUI.java \
 javax/swing/plaf/basic/BasicOptionPaneUI.java \
 javax/swing/plaf/basic/BasicPanelUI.java \
+javax/swing/plaf/basic/BasicRootPaneUI.java \
 javax/swing/plaf/basic/BasicRadioButtonUI.java \
 javax/swing/plaf/basic/BasicScrollPaneUI.java \
+javax/swing/plaf/basic/BasicSliderUI.java \
 javax/swing/plaf/basic/BasicSplitPaneDivider.java \
 javax/swing/plaf/basic/BasicSplitPaneUI.java \
 javax/swing/plaf/basic/BasicTabbedPaneUI.java \
@@ -1121,7 +1123,6 @@ javax/swing/Scrollable.java \
 javax/swing/SwingConstants.java \
 javax/swing/SwingUtilities.java \
 javax/swing/Timer.java \
-javax/swing/ToggleButtonModel.java \
 javax/swing/UIDefaults.java \
 javax/swing/UIManager.java \
 javax/swing/UnsupportedLookAndFeelException.java \
@@ -2734,83 +2735,6 @@ org/w3c/dom/traversal/NodeFilter.lo \
 org/w3c/dom/traversal/NodeIterator.lo \
 org/w3c/dom/traversal/TreeWalker.lo
 lib_gnu_java_awt_peer_gtk_la_DEPENDENCIES = 
-@GTK_CAIRO_FALSE@lib_gnu_java_awt_peer_gtk_la_OBJECTS =  \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkClasspathFontPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkFontMetrics.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkGlyphVector.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkGraphics.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkGraphics2D.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkPixbufDecoder.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkArg.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkArgList.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkButtonPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkCanvasPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkCheckboxPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkChoicePeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkClipboard.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkComponentPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkContainerPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkDialogPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkFileDialogPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkFontPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkFramePeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkGenericPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkImage.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkImagePainter.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkLabelPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkListPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkMainThread.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkMenuBarPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkMenuComponentPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkMenuItemPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkMenuPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkOffScreenImage.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkPanelPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkPopupMenuPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkScrollPanePeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkScrollbarPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkTextAreaPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkTextComponentPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkTextFieldPeer.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkToolkit.lo \
-@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkWindowPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.lo \
-@GTK_CAIRO_FALSE@jni/gtk-peer/gthread-jni.lo jni/classpath/jcl.lo \
-@GTK_CAIRO_FALSE@jni/classpath/jnilink.lo jni/classpath/native_state.lo \
-@GTK_CAIRO_FALSE@jni/classpath/primlib.lo
 @GTK_CAIRO_TRUE@lib_gnu_java_awt_peer_gtk_la_OBJECTS =  \
 @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkClasspathFontPeer.lo \
 @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.lo \
@@ -2892,6 +2816,83 @@ lib_gnu_java_awt_peer_gtk_la_DEPENDENCIES =
 @GTK_CAIRO_TRUE@jni/gtk-peer/gthread-jni.lo jni/classpath/jcl.lo \
 @GTK_CAIRO_TRUE@jni/classpath/jnilink.lo jni/classpath/native_state.lo \
 @GTK_CAIRO_TRUE@jni/classpath/primlib.lo
+@GTK_CAIRO_FALSE@lib_gnu_java_awt_peer_gtk_la_OBJECTS =  \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkClasspathFontPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkFontMetrics.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkGlyphVector.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkGraphics.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkGraphics2D.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkPixbufDecoder.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkArg.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkArgList.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkButtonPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkCanvasPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkCheckboxPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkChoicePeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkClipboard.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkComponentPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkContainerPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkDialogPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkFileDialogPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkFontPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkFramePeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkGenericPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkImage.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkImagePainter.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkLabelPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkListPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkMainThread.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkMenuBarPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkMenuComponentPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkMenuItemPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkMenuPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkOffScreenImage.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkPanelPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkPopupMenuPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkScrollPanePeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkScrollbarPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkTextAreaPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkTextComponentPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkTextFieldPeer.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkToolkit.lo \
+@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkWindowPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.lo \
+@GTK_CAIRO_FALSE@jni/gtk-peer/gthread-jni.lo jni/classpath/jcl.lo \
+@GTK_CAIRO_FALSE@jni/classpath/jnilink.lo jni/classpath/native_state.lo \
+@GTK_CAIRO_FALSE@jni/classpath/primlib.lo
 lib_gnu_awt_xlib_la_OBJECTS =  gnu/gcj/xlib/natClip.lo \
 gnu/gcj/xlib/natColormap.lo gnu/gcj/xlib/natDisplay.lo \
 gnu/gcj/xlib/natDrawable.lo gnu/gcj/xlib/natFont.lo \
@@ -4368,9 +4369,8 @@ DEP_FILES =  .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
 .deps/javax/swing/SingleSelectionModel.P \
 .deps/javax/swing/SizeRequirements.P .deps/javax/swing/SizeSequence.P \
 .deps/javax/swing/SwingConstants.P .deps/javax/swing/SwingUtilities.P \
-.deps/javax/swing/Timer.P .deps/javax/swing/ToggleButtonModel.P \
-.deps/javax/swing/ToolTipManager.P .deps/javax/swing/UIDefaults.P \
-.deps/javax/swing/UIManager.P \
+.deps/javax/swing/Timer.P .deps/javax/swing/ToolTipManager.P \
+.deps/javax/swing/UIDefaults.P .deps/javax/swing/UIManager.P \
 .deps/javax/swing/UnsupportedLookAndFeelException.P \
 .deps/javax/swing/ViewportLayout.P .deps/javax/swing/WindowConstants.P \
 .deps/javax/swing/border/AbstractBorder.P \
@@ -4466,9 +4466,9 @@ DEP_FILES =  .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
 .deps/javax/swing/plaf/ToolTipUI.P .deps/javax/swing/plaf/TreeUI.P \
 .deps/javax/swing/plaf/UIResource.P .deps/javax/swing/plaf/ViewportUI.P \
 .deps/javax/swing/plaf/basic/BasicBorders.P \
+.deps/javax/swing/plaf/basic/BasicButtonListener.P \
 .deps/javax/swing/plaf/basic/BasicButtonUI.P \
 .deps/javax/swing/plaf/basic/BasicCheckBoxUI.P \
-.deps/javax/swing/plaf/basic/BasicDefaults.P \
 .deps/javax/swing/plaf/basic/BasicGraphicsUtils.P \
 .deps/javax/swing/plaf/basic/BasicIconFactory.P \
 .deps/javax/swing/plaf/basic/BasicLabelUI.P \
@@ -4477,7 +4477,9 @@ DEP_FILES =  .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
 .deps/javax/swing/plaf/basic/BasicOptionPaneUI.P \
 .deps/javax/swing/plaf/basic/BasicPanelUI.P \
 .deps/javax/swing/plaf/basic/BasicRadioButtonUI.P \
+.deps/javax/swing/plaf/basic/BasicRootPaneUI.P \
 .deps/javax/swing/plaf/basic/BasicScrollPaneUI.P \
+.deps/javax/swing/plaf/basic/BasicSliderUI.P \
 .deps/javax/swing/plaf/basic/BasicSplitPaneDivider.P \
 .deps/javax/swing/plaf/basic/BasicSplitPaneUI.P \
 .deps/javax/swing/plaf/basic/BasicTabbedPaneUI.P \
@@ -4652,8 +4654,7 @@ Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
          && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
 
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in  acinclude.m4 \
-               ./acinclude.m4 ./aclocal.m4 ./glib-2.0.m4 ./gtk-2.0.m4 \
-               ./libart.m4
+               ./acinclude.m4 ./aclocal.m4 ./pkg.m4
        cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
 
 config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -4887,7 +4888,7 @@ uninstall-toolexecmainlibDATA:
 all-recursive install-data-recursive install-exec-recursive \
 installdirs-recursive install-recursive uninstall-recursive  \
 check-recursive installcheck-recursive info-recursive dvi-recursive:
-       @set fnord $(MAKEFLAGS); amf=$$2; \
+       @set fnord $$MAKEFLAGS; amf=$$2; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
        list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -4907,11 +4908,11 @@ check-recursive installcheck-recursive info-recursive dvi-recursive:
 
 mostlyclean-recursive clean-recursive distclean-recursive \
 maintainer-clean-recursive:
-       @set fnord $(MAKEFLAGS); amf=$$2; \
+       @set fnord $$MAKEFLAGS; amf=$$2; \
        dot_seen=no; \
        rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
          rev="$$subdir $$rev"; \
-         test "$$subdir" = "." && dot_seen=yes; \
+         test "$$subdir" != "." || dot_seen=yes; \
        done; \
        test "$$dot_seen" = "no" && rev=". $$rev"; \
        target=`echo $@ | sed s/-recursive//`; \
index 72164292d30d7005ca8c88a4c8c91043dd2a07d1..e985696d9515cca27013b2327fa52c7d605c2a7f 100644 (file)
@@ -158,7 +158,7 @@ public class GdkGraphics2D extends Graphics2D
     setFont (new Font("SansSerif", Font.PLAIN, 12));
     setTransform (new AffineTransform ());
     setStroke (new BasicStroke ());
-    setRenderingHints (new HashMap ());
+    setRenderingHints (getDefaultHints());
 
     stateStack = new Stack();
   }
@@ -174,7 +174,7 @@ public class GdkGraphics2D extends Graphics2D
     setFont (new Font("SansSerif", Font.PLAIN, 12));
     setTransform (new AffineTransform ());
     setStroke (new BasicStroke ());
-    setRenderingHints (new HashMap ());
+    setRenderingHints (getDefaultHints());
 
     stateStack = new Stack ();
   }
index e9751fa78d6682bdf08632cae62288fa6cca68c1..12244b3133e19adf7c1d426fb7ec6b5de691cb77 100644 (file)
@@ -186,19 +186,19 @@ public abstract class AbstractButton extends JComponent
   String text;
 
   /** The vertical alignment of the button's text and icon. */
-  int vert_align = CENTER;
+  int vert_align;
 
   /** The horizontal alignment of the button's text and icon. */
-  int hori_align = CENTER;
+  int hori_align;
 
   /** The horizontal position of the button's text relative to its icon. */
-  int hori_text_pos = CENTER;
+  int hori_text_pos;
 
   /** The vertical position of the button's text relative to its icon. */
-  int vert_text_pos = CENTER;
+  int vert_text_pos;
 
   /** Whether or not the button paints its border. */
-  boolean paint_border = true;
+  boolean paint_border;
 
   /** Whether or not the button paints its focus state. */
   boolean paint_focus;
@@ -487,8 +487,16 @@ public abstract class AbstractButton extends JComponent
     model.addChangeListener(changeListener);
     model.addItemListener(itemListener);
 
+    hori_align = CENTER;
+    hori_text_pos = TRAILING;
+    vert_align = CENTER;
+    vert_text_pos = CENTER;
+    paint_border = true;
+    content_area_filled = true;
+
     setAlignmentX(LEFT_ALIGNMENT);
     setAlignmentY(CENTER_ALIGNMENT);
+
     addFocusListener(new ButtonFocusListener());
     updateUI();
   }
index 1997e6a1ff2b40f461dda8da9d0177e30b08a9c2..edffc39d6e51c04693dc41cc3bc4c4c128f036b2 100644 (file)
@@ -55,15 +55,23 @@ import javax.swing.event.EventListenerList;
  * button. The concrete button type holding this state may be a a "toggle"
  * button (checkbox, radio button) or a "push" button (menu button, button).
  * 
- * Any change to the model's properties will trigger the firing of a
- * ChangeEvent.
+ * If the model is disabled, only the "selected" property can be changed.
+ * An attempt to change the "armed", "rollover" or "pressed" properties 
+ * while the model is disabled will be blocked.
  *
- * Any change to the "pressed" property will trigger the firing of an
- * ItemEvent in addition to ChangeEvent.
+ * Any successful (non-blocked) change to the model's properties will
+ * trigger the firing of a ChangeEvent.
  *
- * Any change which causes the enabled, armed and pressed properties to
- * simultaneously become <code>true</code> will trigger the firing of an
- * ActionEvent in addition to the ChangeEvent.
+ * Any change to the "selected" property will trigger the firing of an
+ * ItemEvent in addition to ChangeEvent. This is true whether the model is
+ * enabled or not.
+ *
+ * One other state change is special: the transition from "enabled, armed
+ * and pressd" to "enabled, armed and not-pressed". This is considered the
+ * "trailing edge" of a successful mouse click, and therefore fires an 
+ * ActionEvent in addition to a ChangeEvent.
+ *
+ * In all other respects this class is just a container of boolean flags.
  *
  * @author Graydon Hoare (graydon&064;redhat.com)
  */
@@ -80,9 +88,9 @@ public class DefaultButtonModel implements ButtonModel, Serializable
    be pressed or selected unless they are enabled. */
   static int ENABLED = 2;
 
-  /** State constant indicating that the button has been fully
-   pressed. This usually happens when a user has released the mouse over a
-   previously "armed" button. */
+  /** State constant indicating that the user is holding down the button.
+   When this transitions from true to false, an ActionEvent may be fired,
+   depending on the value of the "armed" property.*/
   static int PRESSED = 4;
 
   /** State constant indicating that the mouse is currently positioned over
@@ -108,8 +116,8 @@ public class DefaultButtonModel implements ButtonModel, Serializable
 
   /** The group this model belongs to. Only one button in a group may be
       selected at any given time. */
-    ButtonGroup group;
-
+  ButtonGroup group;
+  
   /** The key code (one of {@link java.awt.event.KeyEvent} VK_*) used to
       press this button via a keyboard interface. */
   int mnemonic;
@@ -120,7 +128,8 @@ public class DefaultButtonModel implements ButtonModel, Serializable
 
   public DefaultButtonModel()
   {
-    stateMask = 0;
+    stateMask = ENABLED;
+    mnemonic = java.awt.event.KeyEvent.VK_UNDEFINED;
     listenerList = new EventListenerList();    
     changeEvent = new ChangeEvent(this);
   }
@@ -143,10 +152,10 @@ public class DefaultButtonModel implements ButtonModel, Serializable
    * @param l The listener to add
    */
   public void addActionListener(ActionListener l)
-           {
+  {
     listenerList.add(ActionListener.class, l);
-    }
-
+  }
+  
   /**
    * Remove an ActionListener to the model. Usually only called to
    * unsubscribe an AbstractButton's listener to the model.
@@ -262,13 +271,15 @@ public class DefaultButtonModel implements ButtonModel, Serializable
     if (oldstate == newstate)
       return;
 
+    if ((stateflag != SELECTED) 
+        && (stateflag != ENABLED)
+        && (stateMask & ENABLED) == 0)
+      return;
+
     stateMask = newstate;
 
     fireStateChanged(changeEvent);
 
-    if ((newstate & ENABLED) == 0)
-      return;
-
     if ((oldstate & SELECTED) == 0
         && (newstate & SELECTED) == SELECTED)
       fireItemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED, 
@@ -278,27 +289,26 @@ public class DefaultButtonModel implements ButtonModel, Serializable
              && (newstate & SELECTED) == 0)
       fireItemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED, 
                                          null, ItemEvent.DESELECTED));
-
-    else if ((newstate & ARMED) == ARMED
-             && (newstate & PRESSED) == PRESSED)
-           {
+    
+    else if (((oldstate & ARMED) == ARMED && (oldstate & PRESSED) == PRESSED)
+             &&
+             ((newstate & ARMED) == ARMED && (newstate & PRESSED) == 0))
+      {
         fireActionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED,
                                             actionCommand));
-        stateMask = stateMask & ~(PRESSED | ARMED);
-           }
-    
+      }
     }
-
+  
   /**
    * Get the value of the model's "armed" property.
    * 
    * @return The current "armed" property 
    */
   public boolean isArmed()
-           {
+  {
     return (stateMask & ARMED) == ARMED;
-    }
-
+  }
+  
   /**
    * Set the value of the model's "armed" property.
    *
@@ -396,7 +406,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable
    * @return The current "mnemonic" property
    */
   public int getMnemonic()
-    
+  { 
     return mnemonic;
   }
 
@@ -406,14 +416,14 @@ public class DefaultButtonModel implements ButtonModel, Serializable
    * @param key The new "mnemonic" property
    */
   public void setMnemonic(int key)
-           {
+  {
     if (mnemonic != key)
-                   {
+      {
         mnemonic = key;
         fireStateChanged(changeEvent);
-                   }
+      }
   }
-
+  
   /**
    * Set the value of the model's "actionCommand" property. This property
    * is used as the "command" property of the {@link ActionEvent} fired
@@ -422,14 +432,14 @@ public class DefaultButtonModel implements ButtonModel, Serializable
    * @param s The new "actionCommand" property.
    */
   public void setActionCommand(String s)
-                   {
+  {
     if (actionCommand != s)
       {
         actionCommand = s;
         fireStateChanged(changeEvent);
-                   }
-           
-
+      }
+  } 
+  
   /**
    * Set the value of the model's "actionCommand" property. This property
    * is used as the "command" property of the {@link ActionEvent} fired
@@ -438,7 +448,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable
    * @return The current "actionCommand" property
    */
   public String getActionCommand()
-           {
+  {
     return actionCommand;
   }
 
@@ -456,6 +466,6 @@ public class DefaultButtonModel implements ButtonModel, Serializable
       {
         group = g;
         fireStateChanged(changeEvent);
-           }
-    }
+      }
+  }
 }
index b3db389a70df5a6a2895134ef6fdf376ed07bd80..4ec9fd19ceea769d51a7c7d71108713d0e5f8f5e 100644 (file)
@@ -98,7 +98,7 @@ public class JButton extends AbstractButton implements Accessible
     public String getUIClassID()
     {
        //Returns a string that specifies the name of the L&F class that renders this component.  
-       return "JButton";
+       return "ButtonUI";
     }
   
     public boolean isDefaultButton()
index 4d2cee7e02bc7613e2b46fbdee222bfff802662a..b1a484d9a9b4c5abdcc80ac3734cdc45c3ef6bdf 100644 (file)
@@ -70,6 +70,8 @@ public class JCheckBox extends JToggleButton
     public JCheckBox(String text, Icon icon)
     {
        super(text, icon);
+        paint_border = false;
+        content_area_filled = false;
     }
 
     
@@ -82,7 +84,7 @@ public class JCheckBox extends JToggleButton
     public String getUIClassID()
     {
        //Returns a string that specifies the name of the L&F class that renders this component.  
-       return "JCheckBox";
+       return "CheckBoxUI";
     }
   
     protected  String paramString()
index fa41951973a2c59d802f0a81b6915a3a6f35217c..afe5700d13e82548eec7e16b3117a02f36d1b035 100644 (file)
@@ -763,9 +763,17 @@ public abstract class JComponent extends Container implements Serializable
                
                if (use_double_buffer)
                {
-                       im = createImage (r.width, r.height);
-                       g2 = im.getGraphics ();
-                       g2.clearRect (0, 0, r.width, r.height);
+                  im = createImage (r.width, r.height);
+                  g2 = im.getGraphics ();
+                  if (this.getBackground() != null)
+                    {
+                      Color save = g2.getColor();
+                      g2.setColor(this.getBackground());
+                      g2.fillRect (0, 0, r.width, r.height);
+                      g2.setColor(save);
+                    }
+                  else
+                    g2.clearRect(0, 0, r.width, r.height);
                }
                
                paintBorder(g2);
@@ -837,28 +845,6 @@ public abstract class JComponent extends Container implements Serializable
                //      Returns a string representation of this JComponent.
                return "JComponent";
        }
-       protected  void processComponentKeyEvent(KeyEvent e)
-       {
-               //     Process any key events that the component itself recognizes.
-           //System.out.println("COMP_KEY-EVENT: " + e);
-       }
-       protected  void processFocusEvent(FocusEvent e)
-       {
-               //      Processes focus events occurring on this component by dispatching them to any registered FocusListener objects.
-           //System.out.println("FOCUS_EVENT: " + e);
-       }
-
-       protected  void processKeyEvent(KeyEvent e)
-       {
-               //      Override processKeyEvent to process events protected
-           //System.out.println("KEY-EVENT: " + e);
-       }
-
-        public void processMouseMotionEvent(MouseEvent e)
-       {
-           //      Processes mouse motion events occurring on this component by dispatching them to any registered MouseMotionListener objects.
-           //System.out.println("COMP_MOUSE-EVENT: " + e + ", MEMORY = " + Runtime.getRuntime().freeMemory());
-       }
 
        public void registerKeyboardAction(ActionListener anAction,
                                    KeyStroke aKeyStroke,
@@ -1044,7 +1030,7 @@ public abstract class JComponent extends Container implements Serializable
         public String getUIClassID()
        {
                ///          Return the UIDefaults key used to look up the name of the swing.
-               return "JComponent";
+               return "ComponentUI";
        }
 
        protected void setUI(ComponentUI newUI)
index 273ed899ea35b54caf8e77d99c38eaa4dbccdefb..4722e1e1ebcf617caac31ccc44c294c022d75197 100644 (file)
@@ -137,7 +137,7 @@ public class JEditorPane extends JTextComponent
     { return super.getText();    }
     
     public String getUIClassID()
-    {    return "JEditorPane";  }
+    {    return "EditorPaneUI";  }
 
     public boolean isFocusCycleRoot()
     { return focus_root;    }
index cc93a87b6de136f2c4b78744a800246c7193b498..864f6bae4e0e0a13395d4fbae5db0156292f104d 100644 (file)
@@ -38,6 +38,7 @@ exception statement from your version. */
 
 package javax.swing;
 
+import java.awt.AWTEvent;
 import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.Container;
@@ -105,6 +106,7 @@ public class JFrame extends Frame
     protected  void frameInit()
     {
       super.setLayout(new BorderLayout(1, 1));
+      enableEvents(AWTEvent.WINDOW_EVENT_MASK);
       getRootPane(); // will do set/create
     }
   
@@ -201,9 +203,7 @@ public class JFrame extends Frame
 
     protected  void processWindowEvent(WindowEvent e)
     {
-       //      System.out.println("PROCESS_WIN_EV-1: " + e);
        super.processWindowEvent(e); 
-       //      System.out.println("PROCESS_WIN_EV-2: " + e);
        switch (e.getID())
            {
            case WindowEvent.WINDOW_CLOSING:
@@ -212,13 +212,11 @@ public class JFrame extends Frame
                        {
                        case EXIT_ON_CLOSE:
                            {
-                               System.out.println("user requested exit on close");
                                System.exit(1);
                                break;
                            }
                        case DISPOSE_ON_CLOSE:
                            {
-                               System.out.println("user requested dispose on close");
                                dispose();
                                break;
                            }
index 227fe644edb4dcebf3666f5fec6b7645ecf4811f..2d1c440ca2c7691781ec339a4797dabd9a8304f9 100644 (file)
@@ -148,7 +148,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
     {  return text;    }
 
     public String getUIClassID()
-    {  return "JLabel";    }
+    {  return "LabelUI";    }
 
     public int getVerticalAlignment()
     {
index 792a0f2b66f53ffafe5bc611d55efdd0aa6398c2..f87ce6201a94ec32a25c8e79e768201b7a27111b 100644 (file)
@@ -212,7 +212,7 @@ public class JList extends JComponent implements Accessible, Scrollable
 
     public String getUIClassID()
     {
-       return "JList";
+       return "ListUI";
     }
 
 
index 5dc10c7dc037b9764deaebc8e97447b2c1ca334c..2992d2441a52bb426737cf64851858ca6f0ded49 100644 (file)
@@ -161,7 +161,7 @@ public class JOptionPane extends JComponent
     {  return val;    }
 
     public String getUIClassID()
-    {  return "JOptionPane";    }
+    {  return "OptionPaneUI";    }
 
 
     public void setUI(OptionPaneUI ui) {
index 1916793ea500dab8dacd6f61cdc004714a5de11b..29abffc6ceef981f67275bd21d88b4bd96688c6c 100644 (file)
@@ -85,7 +85,7 @@ public class JPanel extends JComponent implements Accessible
     } 
 
     public String getUIClassID()
-    {  return "JPanel";    }
+    {  return "PanelUI";    }
 
 
     public void setUI(PanelUI ui) {
index 7e60004d7b13a97b33a7c6b1d12838ad6e797244..a67f33caffb718f7d901f70747c10ebedf996fd4 100644 (file)
@@ -102,7 +102,7 @@ public class JPasswordField extends JTextField {
        /**
         * uiClassID
         */
-       private static final String uiClassID = "PasswordFIeldUI";
+       private static final String uiClassID = "PasswordFieldUI";
 
        /**
         * echoChar.  Default is 0
index 14bfcebb1fd97d1211d612197d4d50cfb390b111..0f657300027510e3e31793426d3dc49a5d52749d 100644 (file)
@@ -65,6 +65,8 @@ public class JRadioButton extends JToggleButton
     public JRadioButton(String text, Icon icon)
     {
        super(text, icon);
+        paint_border = false;
+        content_area_filled = false;
     }
 
     
@@ -77,7 +79,7 @@ public class JRadioButton extends JToggleButton
     public String getUIClassID()
     {
        //Returns a string that specifies the name of the L&F class that renders this component.  
-       return "JRadioButton";
+       return "RadioButtonUI";
     }
   
     protected  String paramString()
index ccab07c13b1290400defa94043e2bc3fa7226c23..e7ec0bf806fffb3969e70d93dd8483497d5c3cf5 100644 (file)
@@ -75,7 +75,6 @@ public class JRootPane extends JComponent
       public Dimension preferredLayoutSize ( Container c )
        {           
          Dimension p = super.preferredLayoutSize(c);
-         System.out.println("              PREF-SIZE from RootLayout = " + p);
          return p;
        }        
     }
@@ -97,7 +96,7 @@ public class JRootPane extends JComponent
     /********************************************************/
 
     public String getUIClassID()
-    {  return "JPanel";    }
+    {  return "RootPaneUI";    }
 
     
     void setJMenuBar(JMenuBar m)
@@ -169,7 +168,7 @@ public class JRootPane extends JComponent
     JRootPane()
     {
        setLayout(createRootLayout());
-       
+       setBackground(UIManager.getColor("control"));
        getGlassPane();
        getLayeredPane();
        getContentPane();
index 33cdba127dc4d00bd4196d6c1607469599079e87..6a63be5f2e7a911eece7171548945287a892ebc8 100644 (file)
@@ -86,7 +86,7 @@ public class JScrollPane extends JComponent implements Accessible, ScrollPaneCon
     public String getUIClassID()
     {
        //Returns a string that specifies the name of the L&F class that renders this component.  
-       return "JScrollPane";
+       return "ScrollPaneUI";
     }
 
     public JViewport getViewport()
index 9264a76e9c54a3ddc785a10408a90f9c10af68ec..7373c50808e41e983ba3175f106aac3e8f125374 100644 (file)
@@ -102,7 +102,7 @@ public class JTabbedPane extends JComponent implements Accessible, SwingConstant
     }
     
     public String getUIClassID()
-    {  return "JTabbedPane";    }
+    {  return "TabbedPaneUI";    }
 
 
     public void setUI(TabbedPaneUI ui) {
index 1b05f3190c056138d8cbe7b7ad50800005f596f4..297bbc929feefb2a835b7c11f0931c745b6cf19f 100644 (file)
@@ -44,66 +44,83 @@ import javax.swing.plaf.ButtonUI;
 
 public class JToggleButton extends AbstractButton implements Accessible
 {
-    public JToggleButton()
-    {
-       this(null, null);
-    }
-    public JToggleButton(Action a)
-    {
-       this();
-       setAction(a);
-    }
 
-    public JToggleButton(Icon icon)
-    { 
-       this(null, icon);
-    }    
-  
-    public JToggleButton(String text)
+  public class ToggleButtonModel extends DefaultButtonModel
+  {
+    public void setPressed(boolean b)  
     {
-       this(text, null);
-    }
+      if (! isEnabled())
+        return;
       
-    public JToggleButton(String text, Icon icon)
-    {
-       this(text, icon, false);
+      super.setPressed(b);
+      
+      // setPressed(false) == mouse release on us,
+      // if we were armed, we flip the selected state.
+      if (!b && isArmed())
+        setSelected(! isSelected());
     }
+  }
+
+
+  public JToggleButton()
+  {
+    this(null, null);
+  }
+  public JToggleButton(Action a)
+  {
+    this();
+    setAction(a);
+  }
+
+  public JToggleButton(Icon icon)
+  { 
+    this(null, icon);
+  }    
+  
+  public JToggleButton(String text)
+  {
+    this(text, null);
+  }
+      
+  public JToggleButton(String text, Icon icon)
+  {
+    this(text, icon, false);
+  }
 
-    public JToggleButton (String text, Icon icon, boolean selected) 
-    {
-       super(text, icon);
+  public JToggleButton (String text, Icon icon, boolean selected) 
+  {
+    super(text, icon);
 
-        // Create the model
-        setModel(new ToggleButtonModel());
-       
-        model.setSelected(selected);
-    }
+    hori_align = LEADING;
+    setModel(new ToggleButtonModel()); 
+    model.setSelected(selected);
+  }
 
 
     
-    public AccessibleContext getAccessibleContext()
-    {
-       //Gets the AccessibleContext associated with this JToggleButton. 
-       return null;
-    }
+  public AccessibleContext getAccessibleContext()
+  {
+    //Gets the AccessibleContext associated with this JToggleButton. 
+    return null;
+  }
   
-    public String getUIClassID()
-    {
-       //Returns a string that specifies the name of the L&F class that renders this component.  
-       return "JToggleButton";
-    }
+  public String getUIClassID()
+  {
+    //Returns a string that specifies the name of the L&F class that renders this component.  
+    return "ToggleButtonUI";
+  }
   
-    protected  String paramString()
-    {
-       return "JToggleButton";
-    }
+  protected  String paramString()
+  {
+    return "JToggleButton";
+  }
   
   
-    public void updateUI()
-    {  
-       ButtonUI b = (ButtonUI)UIManager.getUI(this);
-       setUI(b);
-    }
+  public void updateUI()
+  {    
+    ButtonUI b = (ButtonUI)UIManager.getUI(this);
+    setUI(b);
+  }
 }
 
 
index 432612db8084773b94c90897804f3006f2853707..bdf519b911eba5616ff088c1a66e3e7d4de4a163 100644 (file)
@@ -83,7 +83,7 @@ public class JTree extends JComponent implements Scrollable, Accessible
     
     public String getUIClassID()
     {
-       return "JTree";
+       return "TreeUI";
     }
 
 
index 43ed91e688312ac680c1835c855af2717dbe9893..18365bcf9ec8fd4df44871c0024fe4ec443fd19f 100644 (file)
@@ -69,7 +69,7 @@ public class JViewport extends JComponent
 
     public String getUIClassID()
     {
-       return "JViewport";
+       return "ViewportUI";
     }
 
     public void updateUI()
index e226919eb3921f7693658a761d272800a059065c..590c3032fb72950caa4a57a12ed2ddb4cc2df027 100644 (file)
@@ -95,7 +95,9 @@ public class SwingUtilities implements SwingConstants
   /**
    * Calculates the portion of the component's bounds which is inside the
    * component's border insets. This area is usually the area a component
-   * should confine its painting to.
+   * should confine its painting to. The coordinates are returned in terms
+   * of the <em>component's</em> coordinate system, where (0,0) is the
+   * upper left corner of the component's bounds.
    *
    * @param c The component to measure the bounds of
    * @param r A Rectangle to store the return value in, or
@@ -108,7 +110,8 @@ public class SwingUtilities implements SwingConstants
    */
   public static Rectangle calculateInnerArea(JComponent c, Rectangle r)
   {
-    return calculateInsetArea(c.getBounds(), c.getInsets(), r);
+    Rectangle b = getLocalBounds(c);
+    return calculateInsetArea(b, c.getInsets(), r);
   }
 
   /**
@@ -123,7 +126,7 @@ public class SwingUtilities implements SwingConstants
   public static Rectangle getLocalBounds(Component aComponent)
   {
     Rectangle bounds = aComponent.getBounds();
-    return new Rectangle(0, 0, bounds.x, bounds.y);
+    return new Rectangle(0, 0, bounds.width, bounds.height);
   }
 
   /**
@@ -460,6 +463,7 @@ public class SwingUtilities implements SwingConstants
       ((JComponent)comp).updateUI();
   }
 
+
   /**
    * <p>Layout a "compound label" consisting of a text string and an icon
    * which is to be placed near the rendered text. Once the text and icon
@@ -472,9 +476,10 @@ public class SwingUtilities implements SwingConstants
    *
    * <p>The position values control where the text is placed relative to
    * the icon. The horizontal position value should be one of the constants
-   * <code>LEFT</code>, <code>RIGHT</code> or <code>CENTER</code>. The
-   * vertical position value should be one fo the constants
-   * <code>TOP</code>, <code>BOTTOM</code>, <code>CENTER</code>.</p>
+   * <code>LEADING</code>, <code>TRAILING</code>, <code>LEFT</code>,
+   * <code>RIGHT</code> or <code>CENTER</code>. The vertical position value
+   * should be one fo the constants <code>TOP</code>, <code>BOTTOM</code>
+   * or <code>CENTER</code>.</p>
    *
    * <p>The text-icon gap value controls the number of pixels between the
    * icon and the text.</p>
@@ -488,12 +493,12 @@ public class SwingUtilities implements SwingConstants
    * <code>CENTER</code>.</p>
    *
    * <p>If the <code>LEADING</code> or <code>TRAILING</code> constants are
-   * given for horizontal alignment, they are interpreted relative to the
-   * provided component's orientation property, a constant in the {@link
-   * java.awt.ComponentOrientation} class. For example, if the component's
-   * orientation is <code>LEFT_TO_RIGHT</code>, then the
-   * <code>LEADING</code> alignment is a synonym for <code>LEFT</code> and
-   * the <code>TRAILING</code> alignment is a synonym for
+   * given for horizontal alignment or horizontal text position, they are
+   * interpreted relative to the provided component's orientation property,
+   * a constant in the {@link java.awt.ComponentOrientation} class. For
+   * example, if the component's orientation is <code>LEFT_TO_RIGHT</code>,
+   * then the <code>LEADING</code> value is a synonym for <code>LEFT</code>
+   * and the <code>TRAILING</code> value is a synonym for
    * <code>RIGHT</code></p>
    *
    * <p>If the text and icon are equal to or larger than the view
@@ -523,6 +528,7 @@ public class SwingUtilities implements SwingConstants
    * @return The string of characters, possibly truncated with an elipsis,
    * which is laid out in this label
    */
+
   public static String layoutCompoundLabel(JComponent c, 
                                            FontMetrics fm,
                                            String text, 
@@ -537,6 +543,119 @@ public class SwingUtilities implements SwingConstants
                                            int textIconGap)
   {
 
+    // Fix up the orientation-based horizontal positions.
+
+    if (horizontalTextPosition == LEADING)
+      {
+        if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT)
+          horizontalTextPosition = RIGHT;
+        else
+          horizontalTextPosition = LEFT;
+      }
+    else if (horizontalTextPosition == TRAILING)
+      {
+        if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT)
+          horizontalTextPosition = LEFT;
+        else
+          horizontalTextPosition = RIGHT;
+      }
+
+    // Fix up the orientation-based alignments.
+
+    if (horizontalAlignment == LEADING)
+      {
+        if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT)
+          horizontalAlignment = RIGHT;
+        else
+          horizontalAlignment = LEFT;
+      }
+    else if (horizontalAlignment == TRAILING)
+      {
+        if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT)
+          horizontalAlignment = LEFT;
+        else
+          horizontalAlignment = RIGHT;
+      }
+    
+    return layoutCompoundLabel(fm, text, icon,
+                               verticalAlignment,
+                               horizontalAlignment,
+                               verticalTextPosition,
+                               horizontalTextPosition,
+                               viewR, iconR, textR, textIconGap);
+  }
+
+  /**
+   * <p>Layout a "compound label" consisting of a text string and an icon
+   * which is to be placed near the rendered text. Once the text and icon
+   * are laid out, the text rectangle and icon rectangle parameters are
+   * altered to store the calculated positions.</p>
+   *
+   * <p>The size of the text is calculated from the provided font metrics
+   * object.  This object should be the metrics of the font you intend to
+   * paint the label with.</p>
+   *
+   * <p>The position values control where the text is placed relative to
+   * the icon. The horizontal position value should be one of the constants
+   * <code>LEFT</code>, <code>RIGHT</code> or <code>CENTER</code>. The
+   * vertical position value should be one fo the constants
+   * <code>TOP</code>, <code>BOTTOM</code> or <code>CENTER</code>.</p>
+   *
+   * <p>The text-icon gap value controls the number of pixels between the
+   * icon and the text.</p>
+   *
+   * <p>The alignment values control where the text and icon are placed, as
+   * a combined unit, within the view rectangle. The horizontal alignment
+   * value should be one of the constants <code>LEFT</code>, <code>RIGHT</code> or
+   * <code>CENTER</code>. The vertical alignment valus should be one of the
+   * constants <code>TOP</code>, <code>BOTTOM</code> or
+   * <code>CENTER</code>.</p>
+   *
+   * <p>If the text and icon are equal to or larger than the view
+   * rectangle, the horizontal and vertical alignment values have no
+   * affect.</p>
+   *
+   * <p>Note that this method does <em>not</em> know how to deal with
+   * horizontal alignments or positions given as <code>LEADING</code> or
+   * <code>TRAILING</code> values. Use the other overloaded variant of this
+   * method if you wish to use such values.
+   *
+   * @param fm The font metrics used to measure the text
+   * @param text The text to place in the compound label
+   * @param icon The icon to place next to the text
+   * @param verticalAlignment The vertical alignment of the label relative
+   * to its component
+   * @param horizontalAlignment The horizontal alignment of the label
+   * relative to its component
+   * @param verticalTextPosition The vertical position of the label's text
+   * relative to its icon
+   * @param horizontalTextPosition The horizontal position of the label's
+   * text relative to its icon
+   * @param viewR The view rectangle, specifying the area which layout is
+   * constrained to
+   * @param iconR A rectangle which is modified to hold the laid-out
+   * position of the icon
+   * @param textR A rectangle which is modified to hold the laid-out
+   * position of the text
+   * @param textIconGap The distance between text and icon
+   *
+   * @return The string of characters, possibly truncated with an elipsis,
+   * which is laid out in this label
+   */
+
+  public static String layoutCompoundLabel(FontMetrics fm,
+                                           String text,
+                                           Icon icon,
+                                           int verticalAlignment,
+                                           int horizontalAlignment,
+                                           int verticalTextPosition,
+                                           int horizontalTextPosition,
+                                           Rectangle viewR,
+                                           Rectangle iconR,
+                                           Rectangle textR,
+                                           int textIconGap)
+  {
+
     // Work out basic height and width.
 
     if (icon == null)
@@ -545,7 +664,7 @@ public class SwingUtilities implements SwingConstants
         iconR.width = 0;
         iconR.height = 0;
       }
-      else
+    else
       {
         iconR.width = icon.getIconWidth();
         iconR.height = icon.getIconWidth();
@@ -591,23 +710,6 @@ public class SwingUtilities implements SwingConstants
         break;
       }
 
-    // Fix up the orientation-based alignments.
-
-    if (horizontalAlignment == LEADING)
-      {
-        if (c.getComponentOrientation() == ComponentOrientation.LEFT_TO_RIGHT)
-          horizontalAlignment = LEFT;
-        else if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT)
-          horizontalAlignment = RIGHT;
-      }
-    else if (horizontalAlignment == TRAILING)
-      {
-        if (c.getComponentOrientation() == ComponentOrientation.LEFT_TO_RIGHT)
-          horizontalAlignment = RIGHT;
-        else if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT)
-          horizontalAlignment = LEFT;
-      }
-
     // The two rectangles are laid out correctly now, but only assuming
     // that their upper left corner is at (0,0). If we have any alignment other
     // than TOP and LEFT, we need to adjust them.
index 9b91d10f55bf0778bc3294f41a53eacddc166d9b..722f922e194b0b61c074efc0b8dd4244ce0be5bc 100644 (file)
@@ -61,7 +61,7 @@ import javax.swing.plaf.ComponentUI;
 /**
  * UIDefaults is a database where all settings and interface bindings are
  * stored into. An PLAF implementation fills one of these (see for example
- * plaf/basic/BasicDefaults.java) with "JButton" -> new BasicButtonUI().
+ * plaf/basic/BasicLookAndFeel.java) with "ButtonUI" -> new BasicButtonUI().
  *
  * @author Ronald Veldema (rveldema@cs.vu.nl)
  */
index 3bcff944d9034f5aa831b9aa167f4f60bb89d6bb..7d59fc2467d44651a5b376536619b19067472ad5 100644 (file)
@@ -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());
-    
+  } 
 }
index 32eb1285ea83a90043a1bec530f0a27b63369855..0efc7ab35e69a080ef929dc25e72818c51fa2ffa 100644 (file)
@@ -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);
+  }  
 }
 
 
index 3a8adf3bf18377d76928012fd3095198aa62459f..39e86b6fbbc8d46c4a93471f427d1668eff59934 100644 (file)
@@ -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
index ff73edbc871e8a24bf2d94d53650a0264e02a123..901ea516e95c01cd58294ccd5fd186b81beca78b 100644 (file)
@@ -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",
index f4e1f5e057022d3de9a02ce273922f068c2bef53..7e72d730d205609c7ff384dbea62a8fb8619e3e0 100644 (file)
@@ -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);
     }
 }
index edf357edc905e31b3111df937fe7c366c509a7f1..15d2e7af932a661f6c3986a946eee3b244396f66 100644 (file)
@@ -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);
-    } 
 }
 
 
index f18d85c72e67558d2827e9dea3089e86cdb4fb36..c6b3bdb06708f4e61ee63c814f31b524bfae1640 100644 (file)
@@ -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);
-    } 
+    }    
 }
 
 
index 075c0b213e25d96297ba06c03c91ca66eb8e63e1..20becaf7ec8a47c4a7fabf984ccf2f7eb41085f3 100644 (file)
@@ -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;
index e53b20f2f706351a26d6130a0363f37ea55c7f01..e112cb42c62f7fe0db6e1244bec355e9e0c01ee1 100644 (file)
@@ -406,7 +406,7 @@ public abstract class JTextComponent extends JComponent
     public String getUIClassID()
     {
        //          Returns a string that specifies the name of the l&f class that renders this component.  
-       return "JTextComponent";
+       return "TextComponentUI";
     }
     public int getVerticalAlignment()
     {
index 713d594ccd78edc54a4a81aea4515de0b6c58f7b..d53a69ac8d4db972d72cb4d49ca602f28fd5f10d 100644 (file)
@@ -316,12 +316,24 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect
   (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height)
 {
   struct graphics *g;
+  GdkGCValues saved;
 
   g = (struct graphics *) NSA_GET_PTR (env, obj);
 
   gdk_threads_enter ();
-  gdk_window_clear_area ((GdkWindow *)g->drawable, 
-                        x + g->x_offset, y + g->y_offset, width, height);
+  if (GDK_IS_WINDOW (g->drawable))
+    {
+      gdk_window_clear_area ((GdkWindow *)g->drawable, 
+                            x + g->x_offset, y + g->y_offset, width, height);
+    }
+  else
+    {
+      gdk_gc_get_values (g->gc, &saved);
+      gdk_gc_set_foreground (g->gc, &(saved.background));
+      gdk_draw_rectangle (g->drawable, g->gc, TRUE, 
+                         x + g->x_offset, y + g->y_offset, width, height);
+      gdk_gc_set_foreground (g->gc, &(saved.foreground));
+    }
   gdk_threads_leave ();
 }