FileDocCategorySizeDatePackage
WindowsToggleButtonUI.javaAPI DocJava SE 6 API5147Tue Jun 10 00:21:58 BST 2008com.sun.java.swing.plaf.windows

WindowsToggleButtonUI

public class WindowsToggleButtonUI extends BasicToggleButtonUI
A Windows toggle button.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. A future release of Swing will provide support for long term persistence.

version
1.34 04/04/06
author
Jeff Dinkins

Fields Summary
protected static int
dashedRectGapX
protected static int
dashedRectGapY
protected static int
dashedRectGapWidth
protected static int
dashedRectGapHeight
protected Color
focusColor
private static final WindowsToggleButtonUI
windowsToggleButtonUI
private boolean
defaults_initialized
private transient Color
cachedSelectedColor
private transient Color
cachedBackgroundColor
private transient Color
cachedHighlightColor
Constructors Summary
Methods Summary
public static javax.swing.plaf.ComponentUIcreateUI(javax.swing.JComponent b)

    
         
	return windowsToggleButtonUI;
    
protected java.awt.ColorgetFocusColor()

	return focusColor;
    
public java.awt.DimensiongetPreferredSize(javax.swing.JComponent c)

	Dimension d = super.getPreferredSize(c);

	/* Ensure that the width and height of the button is odd,
	 * to allow for the focus line if focus is painted
	 */
        AbstractButton b = (AbstractButton)c;
	if (d != null && b.isFocusPainted()) {
	    if(d.width % 2 == 0) { d.width += 1; }
	    if(d.height % 2 == 0) { d.height += 1; }
	}
	return d;
    
protected voidinstallDefaults(javax.swing.AbstractButton b)

	super.installDefaults(b);
	if(!defaults_initialized) {
	    String pp = getPropertyPrefix();
	    dashedRectGapX = ((Integer)UIManager.get("Button.dashedRectGapX")).intValue();
	    dashedRectGapY = ((Integer)UIManager.get("Button.dashedRectGapY")).intValue();
	    dashedRectGapWidth = ((Integer)UIManager.get("Button.dashedRectGapWidth")).intValue();
	    dashedRectGapHeight = ((Integer)UIManager.get("Button.dashedRectGapHeight")).intValue();
	    focusColor = UIManager.getColor(pp + "focus");
	    defaults_initialized = true;
	}

	XPStyle xp = XPStyle.getXP();
	if (xp != null) {
	    b.setBorder(xp.getBorder(b, WindowsButtonUI.getXPButtonType(b)));
	    LookAndFeel.installProperty(b, "opaque", Boolean.FALSE);
	    LookAndFeel.installProperty(b, "rolloverEnabled", Boolean.TRUE);
	}
    
public voidpaint(java.awt.Graphics g, javax.swing.JComponent c)

	if (XPStyle.getXP() != null) {
	    WindowsButtonUI.paintXPButtonBackground(g, c);
	}
	super.paint(g, c);
    
protected voidpaintButtonPressed(java.awt.Graphics g, javax.swing.AbstractButton b)

    
          
        if (XPStyle.getXP() == null && b.isContentAreaFilled()) {
            Color oldColor = g.getColor();
            Color c1 = b.getBackground();
            Color c2 = UIManager.getColor("ToggleButton.highlight");
            if (c1 != cachedBackgroundColor || c2 != cachedHighlightColor) {
                int r1 = c1.getRed(), r2 = c2.getRed();
                int g1 = c1.getGreen(), g2 = c2.getGreen();
                int b1 = c1.getBlue(), b2 = c2.getBlue();
                cachedSelectedColor = new Color(
                        Math.min(r1, r2) + Math.abs(r1 - r2) / 2,
                        Math.min(g1, g2) + Math.abs(g1 - g2) / 2,
                        Math.min(b1, b2) + Math.abs(b1 - b2) / 2
                );
                cachedBackgroundColor = c1;
                cachedHighlightColor = c2;
            }
            g.setColor(cachedSelectedColor);
            g.fillRect(0, 0, b.getWidth(), b.getHeight());
            g.setColor(oldColor);
	}
    
protected voidpaintFocus(java.awt.Graphics g, javax.swing.AbstractButton b, java.awt.Rectangle viewRect, java.awt.Rectangle textRect, java.awt.Rectangle iconRect)

	g.setColor(getFocusColor());
	BasicGraphicsUtils.drawDashedRect(g, dashedRectGapX, dashedRectGapY,
					  b.getWidth() - dashedRectGapWidth,
					  b.getHeight() - dashedRectGapHeight);
    
protected voidpaintText(java.awt.Graphics g, javax.swing.AbstractButton b, java.awt.Rectangle textRect, java.lang.String text)
Overridden method to render the text without the mnemonic

	WindowsGraphicsUtils.paintText(g, b, textRect, text, getTextShiftOffset());
    
protected voiduninstallDefaults(javax.swing.AbstractButton b)

	super.uninstallDefaults(b);
	defaults_initialized = false;