Commit 9288d112 by Graydon Hoare Committed by Graydon Hoare

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
parent feec8922
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> 2004-02-11 Michael Koch <konqueror@gmx.de>
* java/net/DatagramSocket.java * java/net/DatagramSocket.java
......
...@@ -1287,16 +1287,18 @@ javax/swing/border/TitledBorder.java \ ...@@ -1287,16 +1287,18 @@ javax/swing/border/TitledBorder.java \
javax/swing/GrayFilter.java \ javax/swing/GrayFilter.java \
javax/swing/AbstractAction.java \ javax/swing/AbstractAction.java \
javax/swing/AbstractButton.java \ javax/swing/AbstractButton.java \
javax/swing/plaf/basic/BasicButtonListener.java \
javax/swing/plaf/basic/BasicButtonUI.java \ javax/swing/plaf/basic/BasicButtonUI.java \
javax/swing/plaf/basic/BasicCheckBoxUI.java \ javax/swing/plaf/basic/BasicCheckBoxUI.java \
javax/swing/plaf/basic/BasicDefaults.java \
javax/swing/plaf/basic/BasicGraphicsUtils.java \ javax/swing/plaf/basic/BasicGraphicsUtils.java \
javax/swing/plaf/basic/BasicLabelUI.java \ javax/swing/plaf/basic/BasicLabelUI.java \
javax/swing/plaf/basic/BasicListUI.java \ javax/swing/plaf/basic/BasicListUI.java \
javax/swing/plaf/basic/BasicOptionPaneUI.java \ javax/swing/plaf/basic/BasicOptionPaneUI.java \
javax/swing/plaf/basic/BasicPanelUI.java \ javax/swing/plaf/basic/BasicPanelUI.java \
javax/swing/plaf/basic/BasicRootPaneUI.java \
javax/swing/plaf/basic/BasicRadioButtonUI.java \ javax/swing/plaf/basic/BasicRadioButtonUI.java \
javax/swing/plaf/basic/BasicScrollPaneUI.java \ javax/swing/plaf/basic/BasicScrollPaneUI.java \
javax/swing/plaf/basic/BasicSliderUI.java \
javax/swing/plaf/basic/BasicSplitPaneDivider.java \ javax/swing/plaf/basic/BasicSplitPaneDivider.java \
javax/swing/plaf/basic/BasicSplitPaneUI.java \ javax/swing/plaf/basic/BasicSplitPaneUI.java \
javax/swing/plaf/basic/BasicTabbedPaneUI.java \ javax/swing/plaf/basic/BasicTabbedPaneUI.java \
...@@ -1416,7 +1418,6 @@ javax/swing/Scrollable.java \ ...@@ -1416,7 +1418,6 @@ javax/swing/Scrollable.java \
javax/swing/SwingConstants.java \ javax/swing/SwingConstants.java \
javax/swing/SwingUtilities.java \ javax/swing/SwingUtilities.java \
javax/swing/Timer.java \ javax/swing/Timer.java \
javax/swing/ToggleButtonModel.java \
javax/swing/UIDefaults.java \ javax/swing/UIDefaults.java \
javax/swing/UIManager.java \ javax/swing/UIManager.java \
javax/swing/UnsupportedLookAndFeelException.java \ javax/swing/UnsupportedLookAndFeelException.java \
......
...@@ -158,7 +158,7 @@ public class GdkGraphics2D extends Graphics2D ...@@ -158,7 +158,7 @@ public class GdkGraphics2D extends Graphics2D
setFont (new Font("SansSerif", Font.PLAIN, 12)); setFont (new Font("SansSerif", Font.PLAIN, 12));
setTransform (new AffineTransform ()); setTransform (new AffineTransform ());
setStroke (new BasicStroke ()); setStroke (new BasicStroke ());
setRenderingHints (new HashMap ()); setRenderingHints (getDefaultHints());
stateStack = new Stack(); stateStack = new Stack();
} }
...@@ -174,7 +174,7 @@ public class GdkGraphics2D extends Graphics2D ...@@ -174,7 +174,7 @@ public class GdkGraphics2D extends Graphics2D
setFont (new Font("SansSerif", Font.PLAIN, 12)); setFont (new Font("SansSerif", Font.PLAIN, 12));
setTransform (new AffineTransform ()); setTransform (new AffineTransform ());
setStroke (new BasicStroke ()); setStroke (new BasicStroke ());
setRenderingHints (new HashMap ()); setRenderingHints (getDefaultHints());
stateStack = new Stack (); stateStack = new Stack ();
} }
......
...@@ -186,19 +186,19 @@ public abstract class AbstractButton extends JComponent ...@@ -186,19 +186,19 @@ public abstract class AbstractButton extends JComponent
String text; String text;
/** The vertical alignment of the button's text and icon. */ /** 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. */ /** 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. */ /** 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. */ /** 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. */ /** Whether or not the button paints its border. */
boolean paint_border = true; boolean paint_border;
/** Whether or not the button paints its focus state. */ /** Whether or not the button paints its focus state. */
boolean paint_focus; boolean paint_focus;
...@@ -487,8 +487,16 @@ public abstract class AbstractButton extends JComponent ...@@ -487,8 +487,16 @@ public abstract class AbstractButton extends JComponent
model.addChangeListener(changeListener); model.addChangeListener(changeListener);
model.addItemListener(itemListener); 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); setAlignmentX(LEFT_ALIGNMENT);
setAlignmentY(CENTER_ALIGNMENT); setAlignmentY(CENTER_ALIGNMENT);
addFocusListener(new ButtonFocusListener()); addFocusListener(new ButtonFocusListener());
updateUI(); updateUI();
} }
......
...@@ -55,15 +55,23 @@ import javax.swing.event.EventListenerList; ...@@ -55,15 +55,23 @@ import javax.swing.event.EventListenerList;
* button. The concrete button type holding this state may be a a "toggle" * button. The concrete button type holding this state may be a a "toggle"
* button (checkbox, radio button) or a "push" button (menu button, button). * button (checkbox, radio button) or a "push" button (menu button, button).
* *
* Any change to the model's properties will trigger the firing of a * If the model is disabled, only the "selected" property can be changed.
* ChangeEvent. * 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 * Any successful (non-blocked) change to the model's properties will
* ItemEvent in addition to ChangeEvent. * trigger the firing of a ChangeEvent.
* *
* Any change which causes the enabled, armed and pressed properties to * Any change to the "selected" property will trigger the firing of an
* simultaneously become <code>true</code> will trigger the firing of an * ItemEvent in addition to ChangeEvent. This is true whether the model is
* ActionEvent in addition to the ChangeEvent. * 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) * @author Graydon Hoare (graydon&064;redhat.com)
*/ */
...@@ -80,9 +88,9 @@ public class DefaultButtonModel implements ButtonModel, Serializable ...@@ -80,9 +88,9 @@ public class DefaultButtonModel implements ButtonModel, Serializable
be pressed or selected unless they are enabled. */ be pressed or selected unless they are enabled. */
static int ENABLED = 2; static int ENABLED = 2;
/** State constant indicating that the button has been fully /** State constant indicating that the user is holding down the button.
pressed. This usually happens when a user has released the mouse over a When this transitions from true to false, an ActionEvent may be fired,
previously "armed" button. */ depending on the value of the "armed" property.*/
static int PRESSED = 4; static int PRESSED = 4;
/** State constant indicating that the mouse is currently positioned over /** State constant indicating that the mouse is currently positioned over
...@@ -108,8 +116,8 @@ public class DefaultButtonModel implements ButtonModel, Serializable ...@@ -108,8 +116,8 @@ public class DefaultButtonModel implements ButtonModel, Serializable
/** The group this model belongs to. Only one button in a group may be /** The group this model belongs to. Only one button in a group may be
selected at any given time. */ selected at any given time. */
ButtonGroup group; ButtonGroup group;
/** The key code (one of {@link java.awt.event.KeyEvent} VK_*) used to /** The key code (one of {@link java.awt.event.KeyEvent} VK_*) used to
press this button via a keyboard interface. */ press this button via a keyboard interface. */
int mnemonic; int mnemonic;
...@@ -120,7 +128,8 @@ public class DefaultButtonModel implements ButtonModel, Serializable ...@@ -120,7 +128,8 @@ public class DefaultButtonModel implements ButtonModel, Serializable
public DefaultButtonModel() public DefaultButtonModel()
{ {
stateMask = 0; stateMask = ENABLED;
mnemonic = java.awt.event.KeyEvent.VK_UNDEFINED;
listenerList = new EventListenerList(); listenerList = new EventListenerList();
changeEvent = new ChangeEvent(this); changeEvent = new ChangeEvent(this);
} }
...@@ -143,10 +152,10 @@ public class DefaultButtonModel implements ButtonModel, Serializable ...@@ -143,10 +152,10 @@ public class DefaultButtonModel implements ButtonModel, Serializable
* @param l The listener to add * @param l The listener to add
*/ */
public void addActionListener(ActionListener l) public void addActionListener(ActionListener l)
{ {
listenerList.add(ActionListener.class, l); listenerList.add(ActionListener.class, l);
} }
/** /**
* Remove an ActionListener to the model. Usually only called to * Remove an ActionListener to the model. Usually only called to
* unsubscribe an AbstractButton's listener to the model. * unsubscribe an AbstractButton's listener to the model.
...@@ -262,13 +271,15 @@ public class DefaultButtonModel implements ButtonModel, Serializable ...@@ -262,13 +271,15 @@ public class DefaultButtonModel implements ButtonModel, Serializable
if (oldstate == newstate) if (oldstate == newstate)
return; return;
if ((stateflag != SELECTED)
&& (stateflag != ENABLED)
&& (stateMask & ENABLED) == 0)
return;
stateMask = newstate; stateMask = newstate;
fireStateChanged(changeEvent); fireStateChanged(changeEvent);
if ((newstate & ENABLED) == 0)
return;
if ((oldstate & SELECTED) == 0 if ((oldstate & SELECTED) == 0
&& (newstate & SELECTED) == SELECTED) && (newstate & SELECTED) == SELECTED)
fireItemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED, fireItemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED,
...@@ -278,27 +289,26 @@ public class DefaultButtonModel implements ButtonModel, Serializable ...@@ -278,27 +289,26 @@ public class DefaultButtonModel implements ButtonModel, Serializable
&& (newstate & SELECTED) == 0) && (newstate & SELECTED) == 0)
fireItemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED, fireItemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED,
null, ItemEvent.DESELECTED)); null, ItemEvent.DESELECTED));
else if ((newstate & ARMED) == ARMED else if (((oldstate & ARMED) == ARMED && (oldstate & PRESSED) == PRESSED)
&& (newstate & PRESSED) == PRESSED) &&
{ ((newstate & ARMED) == ARMED && (newstate & PRESSED) == 0))
{
fireActionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, fireActionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED,
actionCommand)); actionCommand));
stateMask = stateMask & ~(PRESSED | ARMED); }
}
} }
/** /**
* Get the value of the model's "armed" property. * Get the value of the model's "armed" property.
* *
* @return The current "armed" property * @return The current "armed" property
*/ */
public boolean isArmed() public boolean isArmed()
{ {
return (stateMask & ARMED) == ARMED; return (stateMask & ARMED) == ARMED;
} }
/** /**
* Set the value of the model's "armed" property. * Set the value of the model's "armed" property.
* *
...@@ -396,7 +406,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable ...@@ -396,7 +406,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable
* @return The current "mnemonic" property * @return The current "mnemonic" property
*/ */
public int getMnemonic() public int getMnemonic()
{ {
return mnemonic; return mnemonic;
} }
...@@ -406,14 +416,14 @@ public class DefaultButtonModel implements ButtonModel, Serializable ...@@ -406,14 +416,14 @@ public class DefaultButtonModel implements ButtonModel, Serializable
* @param key The new "mnemonic" property * @param key The new "mnemonic" property
*/ */
public void setMnemonic(int key) public void setMnemonic(int key)
{ {
if (mnemonic != key) if (mnemonic != key)
{ {
mnemonic = key; mnemonic = key;
fireStateChanged(changeEvent); fireStateChanged(changeEvent);
} }
} }
/** /**
* Set the value of the model's "actionCommand" property. This property * Set the value of the model's "actionCommand" property. This property
* is used as the "command" property of the {@link ActionEvent} fired * is used as the "command" property of the {@link ActionEvent} fired
...@@ -422,14 +432,14 @@ public class DefaultButtonModel implements ButtonModel, Serializable ...@@ -422,14 +432,14 @@ public class DefaultButtonModel implements ButtonModel, Serializable
* @param s The new "actionCommand" property. * @param s The new "actionCommand" property.
*/ */
public void setActionCommand(String s) public void setActionCommand(String s)
{ {
if (actionCommand != s) if (actionCommand != s)
{ {
actionCommand = s; actionCommand = s;
fireStateChanged(changeEvent); fireStateChanged(changeEvent);
} }
} }
/** /**
* Set the value of the model's "actionCommand" property. This property * Set the value of the model's "actionCommand" property. This property
* is used as the "command" property of the {@link ActionEvent} fired * is used as the "command" property of the {@link ActionEvent} fired
...@@ -438,7 +448,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable ...@@ -438,7 +448,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable
* @return The current "actionCommand" property * @return The current "actionCommand" property
*/ */
public String getActionCommand() public String getActionCommand()
{ {
return actionCommand; return actionCommand;
} }
...@@ -456,6 +466,6 @@ public class DefaultButtonModel implements ButtonModel, Serializable ...@@ -456,6 +466,6 @@ public class DefaultButtonModel implements ButtonModel, Serializable
{ {
group = g; group = g;
fireStateChanged(changeEvent); fireStateChanged(changeEvent);
} }
} }
} }
...@@ -98,7 +98,7 @@ public class JButton extends AbstractButton implements Accessible ...@@ -98,7 +98,7 @@ public class JButton extends AbstractButton implements Accessible
public String getUIClassID() public String getUIClassID()
{ {
//Returns a string that specifies the name of the L&F class that renders this component. //Returns a string that specifies the name of the L&F class that renders this component.
return "JButton"; return "ButtonUI";
} }
public boolean isDefaultButton() public boolean isDefaultButton()
......
...@@ -70,6 +70,8 @@ public class JCheckBox extends JToggleButton ...@@ -70,6 +70,8 @@ public class JCheckBox extends JToggleButton
public JCheckBox(String text, Icon icon) public JCheckBox(String text, Icon icon)
{ {
super(text, icon); super(text, icon);
paint_border = false;
content_area_filled = false;
} }
...@@ -82,7 +84,7 @@ public class JCheckBox extends JToggleButton ...@@ -82,7 +84,7 @@ public class JCheckBox extends JToggleButton
public String getUIClassID() public String getUIClassID()
{ {
//Returns a string that specifies the name of the L&F class that renders this component. //Returns a string that specifies the name of the L&F class that renders this component.
return "JCheckBox"; return "CheckBoxUI";
} }
protected String paramString() protected String paramString()
......
...@@ -763,9 +763,17 @@ public abstract class JComponent extends Container implements Serializable ...@@ -763,9 +763,17 @@ public abstract class JComponent extends Container implements Serializable
if (use_double_buffer) if (use_double_buffer)
{ {
im = createImage (r.width, r.height); im = createImage (r.width, r.height);
g2 = im.getGraphics (); g2 = im.getGraphics ();
g2.clearRect (0, 0, r.width, r.height); 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); paintBorder(g2);
...@@ -837,28 +845,6 @@ public abstract class JComponent extends Container implements Serializable ...@@ -837,28 +845,6 @@ public abstract class JComponent extends Container implements Serializable
// Returns a string representation of this JComponent. // Returns a string representation of this JComponent.
return "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, public void registerKeyboardAction(ActionListener anAction,
KeyStroke aKeyStroke, KeyStroke aKeyStroke,
...@@ -1044,7 +1030,7 @@ public abstract class JComponent extends Container implements Serializable ...@@ -1044,7 +1030,7 @@ public abstract class JComponent extends Container implements Serializable
public String getUIClassID() public String getUIClassID()
{ {
/// Return the UIDefaults key used to look up the name of the swing. /// Return the UIDefaults key used to look up the name of the swing.
return "JComponent"; return "ComponentUI";
} }
protected void setUI(ComponentUI newUI) protected void setUI(ComponentUI newUI)
......
...@@ -137,7 +137,7 @@ public class JEditorPane extends JTextComponent ...@@ -137,7 +137,7 @@ public class JEditorPane extends JTextComponent
{ return super.getText(); } { return super.getText(); }
public String getUIClassID() public String getUIClassID()
{ return "JEditorPane"; } { return "EditorPaneUI"; }
public boolean isFocusCycleRoot() public boolean isFocusCycleRoot()
{ return focus_root; } { return focus_root; }
......
...@@ -38,6 +38,7 @@ exception statement from your version. */ ...@@ -38,6 +38,7 @@ exception statement from your version. */
package javax.swing; package javax.swing;
import java.awt.AWTEvent;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Component; import java.awt.Component;
import java.awt.Container; import java.awt.Container;
...@@ -105,6 +106,7 @@ public class JFrame extends Frame ...@@ -105,6 +106,7 @@ public class JFrame extends Frame
protected void frameInit() protected void frameInit()
{ {
super.setLayout(new BorderLayout(1, 1)); super.setLayout(new BorderLayout(1, 1));
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
getRootPane(); // will do set/create getRootPane(); // will do set/create
} }
...@@ -201,9 +203,7 @@ public class JFrame extends Frame ...@@ -201,9 +203,7 @@ public class JFrame extends Frame
protected void processWindowEvent(WindowEvent e) protected void processWindowEvent(WindowEvent e)
{ {
// System.out.println("PROCESS_WIN_EV-1: " + e);
super.processWindowEvent(e); super.processWindowEvent(e);
// System.out.println("PROCESS_WIN_EV-2: " + e);
switch (e.getID()) switch (e.getID())
{ {
case WindowEvent.WINDOW_CLOSING: case WindowEvent.WINDOW_CLOSING:
...@@ -212,13 +212,11 @@ public class JFrame extends Frame ...@@ -212,13 +212,11 @@ public class JFrame extends Frame
{ {
case EXIT_ON_CLOSE: case EXIT_ON_CLOSE:
{ {
System.out.println("user requested exit on close");
System.exit(1); System.exit(1);
break; break;
} }
case DISPOSE_ON_CLOSE: case DISPOSE_ON_CLOSE:
{ {
System.out.println("user requested dispose on close");
dispose(); dispose();
break; break;
} }
......
...@@ -148,7 +148,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants ...@@ -148,7 +148,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
{ return text; } { return text; }
public String getUIClassID() public String getUIClassID()
{ return "JLabel"; } { return "LabelUI"; }
public int getVerticalAlignment() public int getVerticalAlignment()
{ {
......
...@@ -212,7 +212,7 @@ public class JList extends JComponent implements Accessible, Scrollable ...@@ -212,7 +212,7 @@ public class JList extends JComponent implements Accessible, Scrollable
public String getUIClassID() public String getUIClassID()
{ {
return "JList"; return "ListUI";
} }
......
...@@ -161,7 +161,7 @@ public class JOptionPane extends JComponent ...@@ -161,7 +161,7 @@ public class JOptionPane extends JComponent
{ return val; } { return val; }
public String getUIClassID() public String getUIClassID()
{ return "JOptionPane"; } { return "OptionPaneUI"; }
public void setUI(OptionPaneUI ui) { public void setUI(OptionPaneUI ui) {
......
...@@ -85,7 +85,7 @@ public class JPanel extends JComponent implements Accessible ...@@ -85,7 +85,7 @@ public class JPanel extends JComponent implements Accessible
} }
public String getUIClassID() public String getUIClassID()
{ return "JPanel"; } { return "PanelUI"; }
public void setUI(PanelUI ui) { public void setUI(PanelUI ui) {
......
...@@ -102,7 +102,7 @@ public class JPasswordField extends JTextField { ...@@ -102,7 +102,7 @@ public class JPasswordField extends JTextField {
/** /**
* uiClassID * uiClassID
*/ */
private static final String uiClassID = "PasswordFIeldUI"; private static final String uiClassID = "PasswordFieldUI";
/** /**
* echoChar. Default is 0 * echoChar. Default is 0
......
...@@ -65,6 +65,8 @@ public class JRadioButton extends JToggleButton ...@@ -65,6 +65,8 @@ public class JRadioButton extends JToggleButton
public JRadioButton(String text, Icon icon) public JRadioButton(String text, Icon icon)
{ {
super(text, icon); super(text, icon);
paint_border = false;
content_area_filled = false;
} }
...@@ -77,7 +79,7 @@ public class JRadioButton extends JToggleButton ...@@ -77,7 +79,7 @@ public class JRadioButton extends JToggleButton
public String getUIClassID() public String getUIClassID()
{ {
//Returns a string that specifies the name of the L&F class that renders this component. //Returns a string that specifies the name of the L&F class that renders this component.
return "JRadioButton"; return "RadioButtonUI";
} }
protected String paramString() protected String paramString()
......
...@@ -75,7 +75,6 @@ public class JRootPane extends JComponent ...@@ -75,7 +75,6 @@ public class JRootPane extends JComponent
public Dimension preferredLayoutSize ( Container c ) public Dimension preferredLayoutSize ( Container c )
{ {
Dimension p = super.preferredLayoutSize(c); Dimension p = super.preferredLayoutSize(c);
System.out.println(" PREF-SIZE from RootLayout = " + p);
return p; return p;
} }
} }
...@@ -97,7 +96,7 @@ public class JRootPane extends JComponent ...@@ -97,7 +96,7 @@ public class JRootPane extends JComponent
/********************************************************/ /********************************************************/
public String getUIClassID() public String getUIClassID()
{ return "JPanel"; } { return "RootPaneUI"; }
void setJMenuBar(JMenuBar m) void setJMenuBar(JMenuBar m)
...@@ -169,7 +168,7 @@ public class JRootPane extends JComponent ...@@ -169,7 +168,7 @@ public class JRootPane extends JComponent
JRootPane() JRootPane()
{ {
setLayout(createRootLayout()); setLayout(createRootLayout());
setBackground(UIManager.getColor("control"));
getGlassPane(); getGlassPane();
getLayeredPane(); getLayeredPane();
getContentPane(); getContentPane();
......
...@@ -86,7 +86,7 @@ public class JScrollPane extends JComponent implements Accessible, ScrollPaneCon ...@@ -86,7 +86,7 @@ public class JScrollPane extends JComponent implements Accessible, ScrollPaneCon
public String getUIClassID() public String getUIClassID()
{ {
//Returns a string that specifies the name of the L&F class that renders this component. //Returns a string that specifies the name of the L&F class that renders this component.
return "JScrollPane"; return "ScrollPaneUI";
} }
public JViewport getViewport() public JViewport getViewport()
......
...@@ -102,7 +102,7 @@ public class JTabbedPane extends JComponent implements Accessible, SwingConstant ...@@ -102,7 +102,7 @@ public class JTabbedPane extends JComponent implements Accessible, SwingConstant
} }
public String getUIClassID() public String getUIClassID()
{ return "JTabbedPane"; } { return "TabbedPaneUI"; }
public void setUI(TabbedPaneUI ui) { public void setUI(TabbedPaneUI ui) {
......
...@@ -44,66 +44,83 @@ import javax.swing.plaf.ButtonUI; ...@@ -44,66 +44,83 @@ import javax.swing.plaf.ButtonUI;
public class JToggleButton extends AbstractButton implements Accessible public class JToggleButton extends AbstractButton implements Accessible
{ {
public JToggleButton()
{
this(null, null);
}
public JToggleButton(Action a)
{
this();
setAction(a);
}
public JToggleButton(Icon icon) public class ToggleButtonModel extends DefaultButtonModel
{ {
this(null, icon); public void setPressed(boolean b)
}
public JToggleButton(String text)
{ {
this(text, null); if (! isEnabled())
} return;
public JToggleButton(String text, Icon icon) super.setPressed(b);
{
this(text, icon, false); // 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) public JToggleButton (String text, Icon icon, boolean selected)
{ {
super(text, icon); super(text, icon);
// Create the model hori_align = LEADING;
setModel(new ToggleButtonModel()); setModel(new ToggleButtonModel());
model.setSelected(selected);
model.setSelected(selected); }
}
public AccessibleContext getAccessibleContext() public AccessibleContext getAccessibleContext()
{ {
//Gets the AccessibleContext associated with this JToggleButton. //Gets the AccessibleContext associated with this JToggleButton.
return null; return null;
} }
public String getUIClassID() public String getUIClassID()
{ {
//Returns a string that specifies the name of the L&F class that renders this component. //Returns a string that specifies the name of the L&F class that renders this component.
return "JToggleButton"; return "ToggleButtonUI";
} }
protected String paramString() protected String paramString()
{ {
return "JToggleButton"; return "JToggleButton";
} }
public void updateUI() public void updateUI()
{ {
ButtonUI b = (ButtonUI)UIManager.getUI(this); ButtonUI b = (ButtonUI)UIManager.getUI(this);
setUI(b); setUI(b);
} }
} }
......
...@@ -83,7 +83,7 @@ public class JTree extends JComponent implements Scrollable, Accessible ...@@ -83,7 +83,7 @@ public class JTree extends JComponent implements Scrollable, Accessible
public String getUIClassID() public String getUIClassID()
{ {
return "JTree"; return "TreeUI";
} }
......
...@@ -69,7 +69,7 @@ public class JViewport extends JComponent ...@@ -69,7 +69,7 @@ public class JViewport extends JComponent
public String getUIClassID() public String getUIClassID()
{ {
return "JViewport"; return "ViewportUI";
} }
public void updateUI() public void updateUI()
......
...@@ -61,7 +61,7 @@ import javax.swing.plaf.ComponentUI; ...@@ -61,7 +61,7 @@ import javax.swing.plaf.ComponentUI;
/** /**
* UIDefaults is a database where all settings and interface bindings are * UIDefaults is a database where all settings and interface bindings are
* stored into. An PLAF implementation fills one of these (see for example * 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) * @author Ronald Veldema (rveldema@cs.vu.nl)
*/ */
......
...@@ -38,82 +38,28 @@ exception statement from your version. */ ...@@ -38,82 +38,28 @@ exception statement from your version. */
package javax.swing.plaf.basic; package javax.swing.plaf.basic;
import java.awt.Component; import javax.swing.Icon;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Rectangle;
import javax.swing.AbstractButton;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.UIDefaults;
import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI; import javax.swing.plaf.ComponentUI;
public class BasicCheckBoxUI extends BasicRadioButtonUI public class BasicCheckBoxUI extends BasicRadioButtonUI
{ {
public static ComponentUI createUI(final JComponent c) {
return new BasicCheckBoxUI(); public static ComponentUI createUI(final JComponent c) {
} return new BasicCheckBoxUI();
}
public void installUI(final JComponent c) { public Icon getDefaultIcon()
super.installUI(c); {
} UIDefaults defaults = UIManager.getLookAndFeelDefaults();
return defaults.getIcon("CheckBox.icon");
public Dimension getPreferredSize(JComponent c) }
{
AbstractButton b = (AbstractButton)c; public void installUI(final JComponent c) {
Dimension d = BasicGraphicsUtils.getPreferredButtonSize(b, gap); super.installUI(c);
//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);
}
} }
......
...@@ -39,7 +39,14 @@ exception statement from your version. */ ...@@ -39,7 +39,14 @@ exception statement from your version. */
package javax.swing.plaf.basic; package javax.swing.plaf.basic;
import java.io.Serializable; 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.Icon;
import javax.swing.UIDefaults;
import javax.swing.UIManager;
/** /**
* STUBBED * STUBBED
*/ */
...@@ -47,39 +54,156 @@ public class BasicIconFactory implements Serializable ...@@ -47,39 +54,156 @@ public class BasicIconFactory implements Serializable
{ {
static final long serialVersionUID = 5605588811185324383L; 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 BasicIconFactory()
{ {
} }
public static Icon getMenuItemCheckIcon() public static Icon getMenuItemCheckIcon()
{ {
return null; return new DummyIcon();
} }
public static Icon getMenuItemArrowIcon() public static Icon getMenuItemArrowIcon()
{ {
return null; return new DummyIcon();
} }
public static Icon getMenuArrowIcon() public static Icon getMenuArrowIcon()
{ {
return null; return new DummyIcon();
} }
public static Icon getCheckBoxIcon() 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() 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() public static Icon getCheckBoxMenuItemIcon()
{ {
return null; return new DummyIcon();
} }
public static Icon getRadioButtonMenuItemIcon() public static Icon getRadioButtonMenuItemIcon()
{ {
return null; return new DummyIcon();
} }
public static Icon createEmptyFrameIcon() public static Icon createEmptyFrameIcon()
{ {
return null; return new DummyIcon();
} }
} // class BasicIconFactory } // class BasicIconFactory
...@@ -227,29 +227,40 @@ public abstract class BasicLookAndFeel extends LookAndFeel ...@@ -227,29 +227,40 @@ public abstract class BasicLookAndFeel extends LookAndFeel
{ {
Object[] uiDefaults; Object[] uiDefaults;
uiDefaults = new Object[] { uiDefaults = new Object[] {
"AbstractUndoableEdit.undoText", "Undo",
"AbstractUndoableEdit.redoText", "Redo",
"Button.background", new ColorUIResource(Color.lightGray), "Button.background", new ColorUIResource(Color.lightGray),
"Button.border", new BorderUIResource.CompoundBorderUIResource(null, "Button.border", BorderUIResource.getEtchedBorderUIResource(),
null), "Button.darkShadow", new ColorUIResource(Color.darkGray),
"Button.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { "Button.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
"SPACE", "pressed", "SPACE", "pressed",
"released SPACE", "released" "released SPACE", "released"
}), }),
"Button.font", new FontUIResource("Dialog", Font.PLAIN, 12), "Button.font", new FontUIResource("Dialog", Font.PLAIN, 12),
"Button.foreground", new ColorUIResource(Color.black), "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.margin", new InsetsUIResource(2, 14, 2, 14),
"Button.shadow", new ColorUIResource(Color.gray),
"Button.textIconGap", new Integer(4), "Button.textIconGap", new Integer(4),
"Button.textShiftOffset", new Integer(0), "Button.textShiftOffset", new Integer(0),
"CheckBox.background", new ColorUIResource(Color.lightGray), "CheckBox.background", new ColorUIResource(Color.lightGray),
"CheckBox.border", new BorderUIResource.CompoundBorderUIResource(null, "CheckBox.border", new BorderUIResource.CompoundBorderUIResource(null,
null), null),
"CheckBox.darkShadow", new ColorUIResource(Color.darkGray),
"CheckBox.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { "CheckBox.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
"SPACE", "pressed", "SPACE", "pressed",
"released SPACE", "released" "released SPACE", "released"
}), }),
"CheckBox.font", new FontUIResource("Dialog", Font.PLAIN, 12), "CheckBox.font", new FontUIResource("Dialog", Font.PLAIN, 12),
"CheckBox.foreground", new ColorUIResource(Color.black), "CheckBox.foreground", new ColorUIResource(Color.black),
"CheckBox.highlight", new ColorUIResource(Color.white),
"CheckBox.icon", BasicIconFactory.getCheckBoxIcon(), "CheckBox.icon", BasicIconFactory.getCheckBoxIcon(),
"CheckBox.light", new ColorUIResource(Color.lightGray.brighter()),
"CheckBox.margin",new InsetsUIResource(2, 2, 2, 2), "CheckBox.margin",new InsetsUIResource(2, 2, 2, 2),
"CheckBox.shadow", new ColorUIResource(Color.gray),
"CheckBox.textIconGap", new Integer(4), "CheckBox.textIconGap", new Integer(4),
"CheckBox.textShiftOffset", new Integer(0), "CheckBox.textShiftOffset", new Integer(0),
"CheckBoxMenuItem.acceleratorFont", new FontUIResource("Dialog", "CheckBoxMenuItem.acceleratorFont", new FontUIResource("Dialog",
...@@ -540,7 +551,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel ...@@ -540,7 +551,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
"PopupMenu.font", new FontUIResource("Dialog", Font.PLAIN, 12), "PopupMenu.font", new FontUIResource("Dialog", Font.PLAIN, 12),
"PopupMenu.foreground", new ColorUIResource(Color.black), "PopupMenu.foreground", new ColorUIResource(Color.black),
"ProgressBar.background", new ColorUIResource(Color.lightGray), "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.cellLength", new Integer(1),
"ProgressBar.cellSpacing", new Integer(0), "ProgressBar.cellSpacing", new Integer(0),
"ProgressBar.font", new FontUIResource("Dialog", Font.PLAIN, 12), "ProgressBar.font", new FontUIResource("Dialog", Font.PLAIN, 12),
...@@ -550,14 +561,18 @@ public abstract class BasicLookAndFeel extends LookAndFeel ...@@ -550,14 +561,18 @@ public abstract class BasicLookAndFeel extends LookAndFeel
"RadioButton.background", new ColorUIResource(Color.lightGray), "RadioButton.background", new ColorUIResource(Color.lightGray),
"RadioButton.border", new BorderUIResource.CompoundBorderUIResource(null, "RadioButton.border", new BorderUIResource.CompoundBorderUIResource(null,
null), null),
"RadioButton.darkShadow", new ColorUIResource(Color.darkGray),
"RadioButton.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { "RadioButton.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
"SPACE", "pressed", "SPACE", "pressed",
"released SPACE", "released" "released SPACE", "released"
}), }),
"RadioButton.font", new FontUIResource("Dialog", Font.PLAIN, 12), "RadioButton.font", new FontUIResource("Dialog", Font.PLAIN, 12),
"RadioButton.foreground", new ColorUIResource(Color.black), "RadioButton.foreground", new ColorUIResource(Color.black),
"RadioButton.highlight", new ColorUIResource(Color.white),
"RadioButton.icon", BasicIconFactory.getRadioButtonIcon(), "RadioButton.icon", BasicIconFactory.getRadioButtonIcon(),
"RadioButton.light", new ColorUIResource(Color.lightGray.brighter()),
"RadioButton.margin", new InsetsUIResource(2, 2, 2, 2), "RadioButton.margin", new InsetsUIResource(2, 2, 2, 2),
"RadioButton.shadow", new ColorUIResource(Color.gray),
"RadioButton.textIconGap", new Integer(4), "RadioButton.textIconGap", new Integer(4),
"RadioButton.textShiftOffset", new Integer(0), "RadioButton.textShiftOffset", new Integer(0),
"RadioButtonMenuItem.acceleratorFont", new FontUIResource("Dialog", "RadioButtonMenuItem.acceleratorFont", new FontUIResource("Dialog",
...@@ -742,7 +757,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel ...@@ -742,7 +757,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
"Table.background", new ColorUIResource(Color.white), "Table.background", new ColorUIResource(Color.white),
"Table.focusCellBackground", new ColorUIResource(Color.white), "Table.focusCellBackground", new ColorUIResource(Color.white),
"Table.focusCellForeground", new ColorUIResource(Color.black), "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.font", new FontUIResource("Dialog", Font.PLAIN, 12),
"Table.foreground", new ColorUIResource(Color.black), "Table.foreground", new ColorUIResource(Color.black),
"Table.gridColor", new ColorUIResource(Color.gray), "Table.gridColor", new ColorUIResource(Color.gray),
...@@ -849,7 +864,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel ...@@ -849,7 +864,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
"ToolBar.foreground", new ColorUIResource(Color.black), "ToolBar.foreground", new ColorUIResource(Color.black),
"ToolBar.separatorSize", new DimensionUIResource(10, 10), "ToolBar.separatorSize", new DimensionUIResource(10, 10),
"ToolTip.background", new ColorUIResource(Color.white), "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.font", new FontUIResource("SansSerif", Font.PLAIN, 12),
"ToolTip.foreground", new ColorUIResource(Color.black), "ToolTip.foreground", new ColorUIResource(Color.black),
"Tree.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] { "Tree.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
...@@ -860,7 +875,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel ...@@ -860,7 +875,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
// XXX Don't use gif // XXX Don't use gif
"Tree.closedIcon", new IconUIResource(new ImageIcon("icons/TreeClosed.gif")), "Tree.closedIcon", new IconUIResource(new ImageIcon("icons/TreeClosed.gif")),
"Tree.drawsFocusBorderAroundIcon", Boolean.FALSE, "Tree.drawsFocusBorderAroundIcon", Boolean.FALSE,
"Tree.editorBorder", new BorderUIResource.LineBorderUIResource(null), "Tree.editorBorder", new BorderUIResource.LineBorderUIResource(Color.lightGray),
"Tree.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { "Tree.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
"shift PAGE_DOWN", "scrollDownExtendSelection", "shift PAGE_DOWN", "scrollDownExtendSelection",
"PAGE_DOWN", "scrollDownChangeSelection", "PAGE_DOWN", "scrollDownChangeSelection",
......
...@@ -44,8 +44,6 @@ import javax.swing.plaf.PanelUI; ...@@ -44,8 +44,6 @@ import javax.swing.plaf.PanelUI;
public class BasicPanelUI extends PanelUI public class BasicPanelUI extends PanelUI
{ {
int gap = 3;
public static ComponentUI createUI(JComponent x) public static ComponentUI createUI(JComponent x)
{ {
return new BasicPanelUI(); return new BasicPanelUI();
...@@ -53,6 +51,6 @@ public class BasicPanelUI extends PanelUI ...@@ -53,6 +51,6 @@ public class BasicPanelUI extends PanelUI
public void installUI(JComponent c) public void installUI(JComponent c)
{ {
super.installUI(c); super.installUI(c);
} }
} }
...@@ -38,116 +38,42 @@ exception statement from your version. */ ...@@ -38,116 +38,42 @@ exception statement from your version. */
package javax.swing.plaf.basic; 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.AbstractButton;
import javax.swing.Icon;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.UIDefaults;
import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI; import javax.swing.plaf.ComponentUI;
public class BasicRadioButtonUI extends BasicToggleButtonUI 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);
}
} }
......
...@@ -50,72 +50,7 @@ public class BasicToggleButtonUI extends BasicButtonUI ...@@ -50,72 +50,7 @@ public class BasicToggleButtonUI extends BasicButtonUI
public static ComponentUI createUI(final JComponent c) { public static ComponentUI createUI(final JComponent c) {
return new BasicToggleButtonUI(); 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);
}
} }
......
...@@ -40,7 +40,6 @@ exception statement from your version. */ ...@@ -40,7 +40,6 @@ exception statement from your version. */
package javax.swing.plaf.metal; package javax.swing.plaf.metal;
import javax.swing.UIDefaults; import javax.swing.UIDefaults;
import javax.swing.plaf.basic.BasicDefaults;
import javax.swing.plaf.basic.BasicLookAndFeel; import javax.swing.plaf.basic.BasicLookAndFeel;
public class MetalLookAndFeel extends BasicLookAndFeel public class MetalLookAndFeel extends BasicLookAndFeel
...@@ -61,7 +60,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel ...@@ -61,7 +60,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel
public UIDefaults getDefaults() public UIDefaults getDefaults()
{ {
if (LAF_defaults == null) if (LAF_defaults == null)
LAF_defaults = new BasicDefaults(); LAF_defaults = super.getDefaults();
// Returns the default values for this look and feel. // Returns the default values for this look and feel.
return LAF_defaults; return LAF_defaults;
......
...@@ -406,7 +406,7 @@ public abstract class JTextComponent extends JComponent ...@@ -406,7 +406,7 @@ public abstract class JTextComponent extends JComponent
public String getUIClassID() public String getUIClassID()
{ {
// Returns a string that specifies the name of the l&f class that renders this component. // Returns a string that specifies the name of the l&f class that renders this component.
return "JTextComponent"; return "TextComponentUI";
} }
public int getVerticalAlignment() public int getVerticalAlignment()
{ {
......
...@@ -316,12 +316,24 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect ...@@ -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) (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height)
{ {
struct graphics *g; struct graphics *g;
GdkGCValues saved;
g = (struct graphics *) NSA_GET_PTR (env, obj); g = (struct graphics *) NSA_GET_PTR (env, obj);
gdk_threads_enter (); gdk_threads_enter ();
gdk_window_clear_area ((GdkWindow *)g->drawable, if (GDK_IS_WINDOW (g->drawable))
x + g->x_offset, y + g->y_offset, width, height); {
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 (); gdk_threads_leave ();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment