From: <ls...@us...> - 2011-07-15 18:06:32
|
Revision: 5831 http://jnode.svn.sourceforge.net/jnode/?rev=5831&view=rev Author: lsantha Date: 2011-07-15 18:06:22 +0000 (Fri, 15 Jul 2011) Log Message: ----------- Integrating OpenJDK 6 build 23. Nimbus L&F. Added Paths: ----------- classlib6/core/src/icedtea/com/sun/java/ classlib6/core/src/icedtea/com/sun/java/swing/ classlib6/core/src/icedtea/com/sun/java/swing/plaf/ classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ArrowButtonPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ButtonPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/CheckBoxMenuItemPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/CheckBoxPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ComboBoxArrowButtonEditableState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ComboBoxArrowButtonPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ComboBoxEditableState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ComboBoxPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ComboBoxTextFieldPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/DesktopIconPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/DesktopPanePainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/EditorPanePainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/FileChooserPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/FormattedTextFieldPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/InternalFramePainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/InternalFrameTitlePaneCloseButtonPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/InternalFrameTitlePaneCloseButtonWindowNotFocusedState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/InternalFrameTitlePaneIconifyButtonPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/InternalFrameTitlePaneIconifyButtonWindowNotFocusedState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/InternalFrameTitlePaneMaximizeButtonPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/InternalFrameTitlePaneMaximizeButtonWindowMaximizedState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/InternalFrameTitlePaneMaximizeButtonWindowNotFocusedState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/InternalFrameTitlePaneMenuButtonPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/InternalFrameTitlePaneMenuButtonWindowNotFocusedState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/InternalFrameTitlePanePainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/InternalFrameTitlePaneWindowFocusedState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/InternalFrameWindowFocusedState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/MenuBarMenuPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/MenuBarPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/MenuItemPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/MenuPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/NimbusDefaults.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/OptionPaneMessageAreaOptionPaneLabelPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/OptionPaneMessageAreaPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/OptionPanePainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/PasswordFieldPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/PopupMenuPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/PopupMenuSeparatorPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ProgressBarFinishedState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ProgressBarIndeterminateState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ProgressBarPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/RadioButtonMenuItemPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/RadioButtonPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ScrollBarButtonPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ScrollBarPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ScrollBarThumbPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ScrollBarTrackPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ScrollPanePainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/SeparatorPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/SliderArrowShapeState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/SliderPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/SliderThumbArrowShapeState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/SliderThumbPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/SliderTrackArrowShapeState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/SliderTrackPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/SpinnerNextButtonPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/SpinnerPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/SpinnerPanelSpinnerFormattedTextFieldPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/SpinnerPreviousButtonPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/SplitPaneDividerPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/SplitPaneDividerVerticalState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/SplitPanePainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/SplitPaneVerticalState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/TabbedPanePainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/TabbedPaneTabAreaPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/TabbedPaneTabPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/TableEditorPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/TableHeaderPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/TableHeaderRendererPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/TableHeaderRendererSortedState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/TextAreaNotInScrollPaneState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/TextAreaPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/TextFieldPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/TextPanePainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ToggleButtonPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ToolBarButtonPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ToolBarEastState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ToolBarNorthState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ToolBarPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ToolBarSouthState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ToolBarToggleButtonPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ToolBarWestState.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ToolTipPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/TreeCellEditorPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/TreeCellPainter.java classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/TreePainter.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/ classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/AbstractRegionPainter.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/Defaults.template classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/DerivedColor.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/DropShadowEffect.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/Effect.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/EffectUtils.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/ImageCache.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/ImageScalingHelper.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/InnerGlowEffect.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/InnerShadowEffect.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/LoweredBorder.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/NimbusIcon.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/NimbusLookAndFeel.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/NimbusStyle.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/OuterGlowEffect.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/PainterImpl.template classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/ShadowEffect.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/State.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/StateImpl.template classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/SynthPainterImpl.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/TableScrollPaneCorner.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/ToolBarSeparatorPainter.java classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/doc-files/ classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/doc-files/properties.html classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/package.html classlib6/core/src/openjdk/com/com/sun/java/swing/plaf/nimbus/skin.laf classlib6/core/src/openjdk/sun/sun/swing/plaf/GTKKeybindings.java classlib6/core/src/openjdk/sun/sun/swing/plaf/WindowsKeybindings.java Added: classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ArrowButtonPainter.java =================================================================== --- classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ArrowButtonPainter.java (rev 0) +++ classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ArrowButtonPainter.java 2011-07-15 18:06:22 UTC (rev 5831) @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.sun.java.swing.plaf.nimbus; + +import com.sun.java.swing.Painter; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; + + +final class ArrowButtonPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ArrowButtonPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_ENABLED = 1; + static final int FOREGROUND_DISABLED = 2; + static final int FOREGROUND_ENABLED = 3; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ArrowButtonPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBase", 0.027408898f, -0.57391655f, 0.1490196f, 0); + private Color color2 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.37254906f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ArrowButtonPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case FOREGROUND_DISABLED: paintForegroundDisabled(g); break; + case FOREGROUND_ENABLED: paintForegroundEnabled(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintForegroundDisabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(color1); + g.fill(path); + + } + + private void paintForegroundEnabled(Graphics2D g) { + path = decodePath1(); + g.setPaint(color2); + g.fill(path); + + } + + + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(1.8f), decodeY(1.2f)); + path.lineTo(decodeX(1.2f), decodeY(1.5f)); + path.lineTo(decodeX(1.8f), decodeY(1.8f)); + path.lineTo(decodeX(1.8f), decodeY(1.2f)); + path.closePath(); + return path; + } + + + + +} Added: classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ButtonPainter.java =================================================================== --- classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ButtonPainter.java (rev 0) +++ classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/ButtonPainter.java 2011-07-15 18:06:22 UTC (rev 5831) @@ -0,0 +1,653 @@ +/* + * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.sun.java.swing.plaf.nimbus; + +import com.sun.java.swing.Painter; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; + + +final class ButtonPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of ButtonPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DEFAULT = 1; + static final int BACKGROUND_DEFAULT_FOCUSED = 2; + static final int BACKGROUND_MOUSEOVER_DEFAULT = 3; + static final int BACKGROUND_MOUSEOVER_DEFAULT_FOCUSED = 4; + static final int BACKGROUND_PRESSED_DEFAULT = 5; + static final int BACKGROUND_PRESSED_DEFAULT_FOCUSED = 6; + static final int BACKGROUND_DISABLED = 7; + static final int BACKGROUND_ENABLED = 8; + static final int BACKGROUND_FOCUSED = 9; + static final int BACKGROUND_MOUSEOVER = 10; + static final int BACKGROUND_MOUSEOVER_FOCUSED = 11; + static final int BACKGROUND_PRESSED = 12; + static final int BACKGROUND_PRESSED_FOCUSED = 13; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of ButtonPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.06885965f, -0.36862746f, -190); + private Color color2 = decodeColor("nimbusBase", 5.1498413E-4f, -0.34585923f, -0.007843137f, 0); + private Color color3 = decodeColor("nimbusBase", 5.1498413E-4f, -0.095173776f, -0.25882354f, 0); + private Color color4 = decodeColor("nimbusBase", 0.004681647f, -0.6197143f, 0.43137252f, 0); + private Color color5 = decodeColor("nimbusBase", 0.004681647f, -0.5766426f, 0.38039213f, 0); + private Color color6 = decodeColor("nimbusBase", 5.1498413E-4f, -0.43866998f, 0.24705881f, 0); + private Color color7 = decodeColor("nimbusBase", 5.1498413E-4f, -0.46404046f, 0.36470586f, 0); + private Color color8 = decodeColor("nimbusBase", 5.1498413E-4f, -0.47761154f, 0.44313723f, 0); + private Color color9 = decodeColor("nimbusFocus", 0.0f, 0.0f, 0.0f, 0); + private Color color10 = decodeColor("nimbusBase", 0.0013483167f, -0.1769987f, -0.12156865f, 0); + private Color color11 = decodeColor("nimbusBase", 0.059279382f, 0.3642857f, -0.43529415f, 0); + private Color color12 = decodeColor("nimbusBase", 0.004681647f, -0.6198413f, 0.43921566f, 0); + private Color color13 = decodeColor("nimbusBase", -0.0017285943f, -0.5822163f, 0.40392154f, 0); + private Color color14 = decodeColor("nimbusBase", 5.1498413E-4f, -0.4555341f, 0.3215686f, 0); + private Color color15 = decodeColor("nimbusBase", 5.1498413E-4f, -0.47698414f, 0.43921566f, 0); + private Color color16 = decodeColor("nimbusBase", -0.06415892f, -0.5455182f, 0.45098037f, 0); + private Color color17 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, -95); + private Color color18 = decodeColor("nimbusBase", -0.57865167f, -0.6357143f, -0.54901963f, 0); + private Color color19 = decodeColor("nimbusBase", -3.528595E-5f, 0.018606722f, -0.23137257f, 0); + private Color color20 = decodeColor("nimbusBase", -4.2033195E-4f, -0.38050595f, 0.20392156f, 0); + private Color color21 = decodeColor("nimbusBase", 0.001903832f, -0.29863563f, 0.1490196f, 0); + private Color color22 = decodeColor("nimbusBase", 0.0f, 0.0f, 0.0f, 0); + private Color color23 = decodeColor("nimbusBase", 0.0018727183f, -0.14126986f, 0.15686274f, 0); + private Color color24 = decodeColor("nimbusBase", 8.9377165E-4f, -0.20852983f, 0.2588235f, 0); + private Color color25 = decodeColor("nimbusBlueGrey", -0.027777791f, -0.06885965f, -0.36862746f, -232); + private Color color26 = decodeColor("nimbusBlueGrey", 0.0f, -0.06766917f, 0.07843137f, 0); + private Color color27 = decodeColor("nimbusBlueGrey", 0.0f, -0.06484103f, 0.027450979f, 0); + private Color color28 = decodeColor("nimbusBlueGrey", 0.0f, -0.08477524f, 0.16862744f, 0); + private Color color29 = decodeColor("nimbusBlueGrey", -0.015872955f, -0.080091536f, 0.15686274f, 0); + private Color color30 = decodeColor("nimbusBlueGrey", 0.0f, -0.07016757f, 0.12941176f, 0); + private Color color31 = decodeColor("nimbusBlueGrey", 0.0f, -0.07052632f, 0.1372549f, 0); + private Color color32 = decodeColor("nimbusBlueGrey", 0.0f, -0.070878744f, 0.14509803f, 0); + private Color color33 = decodeColor("nimbusBlueGrey", -0.055555522f, -0.05356429f, -0.12549019f, 0); + private Color color34 = decodeColor("nimbusBlueGrey", 0.0f, -0.0147816315f, -0.3764706f, 0); + private Color color35 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.10655806f, 0.24313724f, 0); + private Color color36 = decodeColor("nimbusBlueGrey", 0.0f, -0.09823123f, 0.2117647f, 0); + private Color color37 = decodeColor("nimbusBlueGrey", 0.0f, -0.0749532f, 0.24705881f, 0); + private Color color38 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + private Color color39 = decodeColor("nimbusBlueGrey", 0.0f, -0.020974077f, -0.21960783f, 0); + private Color color40 = decodeColor("nimbusBlueGrey", 0.0f, 0.11169591f, -0.53333336f, 0); + private Color color41 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.10658931f, 0.25098038f, 0); + private Color color42 = decodeColor("nimbusBlueGrey", 0.0f, -0.098526314f, 0.2352941f, 0); + private Color color43 = decodeColor("nimbusBlueGrey", 0.0f, -0.07333623f, 0.20392156f, 0); + private Color color44 = new Color(245, 250, 255, 160); + private Color color45 = decodeColor("nimbusBlueGrey", 0.055555582f, 0.8894737f, -0.7176471f, 0); + private Color color46 = decodeColor("nimbusBlueGrey", 0.0f, 5.847961E-4f, -0.32156864f, 0); + private Color color47 = decodeColor("nimbusBlueGrey", -0.00505054f, -0.05960039f, 0.10196078f, 0); + private Color color48 = decodeColor("nimbusBlueGrey", -0.008547008f, -0.04772438f, 0.06666666f, 0); + private Color color49 = decodeColor("nimbusBlueGrey", -0.0027777553f, -0.0018306673f, -0.02352941f, 0); + private Color color50 = decodeColor("nimbusBlueGrey", -0.0027777553f, -0.0212406f, 0.13333333f, 0); + private Color color51 = decodeColor("nimbusBlueGrey", 0.0055555105f, -0.030845039f, 0.23921567f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public ButtonPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_DEFAULT: paintBackgroundDefault(g); break; + case BACKGROUND_DEFAULT_FOCUSED: paintBackgroundDefaultAndFocused(g); break; + case BACKGROUND_MOUSEOVER_DEFAULT: paintBackgroundMouseOverAndDefault(g); break; + case BACKGROUND_MOUSEOVER_DEFAULT_FOCUSED: paintBackgroundMouseOverAndDefaultAndFocused(g); break; + case BACKGROUND_PRESSED_DEFAULT: paintBackgroundPressedAndDefault(g); break; + case BACKGROUND_PRESSED_DEFAULT_FOCUSED: paintBackgroundPressedAndDefaultAndFocused(g); break; + case BACKGROUND_DISABLED: paintBackgroundDisabled(g); break; + case BACKGROUND_ENABLED: paintBackgroundEnabled(g); break; + case BACKGROUND_FOCUSED: paintBackgroundFocused(g); break; + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_MOUSEOVER_FOCUSED: paintBackgroundMouseOverAndFocused(g); break; + case BACKGROUND_PRESSED: paintBackgroundPressed(g); break; + case BACKGROUND_PRESSED_FOCUSED: paintBackgroundPressedAndFocused(g); break; + + } + } + + protected Object[] getExtendedCacheKeys(JComponent c) { + Object[] extendedCacheKeys = null; + switch(state) { + case BACKGROUND_DEFAULT: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color4, -0.6197143f, 0.43137252f, 0), + getComponentColor(c, "background", color5, -0.5766426f, 0.38039213f, 0), + getComponentColor(c, "background", color6, -0.43866998f, 0.24705881f, 0), + getComponentColor(c, "background", color7, -0.46404046f, 0.36470586f, 0), + getComponentColor(c, "background", color8, -0.47761154f, 0.44313723f, 0)}; + break; + case BACKGROUND_DEFAULT_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color4, -0.6197143f, 0.43137252f, 0), + getComponentColor(c, "background", color5, -0.5766426f, 0.38039213f, 0), + getComponentColor(c, "background", color6, -0.43866998f, 0.24705881f, 0), + getComponentColor(c, "background", color7, -0.46404046f, 0.36470586f, 0), + getComponentColor(c, "background", color8, -0.47761154f, 0.44313723f, 0)}; + break; + case BACKGROUND_MOUSEOVER_DEFAULT: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color12, -0.6198413f, 0.43921566f, 0), + getComponentColor(c, "background", color13, -0.5822163f, 0.40392154f, 0), + getComponentColor(c, "background", color14, -0.4555341f, 0.3215686f, 0), + getComponentColor(c, "background", color15, -0.47698414f, 0.43921566f, 0), + getComponentColor(c, "background", color16, -0.5455182f, 0.45098037f, 0)}; + break; + case BACKGROUND_MOUSEOVER_DEFAULT_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color12, -0.6198413f, 0.43921566f, 0), + getComponentColor(c, "background", color13, -0.5822163f, 0.40392154f, 0), + getComponentColor(c, "background", color14, -0.4555341f, 0.3215686f, 0), + getComponentColor(c, "background", color15, -0.47698414f, 0.43921566f, 0), + getComponentColor(c, "background", color16, -0.5455182f, 0.45098037f, 0)}; + break; + case BACKGROUND_PRESSED_DEFAULT: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color20, -0.38050595f, 0.20392156f, 0), + getComponentColor(c, "background", color21, -0.29863563f, 0.1490196f, 0), + getComponentColor(c, "background", color22, 0.0f, 0.0f, 0), + getComponentColor(c, "background", color23, -0.14126986f, 0.15686274f, 0), + getComponentColor(c, "background", color24, -0.20852983f, 0.2588235f, 0)}; + break; + case BACKGROUND_PRESSED_DEFAULT_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color20, -0.38050595f, 0.20392156f, 0), + getComponentColor(c, "background", color21, -0.29863563f, 0.1490196f, 0), + getComponentColor(c, "background", color22, 0.0f, 0.0f, 0), + getComponentColor(c, "background", color23, -0.14126986f, 0.15686274f, 0), + getComponentColor(c, "background", color24, -0.20852983f, 0.2588235f, 0)}; + break; + case BACKGROUND_ENABLED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color35, -0.10655806f, 0.24313724f, 0), + getComponentColor(c, "background", color36, -0.09823123f, 0.2117647f, 0), + getComponentColor(c, "background", color30, -0.07016757f, 0.12941176f, 0), + getComponentColor(c, "background", color37, -0.0749532f, 0.24705881f, 0), + getComponentColor(c, "background", color38, -0.110526316f, 0.25490195f, 0)}; + break; + case BACKGROUND_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color35, -0.10655806f, 0.24313724f, 0), + getComponentColor(c, "background", color36, -0.09823123f, 0.2117647f, 0), + getComponentColor(c, "background", color30, -0.07016757f, 0.12941176f, 0), + getComponentColor(c, "background", color37, -0.0749532f, 0.24705881f, 0), + getComponentColor(c, "background", color38, -0.110526316f, 0.25490195f, 0)}; + break; + case BACKGROUND_MOUSEOVER: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color41, -0.10658931f, 0.25098038f, 0), + getComponentColor(c, "background", color42, -0.098526314f, 0.2352941f, 0), + getComponentColor(c, "background", color43, -0.07333623f, 0.20392156f, 0), + getComponentColor(c, "background", color38, -0.110526316f, 0.25490195f, 0)}; + break; + case BACKGROUND_MOUSEOVER_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color41, -0.10658931f, 0.25098038f, 0), + getComponentColor(c, "background", color42, -0.098526314f, 0.2352941f, 0), + getComponentColor(c, "background", color43, -0.07333623f, 0.20392156f, 0), + getComponentColor(c, "background", color38, -0.110526316f, 0.25490195f, 0)}; + break; + case BACKGROUND_PRESSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color47, -0.05960039f, 0.10196078f, 0), + getComponentColor(c, "background", color48, -0.04772438f, 0.06666666f, 0), + getComponentColor(c, "background", color49, -0.0018306673f, -0.02352941f, 0), + getComponentColor(c, "background", color50, -0.0212406f, 0.13333333f, 0), + getComponentColor(c, "background", color51, -0.030845039f, 0.23921567f, 0)}; + break; + case BACKGROUND_PRESSED_FOCUSED: + extendedCacheKeys = new Object[] { + getComponentColor(c, "background", color47, -0.05960039f, 0.10196078f, 0), + getComponentColor(c, "background", color48, -0.04772438f, 0.06666666f, 0), + getComponentColor(c, "background", color49, -0.0018306673f, -0.02352941f, 0), + getComponentColor(c, "background", color50, -0.0212406f, 0.13333333f, 0), + getComponentColor(c, "background", color51, -0.030845039f, 0.23921567f, 0)}; + break; + } + return extendedCacheKeys; + } + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundDefault(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundDefaultAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient1(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundMouseOverAndDefault(Graphics2D g) { + roundRect = decodeRoundRect5(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundMouseOverAndDefaultAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient3(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressedAndDefault(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color17); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressedAndDefaultAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient4(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundDisabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color25); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient5(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient6(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundEnabled(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient7(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient7(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient8(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundMouseOver(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color1); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient9(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient10(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundMouseOverAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient9(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient10(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressed(Graphics2D g) { + roundRect = decodeRoundRect1(); + g.setPaint(color44); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient11(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + private void paintBackgroundPressedAndFocused(Graphics2D g) { + roundRect = decodeRoundRect4(); + g.setPaint(color9); + g.fill(roundRect); + roundRect = decodeRoundRect2(); + g.setPaint(decodeGradient11(roundRect)); + g.fill(roundRect); + roundRect = decodeRoundRect3(); + g.setPaint(decodeGradient2(roundRect)); + g.fill(roundRect); + + } + + + + private RoundRectangle2D decodeRoundRect1() { + roundRect.setRoundRect(decodeX(0.2857143f), //x + decodeY(0.42857143f), //y + decodeX(2.7142859f) - decodeX(0.2857143f), //width + decodeY(2.857143f) - decodeY(0.42857143f), //height + 12.0f, 12.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect2() { + roundRect.setRoundRect(decodeX(0.2857143f), //x + decodeY(0.2857143f), //y + decodeX(2.7142859f) - decodeX(0.2857143f), //width + decodeY(2.7142859f) - decodeY(0.2857143f), //height + 9.0f, 9.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect3() { + roundRect.setRoundRect(decodeX(0.42857143f), //x + decodeY(0.42857143f), //y + decodeX(2.5714285f) - decodeX(0.42857143f), //width + decodeY(2.5714285f) - decodeY(0.42857143f), //height + 7.0f, 7.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect4() { + roundRect.setRoundRect(decodeX(0.08571429f), //x + decodeY(0.08571429f), //y + decodeX(2.914286f) - decodeX(0.08571429f), //width + decodeY(2.914286f) - decodeY(0.08571429f), //height + 11.0f, 11.0f); //rounding + return roundRect; + } + + private RoundRectangle2D decodeRoundRect5() { + roundRect.setRoundRect(decodeX(0.2857143f), //x + decodeY(0.42857143f), //y + decodeX(2.7142859f) - decodeX(0.2857143f), //width + decodeY(2.857143f) - decodeY(0.42857143f), //height + 9.0f, 9.0f); //rounding + return roundRect; + } + + + + private Paint decodeGradient1(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.05f,0.5f,0.95f }, + new Color[] { color2, + decodeColor(color2,color3,0.5f), + color3}); + } + + private Paint decodeGradient2(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.024f,0.06f,0.276f,0.6f,0.65f,0.7f,0.856f,0.96f,0.98399997f,1.0f }, + new Color[] { (Color)componentColors[0], + decodeColor((Color)componentColors[0],(Color)componentColors[1],0.5f), + (Color)componentColors[1], + decodeColor((Color)componentColors[1],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[3],0.5f), + (Color)componentColors[3], + decodeColor((Color)componentColors[3],(Color)componentColors[4],0.5f), + (Color)componentColors[4]}); + } + + private Paint decodeGradient3(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.05f,0.5f,0.95f }, + new Color[] { color10, + decodeColor(color10,color11,0.5f), + color11}); + } + + private Paint decodeGradient4(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.05f,0.5f,0.95f }, + new Color[] { color18, + decodeColor(color18,color19,0.5f), + color19}); + } + + private Paint decodeGradient5(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.09f,0.52f,0.95f }, + new Color[] { color26, + decodeColor(color26,color27,0.5f), + color27}); + } + + private Paint decodeGradient6(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.03f,0.06f,0.33f,0.6f,0.65f,0.7f,0.825f,0.95f,0.975f,1.0f }, + new Color[] { color28, + decodeColor(color28,color29,0.5f), + color29, + decodeColor(color29,color30,0.5f), + color30, + decodeColor(color30,color30,0.5f), + color30, + decodeColor(color30,color31,0.5f), + color31, + decodeColor(color31,color32,0.5f), + color32}); + } + + private Paint decodeGradient7(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.09f,0.52f,0.95f }, + new Color[] { color33, + decodeColor(color33,color34,0.5f), + color34}); + } + + private Paint decodeGradient8(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.03f,0.06f,0.33f,0.6f,0.65f,0.7f,0.825f,0.95f,0.975f,1.0f }, + new Color[] { (Color)componentColors[0], + decodeColor((Color)componentColors[0],(Color)componentColors[1],0.5f), + (Color)componentColors[1], + decodeColor((Color)componentColors[1],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[3],0.5f), + (Color)componentColors[3], + decodeColor((Color)componentColors[3],(Color)componentColors[4],0.5f), + (Color)componentColors[4]}); + } + + private Paint decodeGradient9(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.09f,0.52f,0.95f }, + new Color[] { color39, + decodeColor(color39,color40,0.5f), + color40}); + } + + private Paint decodeGradient10(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.0f,0.024f,0.06f,0.276f,0.6f,0.65f,0.7f,0.856f,0.96f,0.98f,1.0f }, + new Color[] { (Color)componentColors[0], + decodeColor((Color)componentColors[0],(Color)componentColors[1],0.5f), + (Color)componentColors[1], + decodeColor((Color)componentColors[1],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[2],0.5f), + (Color)componentColors[2], + decodeColor((Color)componentColors[2],(Color)componentColors[3],0.5f), + (Color)componentColors[3], + decodeColor((Color)componentColors[3],(Color)componentColors[3],0.5f), + (Color)componentColors[3]}); + } + + private Paint decodeGradient11(Shape s) { + Rectangle2D bounds = s.getBounds2D(); + float x = (float)bounds.getX(); + float y = (float)bounds.getY(); + float w = (float)bounds.getWidth(); + float h = (float)bounds.getHeight(); + return decodeGradient((0.5f * w) + x, (0.0f * h) + y, (0.5f * w) + x, (1.0f * h) + y, + new float[] { 0.05f,0.5f,0.95f }, + new Color[] { color45, + decodeColor(color45,color46,0.5f), + color46}); + } + + +} Added: classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/CheckBoxMenuItemPainter.java =================================================================== --- classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/CheckBoxMenuItemPainter.java (rev 0) +++ classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/CheckBoxMenuItemPainter.java 2011-07-15 18:06:22 UTC (rev 5831) @@ -0,0 +1,163 @@ +/* + * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.sun.java.swing.plaf.nimbus; + +import com.sun.java.swing.Painter; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; + + +final class CheckBoxMenuItemPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of CheckBoxMenuItemPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int BACKGROUND_MOUSEOVER = 3; + static final int BACKGROUND_SELECTED_MOUSEOVER = 4; + static final int CHECKICON_DISABLED_SELECTED = 5; + static final int CHECKICON_ENABLED_SELECTED = 6; + static final int CHECKICON_SELECTED_MOUSEOVER = 7; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of CheckBoxMenuItemPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusSelection", 0.0f, 0.0f, 0.0f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", 0.0f, -0.08983666f, -0.17647058f, 0); + private Color color3 = decodeColor("nimbusBlueGrey", 0.055555582f, -0.096827686f, -0.45882353f, 0); + private Color color4 = decodeColor("nimbusBlueGrey", 0.0f, -0.110526316f, 0.25490195f, 0); + + + //Array of current component colors, updated in each paint call + private Object[] componentColors; + + public CheckBoxMenuItemPainter(PaintContext ctx, int state) { + super(); + this.state = state; + this.ctx = ctx; + } + + @Override + protected void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys) { + //populate componentColors array with colors calculated in getExtendedCacheKeys call + componentColors = extendedCacheKeys; + //generate this entire method. Each state/bg/fg/border combo that has + //been painted gets its own KEY and paint method. + switch(state) { + case BACKGROUND_MOUSEOVER: paintBackgroundMouseOver(g); break; + case BACKGROUND_SELECTED_MOUSEOVER: paintBackgroundSelectedAndMouseOver(g); break; + case CHECKICON_DISABLED_SELECTED: paintcheckIconDisabledAndSelected(g); break; + case CHECKICON_ENABLED_SELECTED: paintcheckIconEnabledAndSelected(g); break; + case CHECKICON_SELECTED_MOUSEOVER: paintcheckIconSelectedAndMouseOver(g); break; + + } + } + + + + @Override + protected final PaintContext getPaintContext() { + return ctx; + } + + private void paintBackgroundMouseOver(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintBackgroundSelectedAndMouseOver(Graphics2D g) { + rect = decodeRect1(); + g.setPaint(color1); + g.fill(rect); + + } + + private void paintcheckIconDisabledAndSelected(Graphics2D g) { + path = decodePath1(); + g.setPaint(color2); + g.fill(path); + + } + + private void paintcheckIconEnabledAndSelected(Graphics2D g) { + path = decodePath1(); + g.setPaint(color3); + g.fill(path); + + } + + private void paintcheckIconSelectedAndMouseOver(Graphics2D g) { + path = decodePath1(); + g.setPaint(color4); + g.fill(path); + + } + + + + private Rectangle2D decodeRect1() { + rect.setRect(decodeX(1.0f), //x + decodeY(1.0f), //y + decodeX(2.0f) - decodeX(1.0f), //width + decodeY(2.0f) - decodeY(1.0f)); //height + return rect; + } + + private Path2D decodePath1() { + path.reset(); + path.moveTo(decodeX(0.0f), decodeY(1.5f)); + path.lineTo(decodeX(0.4292683f), decodeY(1.5f)); + path.lineTo(decodeX(0.7121951f), decodeY(2.4780488f)); + path.lineTo(decodeX(2.5926828f), decodeY(0.0f)); + path.lineTo(decodeX(3.0f), decodeY(0.0f)); + path.lineTo(decodeX(3.0f), decodeY(0.2f)); + path.lineTo(decodeX(2.8317075f), decodeY(0.39512196f)); + path.lineTo(decodeX(0.8f), decodeY(3.0f)); + path.lineTo(decodeX(0.5731707f), decodeY(3.0f)); + path.lineTo(decodeX(0.0f), decodeY(1.5f)); + path.closePath(); + return path; + } + + + + +} Added: classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/CheckBoxPainter.java =================================================================== --- classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/CheckBoxPainter.java (rev 0) +++ classlib6/core/src/icedtea/com/sun/java/swing/plaf/nimbus/CheckBoxPainter.java 2011-07-15 18:06:22 UTC (rev 5831) @@ -0,0 +1,636 @@ +/* + * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.sun.java.swing.plaf.nimbus; + +import com.sun.java.swing.Painter; + +import java.awt.*; +import java.awt.geom.*; +import java.awt.image.*; +import javax.swing.*; + + +final class CheckBoxPainter extends AbstractRegionPainter { + //package private integers representing the available states that + //this painter will paint. These are used when creating a new instance + //of CheckBoxPainter to determine which region/state is being painted + //by that instance. + static final int BACKGROUND_DISABLED = 1; + static final int BACKGROUND_ENABLED = 2; + static final int ICON_DISABLED = 3; + static final int ICON_ENABLED = 4; + static final int ICON_FOCUSED = 5; + static final int ICON_MOUSEOVER = 6; + static final int ICON_MOUSEOVER_FOCUSED = 7; + static final int ICON_PRESSED = 8; + static final int ICON_PRESSED_FOCUSED = 9; + static final int ICON_SELECTED = 10; + static final int ICON_SELECTED_FOCUSED = 11; + static final int ICON_PRESSED_SELECTED = 12; + static final int ICON_PRESSED_SELECTED_FOCUSED = 13; + static final int ICON_MOUSEOVER_SELECTED = 14; + static final int ICON_MOUSEOVER_SELECTED_FOCUSED = 15; + static final int ICON_DISABLED_SELECTED = 16; + + + private int state; //refers to one of the static final ints above + private PaintContext ctx; + + //the following 4 variables are reused during the painting code of the layers + private Path2D path = new Path2D.Float(); + private Rectangle2D rect = new Rectangle2D.Float(0, 0, 0, 0); + private RoundRectangle2D roundRect = new RoundRectangle2D.Float(0, 0, 0, 0, 0, 0); + private Ellipse2D ellipse = new Ellipse2D.Float(0, 0, 0, 0); + + //All Colors used for painting are stored here. Ideally, only those colors being used + //by a particular instance of CheckBoxPainter would be created. For the moment at least, + //however, all are created for each instance. + private Color color1 = decodeColor("nimbusBlueGrey", 0.0f, -0.06766917f, 0.07843137f, 0); + private Color color2 = decodeColor("nimbusBlueGrey", 0.0f, -0.06484103f, 0.027450979f, 0); + private Color color3 = decodeColor("nimbusBase", 0.032459438f, -0.60996324f, 0.36470586f, 0); + private Color color4 = decodeColor("nimbusBase", 0.02551502f, -0.5996783f, 0.3215686f, 0); + private Color color5 = decodeColor("nimbusBase", 0.032459438f, -0.59624064f, 0.34509802f, 0); + private Color color6 = decodeColor("nimbusBlueGrey", 0.0f, 0.0f, 0.0f, -89); + private Color color7 = decodeColor("nimbusBlueGrey", 0.0f, -0.05356429f, -0.12549019f, 0); + private Color color8 = decodeColor("nimbusBlueGrey", 0.0f, -0.015789472f, -0.37254903f, 0); + private Color color9 = decodeColor("nimbusBase", 0.08801502f, -0.6... [truncated message content] |