/* * Copyright (c) 2002 and later by MH Software-Entwicklung. All Rights Reserved. * * JTattoo is multiple licensed. If your are an open source developer you can use * it under the terms and conditions of the GNU General Public License version 2.0 * or later as published by the Free Software Foundation. * * see: gpl-2.0.txt * * If you pay for a license you will become a registered user who could use the * software under the terms and conditions of the GNU Lesser General Public License * version 2.0 or later with classpath exception as published by the Free Software * Foundation. * * see: lgpl-2.0.txt * see: classpath-exception.txt * * Registered users could also use JTattoo under the terms and conditions of the * Apache License, Version 2.0 as published by the Apache Software Foundation. * * see: APACHE-LICENSE-2.0.txt */ package com.jtattoo.plaf.bernstein; import com.jtattoo.plaf.*; import java.awt.Color; import java.awt.Graphics; import java.awt.Insets; import javax.swing.*; import javax.swing.plaf.ColorUIResource; import javax.swing.plaf.ComponentUI; /** * @author Michael Hagen */ public class BernsteinButtonUI extends BaseButtonUI { public static ComponentUI createUI(JComponent c) { return new BernsteinButtonUI(); } protected void paintBackground(Graphics g, AbstractButton b) { if (!b.isContentAreaFilled() || (b.getParent() instanceof JMenuBar)) { return; } int width = b.getWidth(); int height = b.getHeight(); ButtonModel model = b.getModel(); Color colors[] = AbstractLookAndFeel.getTheme().getButtonColors(); if (b.isEnabled()) { Color background = b.getBackground(); if (background instanceof ColorUIResource) { if (model.isPressed() && model.isArmed()) { colors = AbstractLookAndFeel.getTheme().getPressedColors(); } else if (b.isRolloverEnabled() && model.isRollover()) { colors = AbstractLookAndFeel.getTheme().getRolloverColors(); } else if (AbstractLookAndFeel.getTheme().doShowFocusFrame() && b.hasFocus()) { colors = AbstractLookAndFeel.getTheme().getFocusColors(); } else if (JTattooUtilities.isFrameActive(b) && (b.getRootPane() != null) && (b.equals(b.getRootPane().getDefaultButton()))) { colors = AbstractLookAndFeel.getTheme().getSelectedColors(); } } else { if (model.isPressed() && model.isArmed()) { colors = ColorHelper.createColorArr(ColorHelper.darker(background, 30), ColorHelper.darker(background, 10), 20); } else { if (b.isRolloverEnabled() && model.isRollover()) { colors = ColorHelper.createColorArr(ColorHelper.brighter(background, 50), ColorHelper.brighter(background, 10), 20); } else { colors = ColorHelper.createColorArr(ColorHelper.brighter(background, 30), ColorHelper.darker(background, 10), 20); } } } } else { // disabled colors = AbstractLookAndFeel.getTheme().getDisabledColors(); } if (b.isBorderPainted() && (b.getBorder() != null)) { Insets insets = b.getBorder().getBorderInsets(b); int x = insets.left > 0 ? 1 : 0; int y = insets.top > 0 ? 1 : 0; int w = insets.right > 0 ? width - 1 : width; int h = insets.bottom > 0 ? height - 1 : height; JTattooUtilities.fillHorGradient(g, colors, x, y, w - x, h - y); } else { JTattooUtilities.fillHorGradient(g, colors, 0, 0, width, height); } } }