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