Mercurial > projects > mde
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); }