diff dwtx/draw2d/ColorConstants.d @ 98:95307ad235d9

Added Draw2d code, still work in progress
author Frank Benoit <benoit@tionex.de>
date Sun, 03 Aug 2008 00:52:14 +0200
parents
children 0de61c6f08ca
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwtx/draw2d/ColorConstants.d	Sun Aug 03 00:52:14 2008 +0200
@@ -0,0 +1,196 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ * Port to the D programming language:
+ *     Frank Benoit <benoit@tionex.de>
+ *******************************************************************************/
+module dwtx.draw2d.ColorConstants;
+
+import dwt.dwthelper.utils;
+import dwt.dwthelper.Runnable;
+import tango.core.sync.Mutex;
+
+import dwt.DWT;
+import dwt.graphics.Color;
+import dwt.widgets.Display;
+
+/**
+ * A collection of color-related constants.
+ */
+public struct ColorConstants {
+
+class SystemColorFactory {
+    private static Color getColor(int which) {
+        Display display = Display.getCurrent();
+        if (display !is null)
+            return display.getSystemColor(which);
+        display = Display.getDefault();
+        Color result;
+        scope Mutex mutex = new Mutex;
+        display.syncExec(dgRunnable( {
+            synchronized (mutex) {
+                result = Display.getCurrent().getSystemColor(which);
+            }
+        } ));
+        synchronized (mutex) {
+            return result;
+        }
+    }
+}
+
+/**
+ * @see DWT#COLOR_WIDGET_HIGHLIGHT_SHADOW
+ */
+static const Color buttonLightest;
+/**
+ * @see DWT#COLOR_WIDGET_BACKGROUND
+ */
+static const Color button;
+/**
+ * @see DWT#COLOR_WIDGET_NORMAL_SHADOW
+ */
+static const Color buttonDarker;
+/**
+ * @see DWT#COLOR_WIDGET_DARK_SHADOW
+ */
+static const Color buttonDarkest;
+
+/**
+ * @see DWT#COLOR_LIST_BACKGROUND
+ */
+static const Color listBackground;
+/**
+ * @see DWT#COLOR_LIST_FOREGROUND
+ */
+static const Color listForeground;
+
+/**
+ * @see DWT#COLOR_WIDGET_BACKGROUND
+ */
+static const Color menuBackground;
+/**
+ * @see DWT#COLOR_WIDGET_FOREGROUND
+ */
+static const Color menuForeground;
+/**
+ * @see DWT#COLOR_LIST_SELECTION
+ */
+static const Color menuBackgroundSelected;
+/**
+ * @see DWT#COLOR_LIST_SELECTION_TEXT
+ */
+static const Color menuForegroundSelected;
+
+/**
+ * @see DWT#COLOR_TITLE_BACKGROUND
+ */
+static const Color titleBackground;
+/**
+ * @see DWT#COLOR_TITLE_BACKGROUND_GRADIENT
+ */
+static const Color titleGradient;
+/**
+ * @see DWT#COLOR_TITLE_FOREGROUND
+ */
+static const Color titleForeground;
+/**
+ * @see DWT#COLOR_TITLE_INACTIVE_FOREGROUND
+ */
+static const Color titleInactiveForeground;
+/**
+ * @see DWT#COLOR_TITLE_INACTIVE_BACKGROUND
+ */
+static const Color titleInactiveBackground;
+/**
+ * @see DWT#COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT
+ */
+static const Color titleInactiveGradient;
+
+/**
+ * @see DWT#COLOR_INFO_FOREGROUND
+ */
+static const Color tooltipForeground;
+/**
+ * @see DWT#COLOR_INFO_BACKGROUND
+ */
+static const Color tooltipBackground;
+
+/*
+ * Misc. colors
+ */
+/** One of the pre-defined colors */
+static const Color white;
+/** One of the pre-defined colors */
+static const Color lightGray;
+/** One of the pre-defined colors */
+static const Color gray;
+/** One of the pre-defined colors */
+static const Color darkGray;
+/** One of the pre-defined colors */
+static const Color black;
+/** One of the pre-defined colors */
+static const Color red;
+/** One of the pre-defined colors */
+static const Color orange;
+/** One of the pre-defined colors */
+static const Color yellow;
+/** One of the pre-defined colors */
+static const Color green;
+/** One of the pre-defined colors */
+static const Color lightGreen;
+/** One of the pre-defined colors */
+static const Color darkGreen;
+/** One of the pre-defined colors */
+static const Color cyan;
+/** One of the pre-defined colors */
+static const Color lightBlue;
+/** One of the pre-defined colors */
+static const Color blue;
+/** One of the pre-defined colors */
+static const Color darkBlue;
+
+
+static this(){
+    buttonLightest          = SystemColorFactory.getColor(DWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
+    button                  = SystemColorFactory.getColor(DWT.COLOR_WIDGET_BACKGROUND);
+    buttonDarker            = SystemColorFactory.getColor(DWT.COLOR_WIDGET_NORMAL_SHADOW);
+    buttonDarkest           = SystemColorFactory.getColor(DWT.COLOR_WIDGET_DARK_SHADOW);
+    listBackground          = SystemColorFactory.getColor(DWT.COLOR_LIST_BACKGROUND);
+    listForeground          = SystemColorFactory.getColor(DWT.COLOR_LIST_FOREGROUND);
+    menuBackground          = SystemColorFactory.getColor(DWT.COLOR_WIDGET_BACKGROUND);
+    menuForeground          = SystemColorFactory.getColor(DWT.COLOR_WIDGET_FOREGROUND);
+    menuBackgroundSelected  = SystemColorFactory.getColor(DWT.COLOR_LIST_SELECTION);
+    menuForegroundSelected  = SystemColorFactory.getColor(DWT.COLOR_LIST_SELECTION_TEXT);
+    titleBackground         = SystemColorFactory.getColor(DWT.COLOR_TITLE_BACKGROUND);
+    titleGradient           = SystemColorFactory.getColor(DWT.COLOR_TITLE_BACKGROUND_GRADIENT);
+    titleForeground         = SystemColorFactory.getColor(DWT.COLOR_TITLE_FOREGROUND);
+    titleInactiveForeground = SystemColorFactory.getColor(DWT.COLOR_TITLE_INACTIVE_FOREGROUND);
+    titleInactiveBackground = SystemColorFactory.getColor(DWT.COLOR_TITLE_INACTIVE_BACKGROUND);
+    titleInactiveGradient   = SystemColorFactory.getColor(DWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT);
+    tooltipForeground       = SystemColorFactory.getColor(DWT.COLOR_INFO_FOREGROUND);
+    tooltipBackground       = SystemColorFactory.getColor(DWT.COLOR_INFO_BACKGROUND);
+    white      = new Color(null, 255, 255, 255);
+    lightGray  = new Color(null, 192, 192, 192);
+    gray       = new Color(null, 128, 128, 128);
+    darkGray   = new Color(null,  64,  64,  64);
+    black      = new Color(null,   0,   0,   0);
+    red        = new Color(null, 255,   0,   0);
+    orange     = new Color(null, 255, 196,   0);
+    yellow     = new Color(null, 255, 255,   0);
+    green      = new Color(null,   0, 255,   0);
+    lightGreen = new Color(null,  96, 255,  96);
+    darkGreen  = new Color(null,   0, 127,   0);
+    cyan       = new Color(null,   0, 255, 255);
+    lightBlue  = new Color(null, 127, 127, 255);
+    blue       = new Color(null,   0,   0, 255);
+    darkBlue   = new Color(null,   0,   0, 127);
+}
+}
+
+