diff dynamin/gui/windows_theme.d @ 106:acdbb30fee7e

Port to D2. Most of the effort was dealing with immutable and const.
author Jordan Miner <jminer7@gmail.com>
date Mon, 17 Dec 2012 23:41:50 -0600
parents 5c8c1c2e12c0
children
line wrap: on
line diff
--- a/dynamin/gui/windows_theme.d	Sat Nov 24 10:21:50 2012 -0600
+++ b/dynamin/gui/windows_theme.d	Mon Dec 17 23:41:50 2012 -0600
@@ -81,7 +81,7 @@
  */
 class WindowsTheme : Theme {
 version(Windows) {
-	static string defaultFont() { // TODO: rename
+	static mstring defaultFont() { // TODO: rename
 		NONCLIENTMETRICS ncMetrics;
 		ncMetrics.cbSize = NONCLIENTMETRICS.sizeof;
 		SystemParametersInfo(SPI_GETNONCLIENTMETRICS,
@@ -92,7 +92,7 @@
 }
 version(Windows) {
 	static void printSysColors() {
-		int[string] colors = [
+		int[mstring] colors = [
 		"COLOR_SCROLLBAR"[] : COLOR_SCROLLBAR,
 		"COLOR_BACKGROUND" : COLOR_BACKGROUND,
 		"COLOR_ACTIVECAPTION" : COLOR_ACTIVECAPTION,
@@ -153,12 +153,14 @@
 
 	//{{{ utility functions
 	int findUxState(Button c, int disabled, int normal, int hot, int pressed) {
-		if(c.state == ButtonState.Normal)
+		final switch(c.state) {
+		case ButtonState.Normal:
 			return normal;
-		else if(c.state == ButtonState.Hot)
+		case ButtonState.Hot:
 			return hot;
-		else if(c.state == ButtonState.Pressed)
+		case ButtonState.Pressed:
 			return pressed;
+		}
 	}
 
 	/// draws a classic check, which is 7 wide and 7 high
@@ -181,21 +183,21 @@
 	}
 	//}}}
 
-	string name() {
+	override string name() {
 		return "Windows";
 	}
 
-	void Window_paint(Window c, Graphics g) {
+	override void Window_paint(Window c, Graphics g) {
 		g.source = getColor(COLOR_3DFACE);
 		g.paint();
 	}
 	//{{{ Button
-	Size Button_bestSize(Button c) {
+	override Size Button_bestSize(Button c) {
 		// default button size is 17 points tall
 		return Size(75, 23);
 	}
 
-	void Button_paint(Button c, Graphics g) {
+	override void Button_paint(Button c, Graphics g) {
 version(Windows) {
 		if(Ux.isThemeActive()) {
 			auto uxState = findUxState(c, PBS_DISABLED, PBS_NORMAL, PBS_HOT, PBS_PRESSED);
@@ -231,7 +233,7 @@
 	//}}}
 
 	//{{{ CheckBox
-	void CheckBox_paint(CheckBox c, Graphics g) {
+	override void CheckBox_paint(CheckBox c, Graphics g) {
 version(Windows) {
 		if(Ux.isThemeActive()) {
 			int uxState;
@@ -277,7 +279,7 @@
 	//}}}
 
 	//{{{ RadioButton
-	void RadioButton_paint(CheckBox c, Graphics g) {
+	override void RadioButton_paint(CheckBox c, Graphics g) {
 version(Windows) {
 		if(Ux.isThemeActive()) {
 			int uxState;
@@ -305,11 +307,11 @@
 
 		g.rectangle(2, 2, 8, 8);
 		g.fill();
-		const double[][] outerLines = [
+		enum double[][] outerLines = [
 		[1.5, 8,   1.5, 10],  [0.5, 4,   0.5, 8],
 		[1.5, 2,   1.5, 4],   [2.0, 1.5,   4, 1.5],
 		[4.0, 0.5,   8, 0.5], [8.0, 1.5,   10, 1.5]];
-		const double[][] innerLines = [
+		enum double[][] innerLines = [
 		[2.5, 8,   2.5, 9],  [1.5, 4,   1.5, 8],
 		[2.5, 2,   2.5, 4],   [3.0, 2.5,   4, 2.5],
 		[4.0, 1.5,   8, 1.5], [8.0, 2.5,   10, 2.5]];
@@ -357,7 +359,7 @@
 	//}}}
 
 	//{{{ ScrollBar
-	void ScrollBarTrack_paint(ScrollBarTrack c, Graphics g) {
+	override void ScrollBarTrack_paint(ScrollBarTrack c, Graphics g) {
 version(Windows) {
 		if(Ux.isThemeActive()) {
 			auto uxState = findUxState(c, SCRBS_DISABLED, SCRBS_NORMAL, SCRBS_HOT, SCRBS_PRESSED);
@@ -380,7 +382,7 @@
 		c1, c2);
 	}
 
-	void ScrollBarThumb_paint(ScrollBarThumb c, Graphics g) {
+	override void ScrollBarThumb_paint(ScrollBarThumb c, Graphics g) {
 version(Windows) {
 		if(Ux.isThemeActive()) {
 			auto uxState = findUxState(c, SCRBS_DISABLED, SCRBS_NORMAL, SCRBS_HOT, SCRBS_PRESSED);
@@ -405,7 +407,7 @@
 			getColor(COLOR_3DHIGHLIGHT), getColor(COLOR_3DSHADOW));
 	}
 
-	double ScrollBar_size() {
+	override double ScrollBar_size() {
 		// TODO: all themes should get this from SystemGui.ScrollBarSize
 	version(Windows)
 		return GetSystemMetrics(SM_CXVSCROLL);
@@ -413,7 +415,7 @@
 		return 18;
 	}
 
-	void ArrowButton_paint(ArrowButton c, Graphics g) {
+	override void ArrowButton_paint(ArrowButton c, Graphics g) {
 version(Windows) {
 		if(Ux.isThemeActive()) {
 			int uxState;
@@ -446,11 +448,11 @@
 	//}}}
 
 	//{{{ Scrollable
-	BorderSize Scrollable_borderSize(Scrollable c) {
+	override BorderSize Scrollable_borderSize(Scrollable c) {
 		return BorderSize(2, 2, 2, 2);
 	}
 
-	void Scrollable_paint(Scrollable c, Graphics g) {
+	override void Scrollable_paint(Scrollable c, Graphics g) {
 version(Windows) {
 		if(Ux.isThemeActive()) {
 			Ux.drawBackground(g, Rect(0, 0, c.width, c.height), "EDIT", EP_EDITTEXT, ETS_NORMAL);
@@ -470,14 +472,14 @@
 	//}}}
 
 	//{{{ Notebook
-	BorderSize Notebook_borderSize(Notebook c) {
+	override BorderSize Notebook_borderSize(Notebook c) {
 version(Windows) {
 		if(Ux.isThemeActive())
 			return BorderSize(2, 2, 4, 4);
 }
 		return BorderSize(2, 2, 2, 2);
 	}
-	void Tab_paint(TabPage page, Notebook c, Graphics g) {
+	override void Tab_paint(TabPage page, Notebook c, Graphics g) {
 version(Windows) {
 		if(Ux.isThemeActive()) {
 			g.translate(page.tabLocation);
@@ -517,7 +519,7 @@
 		g.drawText(page.text, 5, (page.tabSize.height-g.getTextExtents(page.text).height)/2);
 		g.translate(-page.tabLocation);
 	}
-	void Notebook_paint(Notebook c, Graphics g) {
+	override void Notebook_paint(Notebook c, Graphics g) {
 version(Windows) {
 		if(Ux.isThemeActive()) {
 			//auto uxState = findUxState(c, PBS_DISABLED, PBS_NORMAL, PBS_HOT, PBS_PRESSED);