mirror of
https://github.com/autc04/Retro68.git
synced 2024-12-13 18:34:45 +00:00
1373 lines
47 KiB
Java
1373 lines
47 KiB
Java
/* MetalLookAndFeel.java
|
|
Copyright (C) 2002, 2005, 2006, Free Software Foundation, Inc.
|
|
|
|
This file is part of GNU Classpath.
|
|
|
|
GNU Classpath is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2, or (at your option)
|
|
any later version.
|
|
|
|
GNU Classpath 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 for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
|
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
02110-1301 USA.
|
|
|
|
Linking this library statically or dynamically with other modules is
|
|
making a combined work based on this library. Thus, the terms and
|
|
conditions of the GNU General Public License cover the whole
|
|
combination.
|
|
|
|
As a special exception, the copyright holders of this library give you
|
|
permission to link this library with independent modules to produce an
|
|
executable, regardless of the license terms of these independent
|
|
modules, and to copy and distribute the resulting executable under
|
|
terms of your choice, provided that you also meet, for each linked
|
|
independent module, the terms and conditions of the license of that
|
|
module. An independent module is a module which is not derived from
|
|
or based on this library. If you modify this library, you may extend
|
|
this exception to your version of the library, but you are not
|
|
obligated to do so. If you do not wish to do so, delete this
|
|
exception statement from your version. */
|
|
|
|
|
|
package javax.swing.plaf.metal;
|
|
|
|
import gnu.classpath.SystemProperties;
|
|
|
|
import java.awt.Color;
|
|
import java.awt.Font;
|
|
|
|
import javax.swing.LookAndFeel;
|
|
import javax.swing.UIDefaults;
|
|
import javax.swing.UIManager;
|
|
import javax.swing.plaf.BorderUIResource;
|
|
import javax.swing.plaf.ColorUIResource;
|
|
import javax.swing.plaf.FontUIResource;
|
|
import javax.swing.plaf.InsetsUIResource;
|
|
import javax.swing.plaf.BorderUIResource.LineBorderUIResource;
|
|
import javax.swing.plaf.basic.BasicLookAndFeel;
|
|
|
|
|
|
/**
|
|
* A custom look and feel that is designed to look similar across different
|
|
* operating systems. To install this look and feel, add the following code
|
|
* (or something similar) near the start of your application:</p>
|
|
* <pre>
|
|
* try
|
|
* {
|
|
* UIManager.setLookAndFeel(new MetalLookAndFeel());
|
|
* }
|
|
* catch (UnsupportedLookAndFeelException e)
|
|
* {
|
|
* e.printStackTrace();
|
|
* }</pre>
|
|
*/
|
|
public class MetalLookAndFeel extends BasicLookAndFeel
|
|
{
|
|
private static final long serialVersionUID = 6680646159193457980L;
|
|
|
|
/** The current theme. */
|
|
private static MetalTheme theme;
|
|
|
|
/**
|
|
* Creates a new instance of the Metal look and feel.
|
|
*/
|
|
public MetalLookAndFeel()
|
|
{
|
|
// Nothing to do here.
|
|
}
|
|
|
|
/**
|
|
* Sets the current theme to a new instance of {@link DefaultMetalTheme}.
|
|
*/
|
|
protected void createDefaultTheme()
|
|
{
|
|
getCurrentTheme();
|
|
}
|
|
|
|
/**
|
|
* Returns <code>false</code> to indicate that this look and feel does not
|
|
* attempt to emulate the look and feel of native applications on the host
|
|
* platform.
|
|
*
|
|
* @return <code>false</code>.
|
|
*/
|
|
public boolean isNativeLookAndFeel()
|
|
{
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Returns <code>true</code> to indicate that this look and feel is supported
|
|
* on all platforms.
|
|
*
|
|
* @return <code>true</code>.
|
|
*/
|
|
public boolean isSupportedLookAndFeel()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Returns a string describing the look and feel. In this case, the method
|
|
* returns "Metal look and feel".
|
|
*
|
|
* @return A string describing the look and feel.
|
|
*/
|
|
public String getDescription()
|
|
{
|
|
return "The Java(tm) Look and Feel";
|
|
}
|
|
|
|
/**
|
|
* Returns the look and feel identifier.
|
|
*
|
|
* @return "MetalLookAndFeel".
|
|
*/
|
|
public String getID()
|
|
{
|
|
return "Metal";
|
|
}
|
|
|
|
/**
|
|
* Returns the look and feel name.
|
|
*
|
|
* @return "MetalLookAndFeel".
|
|
*/
|
|
public String getName()
|
|
{
|
|
return "Metal";
|
|
}
|
|
|
|
public UIDefaults getDefaults()
|
|
{
|
|
createDefaultTheme();
|
|
UIDefaults def = super.getDefaults();
|
|
|
|
theme.addCustomEntriesToTable(def);
|
|
return def;
|
|
}
|
|
|
|
/**
|
|
* Returns the accelerator foreground color from the installed theme.
|
|
*
|
|
* @return The accelerator foreground color.
|
|
*/
|
|
public static ColorUIResource getAcceleratorForeground()
|
|
{
|
|
if (theme != null)
|
|
return theme.getAcceleratorForeground();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the accelerator selected foreground color from the installed
|
|
* theme.
|
|
*
|
|
* @return The accelerator selected foreground color.
|
|
*/
|
|
public static ColorUIResource getAcceleratorSelectedForeground()
|
|
{
|
|
if (theme != null)
|
|
return theme.getAcceleratorSelectedForeground();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the color black from the installed theme.
|
|
*
|
|
* @return The color black.
|
|
*/
|
|
public static ColorUIResource getBlack()
|
|
{
|
|
if (theme != null)
|
|
return theme.getBlack();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the control color from the installed theme.
|
|
*
|
|
* @return The control color.
|
|
*/
|
|
public static ColorUIResource getControl()
|
|
{
|
|
if (theme != null)
|
|
return theme.getControl();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the color used for dark shadows on controls, from the installed
|
|
* theme.
|
|
*
|
|
* @return The color used for dark shadows on controls.
|
|
*/
|
|
public static ColorUIResource getControlDarkShadow()
|
|
{
|
|
if (theme != null)
|
|
return theme.getControlDarkShadow();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the color used for disabled controls, from the installed theme.
|
|
*
|
|
* @return The color used for disabled controls.
|
|
*/
|
|
public static ColorUIResource getControlDisabled()
|
|
{
|
|
if (theme != null)
|
|
return theme.getControlDisabled();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the color used to draw highlights for controls, from the installed
|
|
* theme.
|
|
*
|
|
* @return The color used to draw highlights for controls.
|
|
*/
|
|
public static ColorUIResource getControlHighlight()
|
|
{
|
|
if (theme != null)
|
|
return theme.getControlHighlight();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the color used to display control info, from the installed
|
|
* theme.
|
|
*
|
|
* @return The color used to display control info.
|
|
*/
|
|
public static ColorUIResource getControlInfo()
|
|
{
|
|
if (theme != null)
|
|
return theme.getControlInfo();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the color used to draw shadows for controls, from the installed
|
|
* theme.
|
|
*
|
|
* @return The color used to draw shadows for controls.
|
|
*/
|
|
public static ColorUIResource getControlShadow()
|
|
{
|
|
if (theme != null)
|
|
return theme.getControlShadow();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the color used for text on controls, from the installed theme.
|
|
*
|
|
* @return The color used for text on controls.
|
|
*/
|
|
public static ColorUIResource getControlTextColor()
|
|
{
|
|
if (theme != null)
|
|
return theme.getControlTextColor();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the font used for text on controls, from the installed theme.
|
|
*
|
|
* @return The font used for text on controls.
|
|
*/
|
|
public static FontUIResource getControlTextFont()
|
|
{
|
|
if (theme != null)
|
|
return theme.getControlTextFont();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the color used for the desktop background, from the installed
|
|
* theme.
|
|
*
|
|
* @return The color used for the desktop background.
|
|
*/
|
|
public static ColorUIResource getDesktopColor()
|
|
{
|
|
if (theme != null)
|
|
return theme.getDesktopColor();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the color used to draw focus highlights, from the installed
|
|
* theme.
|
|
*
|
|
* @return The color used to draw focus highlights.
|
|
*/
|
|
public static ColorUIResource getFocusColor()
|
|
{
|
|
if (theme != null)
|
|
return theme.getFocusColor();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the color used to draw highlighted text, from the installed
|
|
* theme.
|
|
*
|
|
* @return The color used to draw highlighted text.
|
|
*/
|
|
public static ColorUIResource getHighlightedTextColor()
|
|
{
|
|
if (theme != null)
|
|
return theme.getHighlightedTextColor();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the color used to draw text on inactive controls, from the
|
|
* installed theme.
|
|
*
|
|
* @return The color used to draw text on inactive controls.
|
|
*/
|
|
public static ColorUIResource getInactiveControlTextColor()
|
|
{
|
|
if (theme != null)
|
|
return theme.getInactiveControlTextColor();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the color used to draw inactive system text, from the installed
|
|
* theme.
|
|
*
|
|
* @return The color used to draw inactive system text.
|
|
*/
|
|
public static ColorUIResource getInactiveSystemTextColor()
|
|
{
|
|
if (theme != null)
|
|
return theme.getInactiveSystemTextColor();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the background color for menu items, from the installed theme.
|
|
*
|
|
* @return The background color for menu items.
|
|
*
|
|
* @see #getMenuSelectedBackground()
|
|
*/
|
|
public static ColorUIResource getMenuBackground()
|
|
{
|
|
if (theme != null)
|
|
return theme.getMenuBackground();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the foreground color for disabled menu items, from the installed
|
|
* theme.
|
|
*
|
|
* @return The foreground color for disabled menu items.
|
|
*
|
|
* @see #getMenuForeground()
|
|
*/
|
|
public static ColorUIResource getMenuDisabledForeground()
|
|
{
|
|
if (theme != null)
|
|
return theme.getMenuDisabledForeground();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the foreground color for menu items, from the installed theme.
|
|
*
|
|
* @return The foreground color for menu items.
|
|
*
|
|
* @see #getMenuDisabledForeground()
|
|
* @see #getMenuSelectedForeground()
|
|
*/
|
|
public static ColorUIResource getMenuForeground()
|
|
{
|
|
if (theme != null)
|
|
return theme.getMenuForeground();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the background color for selected menu items, from the installed
|
|
* theme.
|
|
*
|
|
* @return The background color for selected menu items.
|
|
*
|
|
* @see #getMenuBackground()
|
|
*/
|
|
public static ColorUIResource getMenuSelectedBackground()
|
|
{
|
|
if (theme != null)
|
|
return theme.getMenuSelectedBackground();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the foreground color for selected menu items, from the installed
|
|
* theme.
|
|
*
|
|
* @return The foreground color for selected menu items.
|
|
*
|
|
* @see #getMenuForeground()
|
|
*/
|
|
public static ColorUIResource getMenuSelectedForeground()
|
|
{
|
|
if (theme != null)
|
|
return theme.getMenuSelectedForeground();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the font used for text in menus, from the installed theme.
|
|
*
|
|
* @return The font used for text in menus.
|
|
*/
|
|
public static FontUIResource getMenuTextFont()
|
|
{
|
|
if (theme != null)
|
|
return theme.getMenuTextFont();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the primary color for controls, from the installed theme.
|
|
*
|
|
* @return The primary color for controls.
|
|
*/
|
|
public static ColorUIResource getPrimaryControl()
|
|
{
|
|
if (theme != null)
|
|
return theme.getPrimaryControl();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the primary color for the dark shadow on controls, from the
|
|
* installed theme.
|
|
*
|
|
* @return The primary color for the dark shadow on controls.
|
|
*/
|
|
public static ColorUIResource getPrimaryControlDarkShadow()
|
|
{
|
|
if (theme != null)
|
|
return theme.getPrimaryControlDarkShadow();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the primary color for the highlight on controls, from the
|
|
* installed theme.
|
|
*
|
|
* @return The primary color for the highlight on controls.
|
|
*/
|
|
public static ColorUIResource getPrimaryControlHighlight()
|
|
{
|
|
if (theme != null)
|
|
return theme.getPrimaryControlHighlight();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the primary color for the information on controls, from the
|
|
* installed theme.
|
|
*
|
|
* @return The primary color for the information on controls.
|
|
*/
|
|
public static ColorUIResource getPrimaryControlInfo()
|
|
{
|
|
if (theme != null)
|
|
return theme.getPrimaryControlInfo();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the primary color for the shadow on controls, from the installed
|
|
* theme.
|
|
*
|
|
* @return The primary color for the shadow on controls.
|
|
*/
|
|
public static ColorUIResource getPrimaryControlShadow()
|
|
{
|
|
if (theme != null)
|
|
return theme.getPrimaryControlShadow();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the background color for separators, from the installed theme.
|
|
*
|
|
* @return The background color for separators.
|
|
*/
|
|
public static ColorUIResource getSeparatorBackground()
|
|
{
|
|
if (theme != null)
|
|
return theme.getSeparatorBackground();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the foreground color for separators, from the installed theme.
|
|
*
|
|
* @return The foreground color for separators.
|
|
*/
|
|
public static ColorUIResource getSeparatorForeground()
|
|
{
|
|
if (theme != null)
|
|
return theme.getSeparatorForeground();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the font used for sub text, from the installed theme.
|
|
*
|
|
* @return The font used for sub text.
|
|
*/
|
|
public static FontUIResource getSubTextFont()
|
|
{
|
|
if (theme != null)
|
|
return theme.getSubTextFont();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the color used for system text, from the installed theme.
|
|
*
|
|
* @return The color used for system text.
|
|
*/
|
|
public static ColorUIResource getSystemTextColor()
|
|
{
|
|
if (theme != null)
|
|
return theme.getSystemTextColor();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the font used for system text, from the installed theme.
|
|
*
|
|
* @return The font used for system text.
|
|
*/
|
|
public static FontUIResource getSystemTextFont()
|
|
{
|
|
if (theme != null)
|
|
return theme.getSystemTextFont();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the color used to highlight text, from the installed theme.
|
|
*
|
|
* @return The color used to highlight text.
|
|
*/
|
|
public static ColorUIResource getTextHighlightColor()
|
|
{
|
|
if (theme != null)
|
|
return theme.getTextHighlightColor();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the color used to display user text, from the installed theme.
|
|
*
|
|
* @return The color used to display user text.
|
|
*/
|
|
public static ColorUIResource getUserTextColor()
|
|
{
|
|
if (theme != null)
|
|
return theme.getUserTextColor();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the font used for user text, obtained from the current theme.
|
|
*
|
|
* @return The font used for user text.
|
|
*/
|
|
public static FontUIResource getUserTextFont()
|
|
{
|
|
if (theme != null)
|
|
return theme.getUserTextFont();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the color used for white, from the installed theme.
|
|
*
|
|
* @return The color used for white.
|
|
*/
|
|
public static ColorUIResource getWhite()
|
|
{
|
|
if (theme != null)
|
|
return theme.getWhite();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the window background color, from the installed theme.
|
|
*
|
|
* @return The window background color.
|
|
*/
|
|
public static ColorUIResource getWindowBackground()
|
|
{
|
|
if (theme != null)
|
|
return theme.getWindowBackground();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the window title background color, from the installed theme.
|
|
*
|
|
* @return The window title background color.
|
|
*/
|
|
public static ColorUIResource getWindowTitleBackground()
|
|
{
|
|
if (theme != null)
|
|
return theme.getWindowTitleBackground();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the window title font from the current theme.
|
|
*
|
|
* @return The window title font.
|
|
*
|
|
* @see MetalTheme
|
|
*/
|
|
public static FontUIResource getWindowTitleFont()
|
|
{
|
|
if (theme != null)
|
|
return theme.getWindowTitleFont();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the window title foreground color, from the installed theme.
|
|
*
|
|
* @return The window title foreground color.
|
|
*/
|
|
public static ColorUIResource getWindowTitleForeground()
|
|
{
|
|
if (theme != null)
|
|
return theme.getWindowTitleForeground();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the background color for an inactive window title, from the
|
|
* installed theme.
|
|
*
|
|
* @return The background color for an inactive window title.
|
|
*/
|
|
public static ColorUIResource getWindowTitleInactiveBackground()
|
|
{
|
|
if (theme != null)
|
|
return theme.getWindowTitleInactiveBackground();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns the foreground color for an inactive window title, from the
|
|
* installed theme.
|
|
*
|
|
* @return The foreground color for an inactive window title.
|
|
*/
|
|
public static ColorUIResource getWindowTitleInactiveForeground()
|
|
{
|
|
if (theme != null)
|
|
return theme.getWindowTitleInactiveForeground();
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Sets the current theme for the look and feel. Note that the theme must be
|
|
* set <em>before</em> the look and feel is installed. To change the theme
|
|
* for an already running application that is using the
|
|
* {@link MetalLookAndFeel}, first set the theme with this method, then
|
|
* create a new instance of {@link MetalLookAndFeel} and install it in the
|
|
* usual way (see {@link UIManager#setLookAndFeel(LookAndFeel)}).
|
|
*
|
|
* @param theme the theme (<code>null</code> not permitted).
|
|
*
|
|
* @throws NullPointerException if <code>theme</code> is <code>null</code>.
|
|
*
|
|
* @see #getCurrentTheme()
|
|
*/
|
|
public static void setCurrentTheme(MetalTheme theme)
|
|
{
|
|
if (theme == null)
|
|
throw new NullPointerException("Null 'theme' not permitted.");
|
|
MetalLookAndFeel.theme = theme;
|
|
}
|
|
|
|
/**
|
|
* Sets the ComponentUI classes for all Swing components to the Metal
|
|
* implementations.
|
|
*
|
|
* In particular this sets the following keys:
|
|
*
|
|
* <table>
|
|
* <tr>
|
|
* <th>Key</th><th>Value</th>
|
|
* </tr><tr>
|
|
* <td>ButtonUI</td><td>{@link MetalButtonUI}</td>
|
|
* </tr><tr>
|
|
* <td>CheckBoxUI</td><td>{@link MetalCheckBoxUI}</td>
|
|
* </tr><tr>
|
|
* <td>ComboBoxUI</td><td>{@link MetalComboBoxUI}</td>
|
|
* </tr><tr>
|
|
* <td>DesktopIconUI</td><td>{@link MetalDesktopIconUI}</td>
|
|
* </tr><tr>
|
|
* <td>InternalFrameUI</td><td>{@link MetalInternalFrameUI}</td>
|
|
* </tr><tr>
|
|
* <td>LabelUI</td><td>{@link MetalLabelUI}</td>
|
|
* </tr><tr>
|
|
* <td>PopupMenuSeparatorUI</td><td>{@link MetalPopupMenuSeparatorUI}</td>
|
|
* </tr><tr>
|
|
* <td>ProgressBarUI</td><td>{@link MetalProgressBarUI}</td>
|
|
* </tr><tr>
|
|
* <td>RadioButtonUI</td><td>{@link MetalRadioButtonUI}</td>
|
|
* </tr><tr>
|
|
* <td>RootPaneUI</td><td>{@link MetalRootPaneUI}</td>
|
|
* </tr><tr>
|
|
* <td>ScrollBarUI</td><td>{@link MetalScrollBarUI}</td>
|
|
* </tr><tr>
|
|
* <td>ScrollPaneUI</td><td>{@link MetalScrollPaneUI}</td>
|
|
* </tr><tr>
|
|
* <td>SeparatorUI</td><td>{@link MetalSeparatorUI}</td>
|
|
* </tr><tr>
|
|
* <td>SliderUI</td><td>{@link MetalSliderUI}</td>
|
|
* </tr><tr>
|
|
* <td>SplitPaneUI</td><td>{@link MetalSplitPaneUI}</td>
|
|
* </tr><tr>
|
|
* <td>TabbedPaneUI</td><td>{@link MetalTabbedPaneUI}</td>
|
|
* </tr><tr>
|
|
* <td>TextFieldUI</td><td>{@link MetalTextFieldUI}</td>
|
|
* </tr><tr>
|
|
* <td>ToggleButtonUI</td><td>{@link MetalToggleButtonUI}</td>
|
|
* </tr><tr>
|
|
* <td>ToolBarUI</td><td>{@link MetalToolBarUI}</td>
|
|
* </tr><tr>
|
|
* <td>ToolTipUI</td><td>{@link MetalToolTipUI}</td>
|
|
* </tr><tr>
|
|
* <td>TreeUI</td><td>{@link MetalTreeUI}</td>
|
|
* </tr><tr>
|
|
* </table>
|
|
*
|
|
* @param defaults the UIDefaults where the class defaults are added
|
|
*/
|
|
protected void initClassDefaults(UIDefaults defaults)
|
|
{
|
|
super.initClassDefaults(defaults);
|
|
|
|
// Variables
|
|
Object[] uiDefaults;
|
|
// Initialize Class Defaults
|
|
uiDefaults = new Object[] {
|
|
"ButtonUI", "javax.swing.plaf.metal.MetalButtonUI",
|
|
"CheckBoxUI", "javax.swing.plaf.metal.MetalCheckBoxUI",
|
|
"ComboBoxUI", "javax.swing.plaf.metal.MetalComboBoxUI",
|
|
"DesktopIconUI", "javax.swing.plaf.metal.MetalDesktopIconUI",
|
|
"FileChooserUI", "javax.swing.plaf.metal.MetalFileChooserUI",
|
|
"InternalFrameUI", "javax.swing.plaf.metal.MetalInternalFrameUI",
|
|
"LabelUI", "javax.swing.plaf.metal.MetalLabelUI",
|
|
"MenuBarUI", "javax.swing.plaf.metal.MetalMenuBarUI",
|
|
"PopupMenuSeparatorUI",
|
|
"javax.swing.plaf.metal.MetalPopupMenuSeparatorUI",
|
|
"ProgressBarUI", "javax.swing.plaf.metal.MetalProgressBarUI",
|
|
"RadioButtonUI", "javax.swing.plaf.metal.MetalRadioButtonUI",
|
|
"RootPaneUI", "javax.swing.plaf.metal.MetalRootPaneUI",
|
|
"ScrollBarUI", "javax.swing.plaf.metal.MetalScrollBarUI",
|
|
"ScrollPaneUI", "javax.swing.plaf.metal.MetalScrollPaneUI",
|
|
"SeparatorUI", "javax.swing.plaf.metal.MetalSeparatorUI",
|
|
"SliderUI", "javax.swing.plaf.metal.MetalSliderUI",
|
|
"SplitPaneUI", "javax.swing.plaf.metal.MetalSplitPaneUI",
|
|
"TabbedPaneUI", "javax.swing.plaf.metal.MetalTabbedPaneUI",
|
|
"TextFieldUI", "javax.swing.plaf.metal.MetalTextFieldUI",
|
|
"ToggleButtonUI", "javax.swing.plaf.metal.MetalToggleButtonUI",
|
|
"ToolBarUI", "javax.swing.plaf.metal.MetalToolBarUI",
|
|
"ToolTipUI", "javax.swing.plaf.metal.MetalToolTipUI",
|
|
"TreeUI", "javax.swing.plaf.metal.MetalTreeUI",
|
|
};
|
|
// Add Class Defaults to UI Defaults table
|
|
defaults.putDefaults(uiDefaults);
|
|
}
|
|
|
|
/**
|
|
* Initializes the component defaults for the Metal Look & Feel.
|
|
*
|
|
* In particular this sets the following keys (the colors are given
|
|
* as RGB hex values):
|
|
*
|
|
* <table>
|
|
* <tr>
|
|
* <th>Key</th><th>Value</th>
|
|
* </tr><tr>
|
|
* <td>Button.background</td><td>0xcccccc</td>
|
|
* </tr><tr>
|
|
* <td>Button.border</td><td>{@link MetalBorders#getButtonBorder()}</td>
|
|
* </tr><tr>
|
|
* <td>Button.font</td><td>{@link #getControlTextFont}</td>
|
|
* </tr><tr>
|
|
* <td>Button.margin</td><td><code>new java.awt.Insets(2, 14, 2, 14)</code>
|
|
* </td>
|
|
* </tr><tr>
|
|
* <td>CheckBox.background</td><td>0xcccccc</td>
|
|
* </tr><tr>
|
|
* <td>CheckBoxMenuItem.background</td><td>0xcccccc</td>
|
|
* </tr><tr>
|
|
* <td>ToolBar.background</td><td>0xcccccc</td>
|
|
* </tr><tr>
|
|
* <td>Panel.background</td><td>0xcccccc</td>
|
|
* </tr><tr>
|
|
* <td>Slider.background</td><td>0xcccccc</td>
|
|
* </tr><tr>
|
|
* <td>OptionPane.background</td><td>0xcccccc</td>
|
|
* </tr><tr>
|
|
* <td>ProgressBar.background</td><td>0xcccccc</td>
|
|
* </tr><tr>
|
|
* <td>TabbedPane.background</td><td>0xcccccc</td>
|
|
* </tr><tr>
|
|
* <td>Label.background</td><td>0xcccccc</td>
|
|
* </tr><tr>
|
|
* <td>Label.font</td><td>{@link #getControlTextFont}</td>
|
|
* </tr><tr>
|
|
* <td>Menu.background</td><td>0xcccccc</td>
|
|
* </tr><tr>
|
|
* <td>MenuBar.background</td><td>0xcccccc</td>
|
|
* </tr><tr>
|
|
* <td>MenuItem.background</td><td>0xcccccc</td>
|
|
* </tr><tr>
|
|
* <td>ScrollBar.background</td><td>0xcccccc</td>
|
|
* </tr><tr>
|
|
* <td>PopupMenu.border</td>
|
|
* <td><code>new javax.swing.plaf.metal.MetalBorders.PopupMenuBorder()</td>
|
|
* </tr><tr>
|
|
* </table>
|
|
*
|
|
* @param defaults the UIDefaults instance to which the values are added
|
|
*/
|
|
protected void initComponentDefaults(UIDefaults defaults)
|
|
{
|
|
super.initComponentDefaults(defaults);
|
|
Object[] myDefaults = new Object[] {
|
|
"Button.background", getControl(),
|
|
"Button.border", MetalBorders.getButtonBorder(),
|
|
"Button.darkShadow", getControlDarkShadow(),
|
|
"Button.disabledText", getInactiveControlTextColor(),
|
|
"Button.focus", getFocusColor(),
|
|
"Button.font", getControlTextFont(),
|
|
"Button.foreground", getControlTextColor(),
|
|
"Button.highlight", getControlHighlight(),
|
|
"Button.light", getControlHighlight(),
|
|
"Button.margin", new InsetsUIResource(2, 14, 2, 14),
|
|
"Button.select", getControlShadow(),
|
|
"Button.shadow", getControlShadow(),
|
|
|
|
"CheckBox.background", getControl(),
|
|
"CheckBox.border", MetalBorders.getButtonBorder(),
|
|
"CheckBox.disabledText", getInactiveControlTextColor(),
|
|
"CheckBox.focus", getFocusColor(),
|
|
"CheckBox.font", getControlTextFont(),
|
|
"CheckBox.foreground", getControlTextColor(),
|
|
"CheckBox.icon",
|
|
new UIDefaults.ProxyLazyValue("javax.swing.plaf.metal.MetalCheckBoxIcon"),
|
|
"CheckBox.checkIcon",
|
|
new UIDefaults.ProxyLazyValue("javax.swing.plaf.metal.MetalCheckBoxIcon"),
|
|
"Checkbox.select", getControlShadow(),
|
|
|
|
"CheckBoxMenuItem.acceleratorFont", new FontUIResource("Dialog", Font.PLAIN, 10),
|
|
"CheckBoxMenuItem.acceleratorForeground", getAcceleratorForeground(),
|
|
"CheckBoxMenuItem.acceleratorSelectionForeground", getAcceleratorSelectedForeground(),
|
|
"CheckBoxMenuItem.background", getMenuBackground(),
|
|
"CheckBoxMenuItem.borderPainted", Boolean.TRUE,
|
|
"CheckBoxMenuItem.commandSound", "sounds/MenuItemCommand.wav",
|
|
"CheckBoxMenuItem.checkIcon", MetalIconFactory.getCheckBoxMenuItemIcon(),
|
|
"CheckBoxMenuItem.disabledForeground", getMenuDisabledForeground(),
|
|
"CheckBoxMenuItem.font", getMenuTextFont(),
|
|
"CheckBoxMenuItem.foreground", getMenuForeground(),
|
|
"CheckBoxMenuItem.selectionBackground", getMenuSelectedBackground(),
|
|
"CheckBoxMenuItem.selectionForeground", getMenuSelectedForeground(),
|
|
|
|
"ColorChooser.background", getControl(),
|
|
"ColorChooser.foreground", getControlTextColor(),
|
|
"ColorChooser.rgbBlueMnemonic", new Integer(0),
|
|
"ColorChooser.rgbGreenMnemonic", new Integer(0),
|
|
"ColorChooser.rgbRedMnemonic", new Integer(0),
|
|
"ColorChooser.swatchesDefaultRecentColor", getControl(),
|
|
|
|
"ComboBox.background", getControl(),
|
|
"ComboBox.buttonBackground", getControl(),
|
|
"ComboBox.buttonDarkShadow", getControlDarkShadow(),
|
|
"ComboBox.buttonHighlight", getControlHighlight(),
|
|
"ComboBox.buttonShadow", getControlShadow(),
|
|
"ComboBox.disabledBackground", getControl(),
|
|
"ComboBox.disabledForeground", getInactiveSystemTextColor(),
|
|
"ComboBox.font", getControlTextFont(),
|
|
"ComboBox.foreground", getControlTextColor(),
|
|
"ComboBox.selectionBackground", getPrimaryControlShadow(),
|
|
"ComboBox.selectionForeground", getControlTextColor(),
|
|
|
|
"Desktop.background", getDesktopColor(),
|
|
|
|
"DesktopIcon.background", getControl(),
|
|
"DesktopIcon.foreground", getControlTextColor(),
|
|
"DesktopIcon.width", new Integer(160),
|
|
"DesktopIcon.border", MetalBorders.getDesktopIconBorder(),
|
|
"DesktopIcon.font", getControlTextFont(),
|
|
|
|
"EditorPane.background", getWindowBackground(),
|
|
"EditorPane.caretForeground", getUserTextColor(),
|
|
"EditorPane.font", getControlTextFont(),
|
|
"EditorPane.foreground", getUserTextColor(),
|
|
"EditorPane.inactiveForeground", getInactiveSystemTextColor(),
|
|
"EditorPane.selectionBackground", getTextHighlightColor(),
|
|
"EditorPane.selectionForeground", getHighlightedTextColor(),
|
|
|
|
"FormattedTextField.background", getWindowBackground(),
|
|
"FormattedTextField.border",
|
|
new BorderUIResource(MetalBorders.getTextFieldBorder()),
|
|
"FormattedTextField.caretForeground", getUserTextColor(),
|
|
"FormattedTextField.font", new FontUIResource("Dialog", Font.PLAIN, 12),
|
|
"FormattedTextField.foreground", getUserTextColor(),
|
|
"FormattedTextField.inactiveBackground", getControl(),
|
|
"FormattedTextField.inactiveForeground", getInactiveSystemTextColor(),
|
|
"FormattedTextField.selectionBackground", getTextHighlightColor(),
|
|
"FormattedTextField.selectionForeground", getHighlightedTextColor(),
|
|
|
|
"FileChooser.upFolderIcon",
|
|
MetalIconFactory.getFileChooserUpFolderIcon(),
|
|
"FileChooser.listViewIcon",
|
|
MetalIconFactory.getFileChooserListViewIcon(),
|
|
"FileChooser.newFolderIcon",
|
|
MetalIconFactory.getFileChooserNewFolderIcon(),
|
|
"FileChooser.homeFolderIcon",
|
|
MetalIconFactory.getFileChooserHomeFolderIcon(),
|
|
"FileChooser.detailsViewIcon",
|
|
MetalIconFactory.getFileChooserDetailViewIcon(),
|
|
"FileChooser.fileNameLabelMnemonic", new Integer(78),
|
|
"FileChooser.filesOfTypeLabelMnemonic", new Integer(84),
|
|
"FileChooser.lookInLabelMnemonic", new Integer(73),
|
|
"FileView.computerIcon", MetalIconFactory.getTreeComputerIcon(),
|
|
"FileView.directoryIcon", MetalIconFactory.getTreeFolderIcon(),
|
|
"FileView.fileIcon", MetalIconFactory.getTreeLeafIcon(),
|
|
"FileView.floppyDriveIcon", MetalIconFactory.getTreeFloppyDriveIcon(),
|
|
"FileView.hardDriveIcon", MetalIconFactory.getTreeHardDriveIcon(),
|
|
|
|
"InternalFrame.activeTitleBackground", getWindowTitleBackground(),
|
|
"InternalFrame.activeTitleForeground", getWindowTitleForeground(),
|
|
"InternalFrame.border", new MetalBorders.InternalFrameBorder(),
|
|
"InternalFrame.borderColor", getControl(),
|
|
"InternalFrame.borderDarkShadow", getControlDarkShadow(),
|
|
"InternalFrame.borderHighlight", getControlHighlight(),
|
|
"InternalFrame.borderLight", getControlHighlight(),
|
|
"InternalFrame.borderShadow", getControlShadow(),
|
|
"InternalFrame.icon", MetalIconFactory.getInternalFrameDefaultMenuIcon(),
|
|
"InternalFrame.closeIcon",
|
|
MetalIconFactory.getInternalFrameCloseIcon(16),
|
|
"InternalFrame.closeSound", "sounds/FrameClose.wav",
|
|
"InternalFrame.inactiveTitleBackground", getWindowTitleInactiveBackground(),
|
|
"InternalFrame.inactiveTitleForeground", getWindowTitleInactiveForeground(),
|
|
"InternalFrame.maximizeIcon",
|
|
MetalIconFactory.getInternalFrameMaximizeIcon(16),
|
|
"InternalFrame.maximizeSound", "sounds/FrameMaximize.wav",
|
|
"InternalFrame.iconifyIcon",
|
|
MetalIconFactory.getInternalFrameMinimizeIcon(16),
|
|
"InternalFrame.minimizeSound", "sounds/FrameMinimize.wav",
|
|
"InternalFrame.paletteBorder", new MetalBorders.PaletteBorder(),
|
|
"InternalFrame.paletteCloseIcon", new MetalIconFactory.PaletteCloseIcon(),
|
|
"InternalFrame.paletteTitleHeight", new Integer(11),
|
|
"InternalFrame.restoreDownSound", "sounds/FrameRestoreDown.wav",
|
|
"InternalFrame.restoreUpSound", "sounds/FrameRestoreUp.wav",
|
|
|
|
"Label.background", getControl(),
|
|
"Label.disabledForeground", getInactiveSystemTextColor(),
|
|
"Label.disabledShadow", getControlShadow(),
|
|
"Label.font", getControlTextFont(),
|
|
"Label.foreground", getSystemTextColor(),
|
|
|
|
"List.font", getControlTextFont(),
|
|
"List.background", getWindowBackground(),
|
|
"List.foreground", getUserTextColor(),
|
|
"List.selectionBackground", getTextHighlightColor(),
|
|
"List.selectionForeground", getHighlightedTextColor(),
|
|
"List.focusCellHighlightBorder",
|
|
new LineBorderUIResource(MetalLookAndFeel.getFocusColor()),
|
|
|
|
"Menu.acceleratorFont", new FontUIResource("Dialog", Font.PLAIN, 10),
|
|
"Menu.acceleratorForeground", getAcceleratorForeground(),
|
|
"Menu.acceleratorSelectionForeground", getAcceleratorSelectedForeground(),
|
|
"Menu.arrowIcon", MetalIconFactory.getMenuArrowIcon(),
|
|
"Menu.background", getMenuBackground(),
|
|
"Menu.border", new MetalBorders.MenuItemBorder(),
|
|
"Menu.borderPainted", Boolean.TRUE,
|
|
"MenuItem.commandSound", "sounds/MenuItemCommand.wav",
|
|
"Menu.disabledForeground", getMenuDisabledForeground(),
|
|
"Menu.font", getMenuTextFont(),
|
|
"Menu.foreground", getMenuForeground(),
|
|
"Menu.selectionBackground", getMenuSelectedBackground(),
|
|
"Menu.selectionForeground", getMenuSelectedForeground(),
|
|
"Menu.submenuPopupOffsetX", new Integer(-4),
|
|
"Menu.submenuPopupOffsetY", new Integer(-3),
|
|
|
|
"MenuBar.background", getMenuBackground(),
|
|
"MenuBar.border", new MetalBorders.MenuBarBorder(),
|
|
"MenuBar.font", getMenuTextFont(),
|
|
"MenuBar.foreground", getMenuForeground(),
|
|
"MenuBar.highlight", getControlHighlight(),
|
|
"MenuBar.shadow", getControlShadow(),
|
|
|
|
"MenuItem.acceleratorDelimiter", "-",
|
|
"MenuItem.acceleratorFont", new FontUIResource("Dialog", Font.PLAIN, 10),
|
|
"MenuItem.acceleratorForeground", getAcceleratorForeground(),
|
|
"MenuItem.acceleratorSelectionForeground", getAcceleratorSelectedForeground(),
|
|
"MenuItem.arrowIcon", MetalIconFactory.getMenuItemArrowIcon(),
|
|
"MenuItem.background", getMenuBackground(),
|
|
"MenuItem.border", new MetalBorders.MenuItemBorder(),
|
|
"MenuItem.borderPainted", Boolean.TRUE,
|
|
"MenuItem.disabledForeground", getMenuDisabledForeground(),
|
|
"MenuItem.font", getMenuTextFont(),
|
|
"MenuItem.foreground", getMenuForeground(),
|
|
"MenuItem.selectionBackground", getMenuSelectedBackground(),
|
|
"MenuItem.selectionForeground", getMenuSelectedForeground(),
|
|
|
|
"OptionPane.background", getControl(),
|
|
"OptionPane.errorSound", "sounds/OptionPaneError.wav",
|
|
"OptionPane.informationSound", "sounds/OptionPaneInformation.wav",
|
|
"OptionPane.questionSound", "sounds/OptionPaneQuestion.wav",
|
|
"OptionPane.warningSound", "sounds/OptionPaneWarning.wav",
|
|
"OptionPane.errorDialog.border.background", new ColorUIResource(153, 51, 51),
|
|
"OptionPane.errorDialog.titlePane.background", new ColorUIResource(255, 153, 153),
|
|
"OptionPane.errorDialog.titlePane.foreground", new ColorUIResource(51, 0, 0),
|
|
"OptionPane.errorDialog.titlePane.shadow", new ColorUIResource(204, 102, 102),
|
|
"OptionPane.foreground", getControlTextColor(),
|
|
"OptionPane.messageForeground", getControlTextColor(),
|
|
"OptionPane.questionDialog.border.background", new ColorUIResource(51, 102, 51),
|
|
"OptionPane.questionDialog.titlePane.background", new ColorUIResource(153, 204, 153),
|
|
"OptionPane.questionDialog.titlePane.foreground", new ColorUIResource(0, 51, 0),
|
|
"OptionPane.questionDialog.titlePane.shadow", new ColorUIResource(102, 153, 102),
|
|
"OptionPane.warningDialog.border.background", new ColorUIResource(153, 102, 51),
|
|
"OptionPane.warningDialog.titlePane.background", new ColorUIResource(255, 204, 153),
|
|
"OptionPane.warningDialog.titlePane.foreground", new ColorUIResource(102, 51, 0),
|
|
"OptionPane.warningDialog.titlePane.shadow", new ColorUIResource(204, 153, 102),
|
|
|
|
"Panel.background", getControl(),
|
|
"Panel.foreground", getUserTextColor(),
|
|
|
|
"PasswordField.background", getWindowBackground(),
|
|
"PasswordField.border",
|
|
new BorderUIResource(MetalBorders.getTextFieldBorder()),
|
|
"PasswordField.caretForeground", getUserTextColor(),
|
|
"PasswordField.foreground", getUserTextColor(),
|
|
"PasswordField.font", new FontUIResource("Dialog", Font.PLAIN, 12),
|
|
"PasswordField.inactiveBackground", getControl(),
|
|
"PasswordField.inactiveForeground", getInactiveSystemTextColor(),
|
|
"PasswordField.selectionBackground", getTextHighlightColor(),
|
|
"PasswordField.selectionForeground", getHighlightedTextColor(),
|
|
|
|
"PopupMenu.background", getMenuBackground(),
|
|
"PopupMenu.border", new MetalBorders.PopupMenuBorder(),
|
|
"PopupMenu.font", getMenuTextFont(),
|
|
"PopupMenu.foreground", getMenuForeground(),
|
|
"PopupMenu.popupSound", "sounds/PopupMenuPopup.wav",
|
|
|
|
"ProgressBar.background", getControl(),
|
|
"ProgressBar.border", new BorderUIResource.LineBorderUIResource(getControlDarkShadow(), 1),
|
|
"ProgressBar.font", getControlTextFont(),
|
|
"ProgressBar.foreground", getPrimaryControlShadow(),
|
|
"ProgressBar.selectionBackground", getPrimaryControlDarkShadow(),
|
|
"ProgressBar.selectionForeground", getControl(),
|
|
|
|
"RadioButton.background", getControl(),
|
|
"RadioButton.darkShadow", getControlDarkShadow(),
|
|
"RadioButton.disabledText", getInactiveControlTextColor(),
|
|
"RadioButton.icon",
|
|
new UIDefaults.LazyValue()
|
|
{
|
|
public Object createValue(UIDefaults def)
|
|
{
|
|
return MetalIconFactory.getRadioButtonIcon();
|
|
}
|
|
},
|
|
"RadioButton.focus", MetalLookAndFeel.getFocusColor(),
|
|
"RadioButton.font", MetalLookAndFeel.getControlTextFont(),
|
|
"RadioButton.foreground", getControlTextColor(),
|
|
"RadioButton.highlight", getControlHighlight(),
|
|
"RadioButton.light", getControlHighlight(),
|
|
"RadioButton.select", getControlShadow(),
|
|
"RadioButton.shadow", getControlShadow(),
|
|
|
|
"RadioButtonMenuItem.acceleratorFont", new Font("Dialog", Font.PLAIN, 10),
|
|
"RadioButtonMenuItem.acceleratorForeground", getAcceleratorForeground(),
|
|
"RadioButtonMenuItem.acceleratorSelectionForeground", getAcceleratorSelectedForeground(),
|
|
"RadioButtonMenuItem.background", getMenuBackground(),
|
|
"RadioButtonMenuItem.border", new MetalBorders.MenuItemBorder(),
|
|
"RadioButtonMenuItem.borderPainted", Boolean.TRUE,
|
|
"RadioButtonMenuItem.checkIcon",
|
|
MetalIconFactory.getRadioButtonMenuItemIcon(),
|
|
"RadioButtonMenuItem.commandSound", "sounds/MenuItemCommand.wav",
|
|
"RadioButtonMenuItem.disabledForeground", getMenuDisabledForeground(),
|
|
"RadioButtonMenuItem.font", getMenuTextFont(),
|
|
"RadioButtonMenuItem.foreground", getMenuForeground(),
|
|
"RadioButtonMenuItem.margin", new InsetsUIResource(2, 2, 2, 2),
|
|
"RadioButtonMenuItem.selectionBackground",
|
|
MetalLookAndFeel.getMenuSelectedBackground(),
|
|
"RadioButtonMenuItem.selectionForeground",
|
|
MetalLookAndFeel.getMenuSelectedForeground(),
|
|
|
|
"ScrollBar.allowsAbsolutePositioning", Boolean.TRUE,
|
|
"ScrollBar.background", getControl(),
|
|
"ScrollBar.darkShadow", getControlDarkShadow(),
|
|
"ScrollBar.foreground", getControl(),
|
|
"ScrollBar.highlight", getControlHighlight(),
|
|
"ScrollBar.shadow", getControlShadow(),
|
|
"ScrollBar.thumb", getPrimaryControlShadow(),
|
|
"ScrollBar.thumbDarkShadow", getControlDarkShadow(),
|
|
"ScrollBar.thumbHighlight", getPrimaryControl(),
|
|
"ScrollBar.thumbShadow", getPrimaryControlDarkShadow(),
|
|
"ScrollBar.track", getControl(),
|
|
"ScrollBar.trackHighlight", getControlDarkShadow(),
|
|
"ScrollBar.width", new Integer(17),
|
|
|
|
"ScrollPane.background", getControl(),
|
|
"ScrollPane.border", new MetalBorders.ScrollPaneBorder(),
|
|
"ScrollPane.foreground", getControlTextColor(),
|
|
|
|
"Separator.background", getSeparatorBackground(),
|
|
"Separator.foreground", getSeparatorForeground(),
|
|
"Separator.highlight", getControlHighlight(),
|
|
"Separator.shadow", getControlShadow(),
|
|
|
|
"Slider.background", getControl(),
|
|
"Slider.focus", getFocusColor(),
|
|
"Slider.focusInsets", new InsetsUIResource(0, 0, 0, 0),
|
|
"Slider.foreground", getPrimaryControlShadow(),
|
|
"Slider.highlight", getControlHighlight(),
|
|
"Slider.horizontalThumbIcon",
|
|
MetalIconFactory.getHorizontalSliderThumbIcon(),
|
|
"Slider.majorTickLength", new Integer(6),
|
|
"Slider.shadow", getControlShadow(),
|
|
"Slider.trackWidth", new Integer(7),
|
|
"Slider.verticalThumbIcon",
|
|
MetalIconFactory.getVerticalSliderThumbIcon(),
|
|
|
|
"Spinner.arrowButtonInsets", new InsetsUIResource(0, 0, 0, 0),
|
|
"Spinner.background", getControl(),
|
|
"Spinner.border", MetalBorders.getTextFieldBorder(),
|
|
"Spinner.font", getControlTextFont(),
|
|
"Spinner.foreground", getControl(),
|
|
|
|
"SplitPane.background", getControl(),
|
|
"SplitPane.darkShadow", getControlDarkShadow(),
|
|
"SplitPane.dividerFocusColor", getPrimaryControl(),
|
|
"SplitPane.dividerSize", new Integer(10),
|
|
"SplitPane.highlight", getControlHighlight(),
|
|
"SplitPane.shadow", getControlShadow(),
|
|
|
|
"SplitPaneDivider.draggingColor", Color.DARK_GRAY,
|
|
|
|
"TabbedPane.background", getControlShadow(),
|
|
"TabbedPane.contentBorderInsets", new InsetsUIResource(2, 2, 3, 3),
|
|
"TabbedPane.contentOpaque", Boolean.TRUE,
|
|
"TabbedPane.darkShadow", getControlDarkShadow(),
|
|
"TabbedPane.focus", getPrimaryControlDarkShadow(),
|
|
"TabbedPane.font", getControlTextFont(),
|
|
"TabbedPane.foreground", getControlTextColor(),
|
|
"TabbedPane.highlight", getControlHighlight(),
|
|
"TabbedPane.light", getControl(),
|
|
"TabbedPane.selected", getControl(), // overridden in OceanTheme
|
|
"TabbedPane.selectHighlight", getControlHighlight(),
|
|
"TabbedPane.selectedTabPadInsets", new InsetsUIResource(2, 2, 2, 1),
|
|
"TabbedPane.shadow", getControlShadow(),
|
|
"TabbedPane.tabAreaBackground", getControl(), // overridden in OceanTheme
|
|
"TabbedPane.tabAreaInsets", new InsetsUIResource(4, 2, 0, 6), // dito
|
|
"TabbedPane.tabInsets", new InsetsUIResource(0, 9, 1, 9),
|
|
|
|
// new properties in OceanTheme:
|
|
// TabbedPane.contentAreaColor
|
|
// TabbedPane.unselectedBackground
|
|
|
|
"Table.background", getWindowBackground(),
|
|
"Table.focusCellBackground", getWindowBackground(),
|
|
"Table.focusCellForeground", getControlTextColor(),
|
|
"Table.foreground", getControlTextColor(),
|
|
"Table.focusCellHighlightBorder",
|
|
new BorderUIResource.LineBorderUIResource(getFocusColor()),
|
|
"Table.focusCellBackground", getWindowBackground(),
|
|
"Table.gridColor", getControlDarkShadow(),
|
|
"Table.selectionBackground", new ColorUIResource(204, 204, 255),
|
|
"Table.selectionForeground", new ColorUIResource(0, 0, 0),
|
|
|
|
"TableHeader.background", getControl(),
|
|
"TableHeader.cellBorder", new MetalBorders.TableHeaderBorder(),
|
|
"TableHeader.foreground", getControlTextColor(),
|
|
|
|
"TextArea.background", getWindowBackground(),
|
|
"TextArea.caretForeground", getUserTextColor(),
|
|
"TextArea.font", new FontUIResource("Dialog", Font.PLAIN, 12),
|
|
"TextArea.foreground", getUserTextColor(),
|
|
"TextArea.inactiveForeground", getInactiveSystemTextColor(),
|
|
"TextArea.selectionBackground", getTextHighlightColor(),
|
|
"TextArea.selectionForeground", getHighlightedTextColor(),
|
|
|
|
"TextField.background", getWindowBackground(),
|
|
"TextField.border",
|
|
new BorderUIResource(MetalBorders.getTextFieldBorder()),
|
|
"TextField.caretForeground", getUserTextColor(),
|
|
"TextField.darkShadow", getControlDarkShadow(),
|
|
"TextField.font", new FontUIResource("Dialog", Font.PLAIN, 12),
|
|
"TextField.foreground", getUserTextColor(),
|
|
"TextField.highlight", getControlHighlight(),
|
|
"TextField.inactiveBackground", getControl(),
|
|
"TextField.inactiveForeground", getInactiveSystemTextColor(),
|
|
"TextField.light", getControlHighlight(),
|
|
"TextField.selectionBackground", getTextHighlightColor(),
|
|
"TextField.selectionForeground", getHighlightedTextColor(),
|
|
"TextField.shadow", getControlShadow(),
|
|
|
|
"TextPane.background", getWindowBackground(),
|
|
"TextPane.caretForeground", getUserTextColor(),
|
|
"TextPane.font", new FontUIResource("Dialog", Font.PLAIN, 12),
|
|
"TextPane.foreground", getUserTextColor(),
|
|
"TextPane.inactiveForeground", getInactiveSystemTextColor(),
|
|
"TextPane.selectionBackground", getTextHighlightColor(),
|
|
"TextPane.selectionForeground", getHighlightedTextColor(),
|
|
|
|
"TitledBorder.border", new LineBorderUIResource(getPrimaryControl(), 1),
|
|
"TitledBorder.font", getControlTextFont(),
|
|
"TitledBorder.titleColor", getSystemTextColor(),
|
|
|
|
"ToggleButton.background", getControl(),
|
|
"ToggleButton.border", MetalBorders.getToggleButtonBorder(),
|
|
"ToggleButton.darkShadow", getControlDarkShadow(),
|
|
"ToggleButton.disabledText", getInactiveControlTextColor(),
|
|
"ToggleButton.focus", getFocusColor(),
|
|
"ToggleButton.font", getControlTextFont(),
|
|
"ToggleButton.foreground", getControlTextColor(),
|
|
"ToggleButton.highlight", getControlHighlight(),
|
|
"ToggleButton.light", getControlHighlight(),
|
|
"ToggleButton.margin", new InsetsUIResource(2, 14, 2, 14),
|
|
"ToggleButton.select", getControlShadow(),
|
|
"ToggleButton.shadow", getControlShadow(),
|
|
|
|
"ToolBar.background", getMenuBackground(),
|
|
"ToolBar.darkShadow", getControlDarkShadow(),
|
|
"ToolBar.dockingBackground", getMenuBackground(),
|
|
"ToolBar.dockingForeground", getPrimaryControlDarkShadow(),
|
|
"ToolBar.floatingBackground", getMenuBackground(),
|
|
"ToolBar.floatingForeground", getPrimaryControl(),
|
|
"ToolBar.font", getMenuTextFont(),
|
|
"ToolBar.foreground", getMenuForeground(),
|
|
"ToolBar.highlight", getControlHighlight(),
|
|
"ToolBar.light", getControlHighlight(),
|
|
"ToolBar.shadow", getControlShadow(),
|
|
"ToolBar.border", new MetalBorders.ToolBarBorder(),
|
|
"ToolBar.rolloverBorder", MetalBorders.getToolbarButtonBorder(),
|
|
"ToolBar.nonrolloverBorder", MetalBorders.getToolbarButtonBorder(),
|
|
|
|
"ToolTip.background", getPrimaryControl(),
|
|
"ToolTip.backgroundInactive", getControl(),
|
|
"ToolTip.border", new BorderUIResource.LineBorderUIResource(getPrimaryControlDarkShadow(), 1),
|
|
"ToolTip.borderInactive", new BorderUIResource.LineBorderUIResource(getControlDarkShadow(), 1),
|
|
"ToolTip.font", new FontUIResource("Dialog", Font.PLAIN, 12),
|
|
"ToolTip.foreground", getPrimaryControlInfo(),
|
|
"ToolTip.foregroundInactive", getControlDarkShadow(),
|
|
"ToolTip.hideAccelerator", Boolean.FALSE,
|
|
|
|
"Tree.background", getWindowBackground(),
|
|
"Tree.closedIcon", MetalIconFactory.getTreeFolderIcon(),
|
|
"Tree.collapsedIcon", MetalIconFactory.getTreeControlIcon(true),
|
|
"Tree.expandedIcon", MetalIconFactory.getTreeControlIcon(false),
|
|
"Tree.font", new FontUIResource("Dialog", Font.PLAIN, 12),
|
|
"Tree.foreground", getUserTextColor(),
|
|
"Tree.hash", getPrimaryControl(),
|
|
"Tree.leafIcon", MetalIconFactory.getTreeLeafIcon(),
|
|
"Tree.leftChildIndent", new Integer(7),
|
|
"Tree.line", getPrimaryControl(),
|
|
"Tree.openIcon", MetalIconFactory.getTreeFolderIcon(),
|
|
"Tree.rightChildIndent", new Integer(13),
|
|
"Tree.rowHeight", new Integer(0),
|
|
"Tree.scrollsOnExpand", Boolean.TRUE,
|
|
"Tree.selectionBackground", getTextHighlightColor(),
|
|
"Tree.selectionBorder", new BorderUIResource.LineBorderUIResource(new Color(102, 102, 153)),
|
|
"Tree.selectionBorderColor", getFocusColor(),
|
|
"Tree.selectionForeground", getHighlightedTextColor(),
|
|
"Tree.textBackground", getWindowBackground(),
|
|
"Tree.textForeground", getUserTextColor(),
|
|
|
|
"Viewport.background", getControl(),
|
|
"Viewport.foreground", getUserTextColor()
|
|
};
|
|
defaults.putDefaults(myDefaults);
|
|
}
|
|
|
|
/**
|
|
* Initializes the system color defaults.
|
|
*
|
|
* In particular this sets the following keys:
|
|
*
|
|
* <table>
|
|
* <tr>
|
|
* <th>Key</th><th>Value</th><th>Description</th>
|
|
* </tr><tr>
|
|
* <td>control</td><td>0xcccccc</td><td>The default color for components</td>
|
|
* </tr>
|
|
* </table>
|
|
*/
|
|
protected void initSystemColorDefaults(UIDefaults defaults)
|
|
{
|
|
super.initSystemColorDefaults(defaults);
|
|
Object[] uiDefaults;
|
|
uiDefaults = new Object[] {
|
|
"control", new ColorUIResource(getControl()),
|
|
"desktop", new ColorUIResource(getDesktopColor())
|
|
};
|
|
defaults.putDefaults(uiDefaults);
|
|
}
|
|
|
|
/**
|
|
* Returns the current theme for the Metal look and feel. The default is
|
|
* an instance of {@link OceanTheme}.
|
|
*
|
|
* @return The current theme (never <code>null</code>).
|
|
*
|
|
* @see #setCurrentTheme(MetalTheme)
|
|
*/
|
|
public static MetalTheme getCurrentTheme()
|
|
{
|
|
if (theme == null)
|
|
{
|
|
// swing.metalTheme property documented here:
|
|
// http://java.sun.com/j2se/1.5.0/docs/guide/swing/1.5/index.html
|
|
if ("steel".equals(SystemProperties.getProperty("swing.metalTheme")))
|
|
theme = new DefaultMetalTheme();
|
|
else
|
|
theme = new OceanTheme();
|
|
}
|
|
return theme;
|
|
}
|
|
|
|
/**
|
|
* Returns <code>true</code> because the Metal look
|
|
* and feel supports window decorations for toplevel
|
|
* containers.
|
|
*
|
|
* @return <code>true</code>
|
|
*/
|
|
public boolean getSupportsWindowDecorations()
|
|
{
|
|
return true;
|
|
}
|
|
}
|