ui/cocoa/EventData.m

changeset 1099
a5057a367c8f
parent 864
d39301e8f962
--- a/ui/cocoa/EventData.m	Mon Apr 20 21:19:13 2026 +0200
+++ b/ui/cocoa/EventData.m	Tue Apr 21 10:11:44 2026 +0200
@@ -27,29 +27,38 @@
  */
 
 #import "EventData.h"
+#import "action.h"
 
 #import <objc/runtime.h>
 
 
 @implementation EventData
 
-- (EventData*)init:(ui_callback)cb userdata:(void*)userdata {
+- (EventData*)init:(ui_callback)cb userdata:(void*)userdata action:(const char*)action {
     _callback = cb;
     _userdata = userdata;
+    if(action != nil) {
+        _action = [[NSString alloc]initWithUTF8String:action];
+    }
     return self;
 }
 
 - (void)handleEvent:(id)sender {
-    if(_callback) {
-        UiEvent event;
-        event.obj = self.obj;
-        event.window = event.obj->window;
-        event.document = event.obj->ctx->document;
-        event.eventdata = self.data;
-        event.intval = self.value;
-        event.set = ui_get_setop();
+    UiEvent event;
+    event.obj = self.obj;
+    event.window = event.obj->window;
+    event.document = event.obj->ctx->document;
+    event.eventdata = self.data;
+    event.intval = self.value;
+    event.set = ui_get_setop();
+    
+    if(_callback != nil) {
         self.callback(&event, self.userdata);
     }
+    
+    if(_action != nil) {
+        uic_action_callback(&event, self.action.UTF8String);
+    }
 }
 
 - (void)handleEventWithEventData:(id)sender {

mercurial