diff options
Diffstat (limited to 'libjava/javax/swing/plaf/metal')
-rw-r--r-- | libjava/javax/swing/plaf/metal/DefaultMetalTheme.java | 143 | ||||
-rw-r--r-- | libjava/javax/swing/plaf/metal/MetalLookAndFeel.java | 288 | ||||
-rw-r--r-- | libjava/javax/swing/plaf/metal/MetalTheme.java | 259 |
3 files changed, 666 insertions, 24 deletions
diff --git a/libjava/javax/swing/plaf/metal/DefaultMetalTheme.java b/libjava/javax/swing/plaf/metal/DefaultMetalTheme.java new file mode 100644 index 00000000000..7c91eaadcb5 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/DefaultMetalTheme.java @@ -0,0 +1,143 @@ +/* DefaultMetalTheme.java -- + Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA +02111-1307 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 java.awt.Font; + +import javax.swing.plaf.ColorUIResource; +import javax.swing.plaf.FontUIResource; + +public class DefaultMetalTheme extends MetalTheme +{ + private static final ColorUIResource PRIMARY1 = + new ColorUIResource(102, 102, 153); + private static final ColorUIResource PRIMARY2 = + new ColorUIResource(153, 153, 204); + private static final ColorUIResource PRIMARY3 = + new ColorUIResource(204, 204, 255); + private static final ColorUIResource SECONDARY1 = + new ColorUIResource(102, 102, 102); + private static final ColorUIResource SECONDARY2 = + new ColorUIResource(153, 153, 153); + private static final ColorUIResource SECONDARY3 = + new ColorUIResource(204, 204, 204); + + private static final FontUIResource CONTROL_TEXT_FONT = + new FontUIResource("Dialog", Font.BOLD, 12); + private static final FontUIResource MENU_TEXT_FONT = + new FontUIResource("Dialog", Font.BOLD, 12); + private static final FontUIResource SUB_TEXT_FONT = + new FontUIResource("Dialog", Font.PLAIN, 10); + private static final FontUIResource SYSTEM_TEXT_FONT = + new FontUIResource("Dialog", Font.PLAIN, 12); + private static final FontUIResource USER_TEXT_FONT = + new FontUIResource("Dialog", Font.PLAIN, 12); + private static final FontUIResource WINDOW_TITLE_FONT = + new FontUIResource("Dialog", Font.BOLD, 12); + + public DefaultMetalTheme() + { + // Do nothing here. + } + + public String getName() + { + return "Steel"; + } + + protected ColorUIResource getPrimary1() + { + return PRIMARY1; + } + + protected ColorUIResource getPrimary2() + { + return PRIMARY2; + } + + protected ColorUIResource getPrimary3() + { + return PRIMARY3; + } + + protected ColorUIResource getSecondary1() + { + return SECONDARY1; + } + + protected ColorUIResource getSecondary2() + { + return SECONDARY2; + } + + protected ColorUIResource getSecondary3() + { + return SECONDARY3; + } + + public FontUIResource getControlTextFont() + { + return CONTROL_TEXT_FONT; + } + + public FontUIResource getMenuTextFont() + { + return MENU_TEXT_FONT; + } + + public FontUIResource getSubTextFont() + { + return SUB_TEXT_FONT; + } + + public FontUIResource getSystemTextFont() + { + return SYSTEM_TEXT_FONT; + } + + public FontUIResource getUserTextFont() + { + return USER_TEXT_FONT; + } + + public FontUIResource getWindowTitleFont() + { + return WINDOW_TITLE_FONT; + } +} diff --git a/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java b/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java index fb6f27b88c1..b33205004b0 100644 --- a/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java +++ b/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java @@ -36,35 +36,275 @@ 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 javax.swing.UIDefaults; +import javax.swing.plaf.ColorUIResource; +import javax.swing.plaf.FontUIResource; import javax.swing.plaf.basic.BasicLookAndFeel; public class MetalLookAndFeel extends BasicLookAndFeel { private static final long serialVersionUID = 6680646159193457980L; - - public boolean isNativeLookAndFeel() { return true; } - public boolean isSupportedLookAndFeel() { return true; } - public String getDescription() { return "Metal look and feel"; } - public String getID() { return "MetalLookAndFeel"; } - public String getName() { return "MetalLookAndFeel"; } - - - UIDefaults LAF_defaults; - - public MetalLookAndFeel() - { - } - - public UIDefaults getDefaults() - { - if (LAF_defaults == null) - LAF_defaults = super.getDefaults(); - - // Returns the default values for this look and feel. - return LAF_defaults; - } - } + private static MetalTheme theme; + private UIDefaults LAF_defaults; + + public MetalLookAndFeel() + { + createDefaultTheme(); + } + + protected void createDefaultTheme() + { + setCurrentTheme(new DefaultMetalTheme()); + } + + public boolean isNativeLookAndFeel() + { + return true; + } + + public boolean isSupportedLookAndFeel() + { + return true; + } + + public String getDescription() + { + return "Metal look and feel"; + } + + public String getID() + { + return "MetalLookAndFeel"; + } + + public String getName() + { + return "MetalLookAndFeel"; + } + + public UIDefaults getDefaults() + { + if (LAF_defaults == null) + LAF_defaults = super.getDefaults(); + + // Returns the default values for this look and feel. + return LAF_defaults; + } + + public static ColorUIResource getAcceleratorForeground() + { + return theme.getAcceleratorForeground(); + } + + public static ColorUIResource getAcceleratorSelectedForeground() + { + return theme.getAcceleratorSelectedForeground(); + } + + public static ColorUIResource getBlack() + { + return theme.getBlack(); + } + + public static ColorUIResource getControl() + { + return theme.getControl(); + } + + public static ColorUIResource getControlDarkShadow() + { + return theme.getControlDarkShadow(); + } + + public static ColorUIResource getControlDisabled() + { + return theme.getControlDisabled(); + } + + public static ColorUIResource getControlHighlight() + { + return theme.getControlHighlight(); + } + + public static ColorUIResource getControlInfo() + { + return theme.getControlInfo(); + } + + public static ColorUIResource getControlShadow() + { + return theme.getControlShadow(); + } + + public static ColorUIResource getControlTextColor() + { + return theme.getControlTextColor(); + } + + public static FontUIResource getControlTextFont() + { + return theme.getControlTextFont(); + } + + public static ColorUIResource getDesktopColor() + { + return theme.getDesktopColor(); + } + + public static ColorUIResource getFocusColor() + { + return theme.getFocusColor(); + } + + public static ColorUIResource getHighlightedTextColor() + { + return theme.getHighlightedTextColor(); + } + + public static ColorUIResource getInactiveControlTextColor() + { + return theme.getInactiveControlTextColor(); + } + + public static ColorUIResource getInactiveSystemTextColor() + { + return theme.getInactiveSystemTextColor(); + } + + public static ColorUIResource getMenuBackground() + { + return theme.getMenuBackground(); + } + + public static ColorUIResource getMenuDisabledForeground() + { + return theme.getMenuDisabledForeground(); + } + + public static ColorUIResource getMenuForeground() + { + return theme.getMenuForeground(); + } + + public static ColorUIResource getMenuSelectedBackground() + { + return theme.getMenuSelectedBackground(); + } + + public static ColorUIResource getMenuSelectedForeground() + { + return theme.getMenuSelectedForeground(); + } + + public static FontUIResource getMenuTextFont() + { + return theme.getMenuTextFont(); + } + + public static ColorUIResource getPrimaryControl() + { + return theme.getPrimaryControl(); + } + + public static ColorUIResource getPrimaryControlDarkShadow() + { + return theme.getPrimaryControlDarkShadow(); + } + + public static ColorUIResource getPrimaryControlHighlight() + { + return theme.getPrimaryControlHighlight(); + } + + public static ColorUIResource getPrimaryControlInfo() + { + return theme.getPrimaryControlInfo(); + } + + public static ColorUIResource getPrimaryControlShadow() + { + return theme.getPrimaryControlShadow(); + } + + public static ColorUIResource getSeparatorBackground() + { + return theme.getSeparatorBackground(); + } + + public static ColorUIResource getSeparatorForeground() + { + return theme.getSeparatorForeground(); + } + + public static FontUIResource getSubTextFont() + { + return theme.getSubTextFont(); + } + + public static ColorUIResource getSystemTextColor() + { + return theme.getSystemTextColor(); + } + + public static FontUIResource getSystemTextFont() + { + return theme.getSystemTextFont(); + } + + public static ColorUIResource getTextHighlightColor() + { + return theme.getTextHighlightColor(); + } + + public static ColorUIResource getUserTextColor() + { + return theme.getUserTextColor(); + } + + public static FontUIResource getUserTextFont() + { + return theme.getUserTextFont(); + } + + public static ColorUIResource getWhite() + { + return theme.getWhite(); + } + + public static ColorUIResource getWindowBackground() + { + return theme.getWindowBackground(); + } + + public static ColorUIResource getWindowTitleBackground() + { + return theme.getWindowTitleBackground(); + } + + public static FontUIResource getWindowTitleFont() + { + return theme.getWindowTitleFont(); + } + + public static ColorUIResource getWindowTitleForeground() + { + return theme.getWindowTitleForeground(); + } + + public static ColorUIResource getWindowTitleInactiveBackground() + { + return theme.getWindowTitleInactiveBackground(); + } + + public static ColorUIResource getWindowTitleInactiveForeground() + { + return theme.getWindowTitleInactiveForeground(); + } + + public static void setCurrentTheme(MetalTheme theme) + { + MetalLookAndFeel.theme = theme; + } +} diff --git a/libjava/javax/swing/plaf/metal/MetalTheme.java b/libjava/javax/swing/plaf/metal/MetalTheme.java new file mode 100644 index 00000000000..970f8309570 --- /dev/null +++ b/libjava/javax/swing/plaf/metal/MetalTheme.java @@ -0,0 +1,259 @@ +/* MetalTheme.java -- + Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA +02111-1307 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 java.awt.Color; + +import javax.swing.UIDefaults; +import javax.swing.plaf.ColorUIResource; +import javax.swing.plaf.FontUIResource; + +public abstract class MetalTheme +{ + private ColorUIResource BLACK = new ColorUIResource(Color.BLACK); + private ColorUIResource WHITE = new ColorUIResource(Color.WHITE); + + public MetalTheme() + { + // Do nothing here. + } + + public abstract String getName(); + + public void addCustomEntriesToTable(UIDefaults table) + { + // Do nothing here. + // This method needs to be overloaded to actuall do something. + } + + public ColorUIResource getAcceleratorForeground() + { + return getPrimary1(); + } + + public ColorUIResource getAcceleratorSelectedForeground() + { + return getBlack(); + } + + public ColorUIResource getControl() + { + return getSecondary3(); + } + + public ColorUIResource getControlDarkShadow() + { + return getSecondary1(); + } + + public ColorUIResource getControlDisabled() + { + return getSecondary2(); + } + + public ColorUIResource getControlHighlight() + { + return getWhite(); + } + + public ColorUIResource getControlInfo() + { + return getBlack(); + } + + public ColorUIResource getControlShadow() + { + return getSecondary2(); + } + + public ColorUIResource getControlTextColor() + { + return getControlInfo(); + } + + public ColorUIResource getDesktopColor() + { + return getPrimary2(); + } + + public ColorUIResource getFocusColor() + { + return getPrimary2(); + } + + public ColorUIResource getHighlightedTextColor() + { + return getControlTextColor(); + } + + public ColorUIResource getInactiveControlTextColor() + { + return getControlDisabled(); + } + + public ColorUIResource getInactiveSystemTextColor() + { + return getSecondary2(); + } + + public ColorUIResource getMenuBackground() + { + return getSecondary3(); + } + + public ColorUIResource getMenuDisabledForeground() + { + return getSecondary3(); + } + + public ColorUIResource getMenuForeground() + { + return getBlack(); + } + + public ColorUIResource getMenuSelectedBackground() + { + return getPrimary2(); + } + + public ColorUIResource getMenuSelectedForeground() + { + return getBlack(); + } + + public ColorUIResource getPrimaryControl() + { + return getPrimary3(); + } + + public ColorUIResource getPrimaryControlDarkShadow() + { + return getPrimary1(); + } + + public ColorUIResource getPrimaryControlHighlight() + { + return getWhite(); + } + + public ColorUIResource getPrimaryControlInfo() + { + return getBlack(); + } + + public ColorUIResource getPrimaryControlShadow() + { + return getPrimary2(); + } + + public ColorUIResource getSeparatorBackground() + { + return getWhite(); + } + + public ColorUIResource getSeparatorForeground() + { + return getPrimary1(); + } + + public ColorUIResource getSystemTextColor() + { + return getBlack(); + } + + public ColorUIResource getTextHighlightColor() + { + return getPrimary3(); + } + + public ColorUIResource getUserTextColor() + { + return getBlack(); + } + + public ColorUIResource getWindowBackground() + { + return getWhite(); + } + + public ColorUIResource getWindowTitleBackground() + { + return getPrimary3(); + } + + public ColorUIResource getWindowTitleForeground() + { + return getBlack(); + } + + public ColorUIResource getWindowTitleInactiveBackground() + { + return getSecondary3(); + } + + public ColorUIResource getWindowTitleInactiveForeground() + { + return getBlack(); + } + + protected ColorUIResource getBlack() + { + return BLACK; + } + + protected ColorUIResource getWhite() + { + return WHITE; + } + + protected abstract ColorUIResource getPrimary1(); + protected abstract ColorUIResource getPrimary2(); + protected abstract ColorUIResource getPrimary3(); + protected abstract ColorUIResource getSecondary1(); + protected abstract ColorUIResource getSecondary2(); + protected abstract ColorUIResource getSecondary3(); + + public abstract FontUIResource getControlTextFont(); + public abstract FontUIResource getMenuTextFont(); + public abstract FontUIResource getSubTextFont(); + public abstract FontUIResource getSystemTextFont(); + public abstract FontUIResource getUserTextFont(); + public abstract FontUIResource getWindowTitleFont(); +} |