26 * POSSIBILITY OF SUCH DAMAGE. |
26 * POSSIBILITY OF SUCH DAMAGE. |
27 */ |
27 */ |
28 |
28 |
29 #import "EventData.h" |
29 #import "EventData.h" |
30 |
30 |
|
31 #import <objc/runtime.h> |
|
32 |
|
33 |
31 @implementation EventData |
34 @implementation EventData |
32 |
35 |
33 - (EventData*)init:(ui_callback)cb userdata:(void*)userdata { |
36 - (EventData*)init:(ui_callback)cb userdata:(void*)userdata { |
34 _callback = cb; |
37 _callback = cb; |
35 _userdata = userdata; |
38 _userdata = userdata; |
36 return self; |
39 return self; |
37 } |
40 } |
38 |
41 |
39 - (void)handleEvent:(id)sender { |
42 - (void)handleEvent:(id)sender { |
40 if(self.callback) { |
43 if(_callback) { |
41 UiEvent event; |
44 UiEvent event; |
42 event.obj = self.obj; |
45 event.obj = self.obj; |
43 event.window = event.obj->window; |
46 event.window = event.obj->window; |
44 event.document = event.obj->ctx->document; |
47 event.document = event.obj->ctx->document; |
45 event.eventdata = self.data; |
48 event.eventdata = self.data; |
46 event.intval = self.value; |
49 event.intval = self.value; |
47 self.callback(&event, self.userdata); |
50 self.callback(&event, self.userdata); |
48 } |
51 } |
49 } |
52 } |
50 |
53 |
|
54 - (void)handleEventWithEventData:(id)sender { |
|
55 UiEvent event; |
|
56 event.obj = self.obj; |
|
57 event.window = event.obj->window; |
|
58 event.document = event.obj->ctx->document; |
|
59 event.eventdata = NULL; |
|
60 event.intval = 0; |
|
61 if(_get_eventdata) { |
|
62 _get_eventdata(sender, _var, &event.eventdata, &event.intval); |
|
63 } |
|
64 if(self.callback) { |
|
65 self.callback(&event, self.userdata); |
|
66 } |
|
67 } |
51 |
68 |
52 @end |
69 @end |