diff mde/gui/widget/TextWidget.d @ 65:891211f034f2

Changes to widgets: widgets may now get strings as creation data. Strings for TextWidgets can be set in files (in a temporary mannor).
author Diggory Hardy <diggory.hardy@gmail.com>
date Sun, 29 Jun 2008 15:40:37 +0100
parents 66d555da083e
children 159775502bb4
line wrap: on
line diff
--- a/mde/gui/widget/TextWidget.d	Sun Jun 29 11:55:55 2008 +0100
+++ b/mde/gui/widget/TextWidget.d	Sun Jun 29 15:40:37 2008 +0100
@@ -30,10 +30,14 @@
 
 /// Adapter to ease use of ContentText
 struct ContentAdapter(ContentT : IContent) {
-    void set (int col) {
+    void set (char[] cID, int col) {
         if (font is null) font = FontStyle.get("default");
         
-        content = new ContentT;
+        static if (is(ContentT == ContentText)) {
+            content = getContentText (cID);
+        } else static if (is(ContentT == ContentInt)) {
+            content = getContentInt (cID);
+        } else static assert (false, "Unsupported content type");
         colour = Colour (cast(ubyte) (col >> 16u),
                          cast(ubyte) (col >> 8u),
                          cast(ubyte) col );
@@ -58,9 +62,15 @@
 /// Basic text widget
 class ContentWidget(ContentT : IContent) : Widget
 {
+    /** Constructor for a widget containing [fixed] content.
+     *
+     * Widget uses the initialisation data:
+     * [widgetID, contentID, colour]
+     * where contentID is an ID for the string ID of the contained content
+     * and colour is an 8-bit-per-channel RGB colour of the form 0xRRGGBB. */
     this (IWindow wind, int[] data) {
-        if (data.length != 2) throw new WidgetDataException;
-        text.set (data[1]);
+        if (data.length != 3) throw new WidgetDataException;
+        text.set (wind.getWidgetString(data[1]), data[2]);
         text.getDimensions (mw, mh);
         super (wind,data);
     }