Mercurial > projects > mde
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. */ |