2004-12-30 Michael Koch <konqueror@gmx.de>
[official-gcc.git] / libjava / javax / swing / plaf / metal / MetalTheme.java
blob970f83095700a3fa712275211d11caba5bd15c64
1 /* MetalTheme.java --
2 Copyright (C) 2004 Free Software Foundation, Inc.
4 This file is part of GNU Classpath.
6 GNU Classpath is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
11 GNU Classpath is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GNU Classpath; see the file COPYING. If not, write to the
18 Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
19 02111-1307 USA.
21 Linking this library statically or dynamically with other modules is
22 making a combined work based on this library. Thus, the terms and
23 conditions of the GNU General Public License cover the whole
24 combination.
26 As a special exception, the copyright holders of this library give you
27 permission to link this library with independent modules to produce an
28 executable, regardless of the license terms of these independent
29 modules, and to copy and distribute the resulting executable under
30 terms of your choice, provided that you also meet, for each linked
31 independent module, the terms and conditions of the license of that
32 module. An independent module is a module which is not derived from
33 or based on this library. If you modify this library, you may extend
34 this exception to your version of the library, but you are not
35 obligated to do so. If you do not wish to do so, delete this
36 exception statement from your version. */
40 package javax.swing.plaf.metal;
42 import java.awt.Color;
44 import javax.swing.UIDefaults;
45 import javax.swing.plaf.ColorUIResource;
46 import javax.swing.plaf.FontUIResource;
48 public abstract class MetalTheme
50 private ColorUIResource BLACK = new ColorUIResource(Color.BLACK);
51 private ColorUIResource WHITE = new ColorUIResource(Color.WHITE);
53 public MetalTheme()
55 // Do nothing here.
58 public abstract String getName();
60 public void addCustomEntriesToTable(UIDefaults table)
62 // Do nothing here.
63 // This method needs to be overloaded to actuall do something.
66 public ColorUIResource getAcceleratorForeground()
68 return getPrimary1();
71 public ColorUIResource getAcceleratorSelectedForeground()
73 return getBlack();
76 public ColorUIResource getControl()
78 return getSecondary3();
81 public ColorUIResource getControlDarkShadow()
83 return getSecondary1();
86 public ColorUIResource getControlDisabled()
88 return getSecondary2();
91 public ColorUIResource getControlHighlight()
93 return getWhite();
96 public ColorUIResource getControlInfo()
98 return getBlack();
101 public ColorUIResource getControlShadow()
103 return getSecondary2();
106 public ColorUIResource getControlTextColor()
108 return getControlInfo();
111 public ColorUIResource getDesktopColor()
113 return getPrimary2();
116 public ColorUIResource getFocusColor()
118 return getPrimary2();
121 public ColorUIResource getHighlightedTextColor()
123 return getControlTextColor();
126 public ColorUIResource getInactiveControlTextColor()
128 return getControlDisabled();
131 public ColorUIResource getInactiveSystemTextColor()
133 return getSecondary2();
136 public ColorUIResource getMenuBackground()
138 return getSecondary3();
141 public ColorUIResource getMenuDisabledForeground()
143 return getSecondary3();
146 public ColorUIResource getMenuForeground()
148 return getBlack();
151 public ColorUIResource getMenuSelectedBackground()
153 return getPrimary2();
156 public ColorUIResource getMenuSelectedForeground()
158 return getBlack();
161 public ColorUIResource getPrimaryControl()
163 return getPrimary3();
166 public ColorUIResource getPrimaryControlDarkShadow()
168 return getPrimary1();
171 public ColorUIResource getPrimaryControlHighlight()
173 return getWhite();
176 public ColorUIResource getPrimaryControlInfo()
178 return getBlack();
181 public ColorUIResource getPrimaryControlShadow()
183 return getPrimary2();
186 public ColorUIResource getSeparatorBackground()
188 return getWhite();
191 public ColorUIResource getSeparatorForeground()
193 return getPrimary1();
196 public ColorUIResource getSystemTextColor()
198 return getBlack();
201 public ColorUIResource getTextHighlightColor()
203 return getPrimary3();
206 public ColorUIResource getUserTextColor()
208 return getBlack();
211 public ColorUIResource getWindowBackground()
213 return getWhite();
216 public ColorUIResource getWindowTitleBackground()
218 return getPrimary3();
221 public ColorUIResource getWindowTitleForeground()
223 return getBlack();
226 public ColorUIResource getWindowTitleInactiveBackground()
228 return getSecondary3();
231 public ColorUIResource getWindowTitleInactiveForeground()
233 return getBlack();
236 protected ColorUIResource getBlack()
238 return BLACK;
241 protected ColorUIResource getWhite()
243 return WHITE;
246 protected abstract ColorUIResource getPrimary1();
247 protected abstract ColorUIResource getPrimary2();
248 protected abstract ColorUIResource getPrimary3();
249 protected abstract ColorUIResource getSecondary1();
250 protected abstract ColorUIResource getSecondary2();
251 protected abstract ColorUIResource getSecondary3();
253 public abstract FontUIResource getControlTextFont();
254 public abstract FontUIResource getMenuTextFont();
255 public abstract FontUIResource getSubTextFont();
256 public abstract FontUIResource getSystemTextFont();
257 public abstract FontUIResource getUserTextFont();
258 public abstract FontUIResource getWindowTitleFont();