diff src/samer/core_/util/swing/DarkMetalTheme.java @ 0:bf79fb79ee13

Initial Mercurial check in.
author samer
date Tue, 17 Jan 2012 17:50:20 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/samer/core_/util/swing/DarkMetalTheme.java	Tue Jan 17 17:50:20 2012 +0000
@@ -0,0 +1,103 @@
+package samer.core.util.swing;
+
+import javax.swing.plaf.*;
+import javax.swing.*;
+import java.awt.*;
+
+public class DarkMetalTheme extends javax.swing.plaf.metal.MetalTheme {
+
+	private ColorUIResource primary1;
+	private ColorUIResource primary2;
+	private ColorUIResource primary3;
+	private ColorUIResource red, blue, yellow, green, highlight;
+
+	private ColorUIResource secondary1;
+	private ColorUIResource secondary2;
+	private ColorUIResource secondary3;
+	private ColorUIResource white;
+
+	private FontUIResource plainFont;
+	private FontUIResource smallFont;
+	private FontUIResource boldFont;
+
+	public String getName() { return "Silk"; }
+
+	public DarkMetalTheme(Font font, Color bg, double hue, double sat)
+	{
+		System.err.println("Metal theme: base font is "+font);
+
+		plainFont = new FontUIResource(font);
+		smallFont = new FontUIResource(font.deriveFont(0.8f*font.getSize2D()));
+		boldFont = new FontUIResource(font.deriveFont(Font.BOLD));
+
+		primary3 = new ColorUIResource(Color.getHSBColor((float)hue,(float)sat,.5f));
+		primary2 =new ColorUIResource(Color.getHSBColor((float)hue,(float)sat,.3f));
+		primary1 =new ColorUIResource(Color.getHSBColor((float)hue,(float)sat,.1f));
+
+		secondary3 = new ColorUIResource(bg);
+		secondary2 = new ColorUIResource(bg.darker());
+		secondary1 = new ColorUIResource(bg.darker().darker());
+		highlight = new ColorUIResource(bg.brighter());
+
+
+		white=new ColorUIResource(Color.white.darker());
+		red=new ColorUIResource(Color.red);
+		blue=new ColorUIResource(Color.blue);
+		green=new ColorUIResource(Color.green);
+		yellow=new ColorUIResource(Color.yellow);
+	}
+
+	public void addCustomEntriesToTable(UIDefaults table)
+	{
+		table.put( "Button.font", boldFont);
+		table.put( "Label.foreground", getWhite());
+		table.put( "TextField.background", secondary2);
+		table.put( "TextField.foreground", getWhite());
+		table.put( "TitledBorder.font", boldFont);
+		table.put( "List.background", getBlack());
+		table.put( "List.foreground", getWhite());
+		table.put( "List.font", plainFont);
+  	}
+
+	public ColorUIResource getWhite() { return white; }
+	public ColorUIResource getPrimary1() { return primary1; }
+	public ColorUIResource getPrimary2() { return primary2; }
+	public ColorUIResource getPrimary3() { return primary3; }
+
+	public ColorUIResource getSecondary1() { return secondary1; }
+	public ColorUIResource getSecondary2() { return secondary2; }
+	public ColorUIResource getSecondary3() { return secondary3; }
+
+	public FontUIResource getControlTextFont() { return plainFont;}
+	public FontUIResource getSystemTextFont() { return plainFont;}
+	public FontUIResource getUserTextFont() { return plainFont;}
+	public FontUIResource getMenuTextFont() { return plainFont;}
+	public FontUIResource getWindowTitleFont() { return boldFont;}
+	public FontUIResource getSubTextFont() { return smallFont;}
+
+	public ColorUIResource getMenuForeground() { return getWhite(); }
+	public ColorUIResource getMenuSelectedForeground() { return getWhite(); }
+
+	// these are for tweaking
+
+	public ColorUIResource getDesktopColor() { return getPrimary1(); }
+
+	public ColorUIResource getControl() { return getSecondary3(); }
+	public ColorUIResource getControlShadow() { return getSecondary2(); }
+	public ColorUIResource getControlDarkShadow() { return getSecondary1(); }
+	public ColorUIResource getControlInfo() { return getWhite(); }
+	public ColorUIResource getControlHighlight() { return highlight; } // getWhite(); }
+//	public ColorUIResource getControlDisabled() { return getSecondary2(); }
+
+//	public ColorUIResource getPrimaryControl() { return getPrimary3(); }
+//	public ColorUIResource getPrimaryControlShadow() { return getPrimary2(); }
+//	public ColorUIResource getPrimaryControlDarkShadow() { return getPrimary1(); }
+	public ColorUIResource getPrimaryControlInfo() { return primary2; } // getWhite(); }
+	public ColorUIResource getPrimaryControlHighlight() { return primary3; } // getWhite(); }
+
+	public ColorUIResource getSystemTextColor() { return getWhite(); }
+//	public ColorUIResource getInactiveSystemTextColor() { return getSecondary2(); }
+
+	public ColorUIResource getSeparatorBackground() { return highlight; } // getWhite(); }
+	public ColorUIResource getSeparatorForeground() { return getSecondary2(); } // getPrimary1(); }
+}