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