comparison mde/gui/Gui.d @ 36:57d000574d75

Enabled drawing on demand, and made the polling interval configurable. Renamed mde.global to mde.imde. Enabled drawing on demand. Allowed options to take double values. Made the main loop's polling interval (sleep duration) settable from config files. committer: Diggory Hardy <diggory.hardy@gmail.com>
author Diggory Hardy <diggory.hardy@gmail.com>
date Fri, 02 May 2008 17:38:43 +0100
parents 928db3c75ed3
children 5132301e9ed7
comparison
equal deleted inserted replaced
35:928db3c75ed3 36:57d000574d75
24 import mde.gui.IGui; 24 import mde.gui.IGui;
25 import mde.gui.widget.Ifaces; 25 import mde.gui.widget.Ifaces;
26 import mde.gui.widget.Window; 26 import mde.gui.widget.Window;
27 import mde.gui.renderer.createRenderer; 27 import mde.gui.renderer.createRenderer;
28 import mde.gui.exception; 28 import mde.gui.exception;
29
30 // For adding the input event callbacks and requesting redraws:
31 import imde = mde.imde;
32 import mde.input.Input;
33 import mde.scheduler.Scheduler;
29 34
30 // For loading from file: 35 // For loading from file:
31 import mt = mde.mergetag.DataSet; 36 import mt = mde.mergetag.DataSet;
32 import mt = mde.mergetag.DefaultData; 37 import mt = mde.mergetag.DefaultData;
33 import mt = mde.mergetag.exception; 38 import mt = mde.mergetag.exception;
93 windows ~= w; // only add if load successful 98 windows ~= w; // only add if load successful
94 } catch (Exception e) { 99 } catch (Exception e) {
95 logger.error ("Window failed to load: " ~ e.msg); 100 logger.error ("Window failed to load: " ~ e.msg);
96 } 101 }
97 } 102 }
103
104 imde.input.addMouseClickCallback(&clickEvent);
105 imde.input.addMouseMotionCallback(&motionEvent);
98 } 106 }
99 //END Loading code 107 //END Loading code
100 108
101 /** Draw each window. 109 /** Draw each window.
102 * 110 *
143 assert (rend !is null, "Gui: rend is null"); 151 assert (rend !is null, "Gui: rend is null");
144 } body { 152 } body {
145 return rend; 153 return rend;
146 } 154 }
147 155
156 void requestRedraw () {
157 imde.mainSchedule.request(imde.SCHEDULE.DRAW);
158 }
159
148 void addClickCallback (void delegate(ushort, ushort, ubyte, bool) dg) { 160 void addClickCallback (void delegate(ushort, ushort, ubyte, bool) dg) {
149 clickCallbacks[dg.ptr] = dg; 161 clickCallbacks[dg.ptr] = dg;
150 } 162 }
151 void addMotionCallback (void delegate(ushort, ushort) dg) { 163 void addMotionCallback (void delegate(ushort, ushort) dg) {
152 motionCallbacks[dg.ptr] = dg; 164 motionCallbacks[dg.ptr] = dg;