Theme.java revision fdc20ba6040e08858275612d111ce2f23a7502e4
1package aurelienribon.tweenengine.applets;
2
3import aurelienribon.utils.swing.GroupBorder;
4import java.awt.Color;
5import java.awt.Component;
6import java.awt.Container;
7import java.awt.Font;
8import javax.swing.JButton;
9import javax.swing.JCheckBox;
10import javax.swing.JComponent;
11import javax.swing.JLabel;
12import javax.swing.JSlider;
13import javax.swing.border.Border;
14
15public class Theme {
16    public static final Color MAIN_BACKGROUND = new Color(0x444444);
17    public static final Color MAIN_FOREGROUND = new Color(0xF0F0F0);
18    public static final Color MAIN_ALT_BACKGROUND = new Color(0x707070);
19    public static final Color MAIN_ALT_FOREGROUND = new Color(0xF0F0F0);
20
21    public static final Color HEADER_BACKGROUND = new Color(0x707070);
22    public static final Color HEADER_FOREGROUND = new Color(0xF0F0F0);
23
24    public static final Color TEXTAREA_BACKGROUND = new Color(0x333333);
25    public static final Color TEXTAREA_FOREGROUND = new Color(0xF0F0F0);
26    public static final Color TEXTAREA_SELECTED_BACKGROUND = new Color(0x808080);
27    public static final Color TEXTAREA_SELECTED_FOREGROUND = new Color(0xF0F0F0);
28
29    public static final Color CONSOLE_BACKGROUND = new Color(0xA5A5A5);
30    public static final Color CONSOLE_FOREGROUND = new Color(0x000000);
31
32    public static final Color SEPARATOR = new Color(0xB5B5B5);
33
34	public static void apply(Component cmp) {
35		if (cmp instanceof JComponent) {
36			JComponent c = (JComponent) cmp;
37			Border border = c.getBorder();
38			if (border != null && border instanceof GroupBorder) {
39				Font font = c.getFont();
40				c.setFont(new Font(font.getFamily(), Font.BOLD, font.getSize()));
41				c.setBackground(MAIN_ALT_BACKGROUND);
42				c.setForeground(MAIN_ALT_FOREGROUND);
43				c.setOpaque(false);
44			}
45		}
46
47		if (cmp instanceof JLabel) {
48			JLabel c = (JLabel) cmp;
49			c.setForeground(MAIN_FOREGROUND);
50		}
51
52		if (cmp instanceof JCheckBox) {
53			JCheckBox c = (JCheckBox) cmp;
54			c.setForeground(MAIN_FOREGROUND);
55			c.setOpaque(false);
56		}
57
58		if (cmp instanceof Container) {
59			Container c = (Container) cmp;
60			for (Component child : c.getComponents())
61				apply(child);
62		}
63
64		if (cmp instanceof JButton) {
65			JButton c = (JButton) cmp;
66			c.setOpaque(false);
67		}
68
69		if (cmp instanceof JSlider) {
70			JSlider c = (JSlider) cmp;
71			c.setOpaque(false);
72			c.setForeground(MAIN_FOREGROUND);
73		}
74	}
75}
76