diff mde/gui/renderer/IRenderer.d @ 143:2ac3e0012788

Added a simple Slider widget. Moved SwitchWidget into PopupMenuWidget's module and renamed the module ParentContent. Made editContent create DisplayContentWidgets for DebugContent (instead of ButtonContentWidgets).
author Diggory Hardy <diggory.hardy@gmail.com>
date Mon, 09 Feb 2009 23:27:41 +0000
parents d3b2cefd46c9
children 075705ad664a
line wrap: on
line diff
--- a/mde/gui/renderer/IRenderer.d	Sun Feb 08 17:36:57 2009 +0000
+++ b/mde/gui/renderer/IRenderer.d	Mon Feb 09 23:27:41 2009 +0000
@@ -21,11 +21,18 @@
 
 /** Interface for renderers.
 *
-* Renderers provide unified drawing methods for widget, e.g. to draw a window background, a frame,
-* or a button. The renderer will effectively be synonymous with the theme, except that a scripted
-* renderer may also be available.
-*
-* The renderer is intended to be per-GUI. */
+* Renderers provide unified drawing methods for widget, e.g. to draw a window
+* background, a frame, or a button.
+* 
+* A theme could be hard-coded into a renderer, or use a texture set and/or
+* scripting with a more flexible renderer. There's currently no support for
+* per-widget theming, although it shouldn't be too hard (e.g. if widgets get a
+* renderer from their parent instead of the manager).
+* 
+* The renderer interface could be improved by using more objects and interfaces
+* (e.g. with a generic drawable interface for getting dimensions and drawing),
+* but requiring more class objects seems excessive and structs don't support
+* interfaces in D1. */
 interface IRenderer
 {
     //BEGIN Types
@@ -182,6 +189,12 @@
     wdimPair getToggleSize ();
     void drawToggle (wdim x, wdim y, bool state, bool pushed);  /// ditto
     
+    /** Slider / progress bar.
+     *
+     * Width is resizable. */
+    wdimPair getSliderSize ();
+    void drawSlider (wdim x, wdim y, wdim w, double proportion);
+    
     /** Get a TextAdapter to draw some text.
      *
      * If no colour is passes, a default is used (white). */