comparison mde/gui/WidgetManager.d @ 76:65780e0e48e6

Re-enabled click event passing in the gui to make ButtonWidget work. Bugfix (pass void* not class reference). Change to allow compilation with dmd 1.027 (don't use DefaultData's Arg!() template).
author Diggory Hardy <diggory.hardy@gmail.com>
date Mon, 28 Jul 2008 18:49:18 +0100
parents 25cb7420dc91
children ea58f277f487
comparison
equal deleted inserted replaced
75:25cb7420dc91 76:65780e0e48e6
88 // NOTE: buttons receive the up-event even when drag-callbacks are in place. 88 // NOTE: buttons receive the up-event even when drag-callbacks are in place.
89 foreach (dg; clickCallbacks) 89 foreach (dg; clickCallbacks)
90 // See IWidgetManager.addClickCallback's documentation: 90 // See IWidgetManager.addClickCallback's documentation:
91 if (dg (cast(wdabs)cx, cast(wdabs)cy, b, state)) return; 91 if (dg (cast(wdabs)cx, cast(wdabs)cy, b, state)) return;
92 92
93 /+ 93 // NOTE: do we need to test if the click was on the gui (and thus child)?
94 IChildWidget widg = child.getWidget (cast(wdabs)cx,cast(wdabs)cy);
95 if (widg !is null)
96 widg.clickEvent (cast(wdabs)cx,cast(wdabs)cy,b,state);
97 /+ FIXME: remove
94 foreach (i,w; windows) { 98 foreach (i,w; windows) {
95 IWidget widg = w.getWidget (cast(wdabs)cx,cast(wdabs)cy); 99 IWidget widg = w.getWidget (cast(wdabs)cx,cast(wdabs)cy);
96 if (widg !is null) { 100 if (widg !is null) {
97 // Bring to front 101 // Bring to front
98 windows = w ~ windows[0..i] ~ windows[i+1..$]; 102 windows = w ~ windows[0..i] ~ windows[i+1..$];
148 clickCallbacks[dg.ptr] = dg; 152 clickCallbacks[dg.ptr] = dg;
149 } 153 }
150 void addMotionCallback (void delegate(wdabs, wdabs) dg) { 154 void addMotionCallback (void delegate(wdabs, wdabs) dg) {
151 motionCallbacks[dg.ptr] = dg; 155 motionCallbacks[dg.ptr] = dg;
152 } 156 }
153 void removeCallbacks (IChildWidget frame) { 157 void removeCallbacks (void* frame) {
154 clickCallbacks.remove(cast(void*) frame); 158 clickCallbacks.remove(frame);
155 motionCallbacks.remove(cast(void*) frame); 159 motionCallbacks.remove(frame);
156 } 160 }
157 //END IWidgetManager methods 161 //END IWidgetManager methods
158 162
159 protected: 163 protected:
160 /* Second stage of widget loading. */ 164 /* Second stage of widget loading. */