| 25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| 26 * POSSIBILITY OF SUCH DAMAGE. |
26 * POSSIBILITY OF SUCH DAMAGE. |
| 27 */ |
27 */ |
| 28 |
28 |
| 29 #import "EventData.h" |
29 #import "EventData.h" |
| |
30 #import "action.h" |
| 30 |
31 |
| 31 #import <objc/runtime.h> |
32 #import <objc/runtime.h> |
| 32 |
33 |
| 33 |
34 |
| 34 @implementation EventData |
35 @implementation EventData |
| 35 |
36 |
| 36 - (EventData*)init:(ui_callback)cb userdata:(void*)userdata { |
37 - (EventData*)init:(ui_callback)cb userdata:(void*)userdata action:(const char*)action { |
| 37 _callback = cb; |
38 _callback = cb; |
| 38 _userdata = userdata; |
39 _userdata = userdata; |
| |
40 if(action != nil) { |
| |
41 _action = [[NSString alloc]initWithUTF8String:action]; |
| |
42 } |
| 39 return self; |
43 return self; |
| 40 } |
44 } |
| 41 |
45 |
| 42 - (void)handleEvent:(id)sender { |
46 - (void)handleEvent:(id)sender { |
| 43 if(_callback) { |
47 UiEvent event; |
| 44 UiEvent event; |
48 event.obj = self.obj; |
| 45 event.obj = self.obj; |
49 event.window = event.obj->window; |
| 46 event.window = event.obj->window; |
50 event.document = event.obj->ctx->document; |
| 47 event.document = event.obj->ctx->document; |
51 event.eventdata = self.data; |
| 48 event.eventdata = self.data; |
52 event.intval = self.value; |
| 49 event.intval = self.value; |
53 event.set = ui_get_setop(); |
| 50 event.set = ui_get_setop(); |
54 |
| |
55 if(_callback != nil) { |
| 51 self.callback(&event, self.userdata); |
56 self.callback(&event, self.userdata); |
| |
57 } |
| |
58 |
| |
59 if(_action != nil) { |
| |
60 uic_action_callback(&event, self.action.UTF8String); |
| 52 } |
61 } |
| 53 } |
62 } |
| 54 |
63 |
| 55 - (void)handleEventWithEventData:(id)sender { |
64 - (void)handleEventWithEventData:(id)sender { |
| 56 UiEvent event; |
65 UiEvent event; |