ui/cocoa/EventData.m

changeset 1099
a5057a367c8f
parent 864
d39301e8f962
equal deleted inserted replaced
1098:1f45788e0bac 1099:a5057a367c8f
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;

mercurial