ui/ui/toolkit.h

changeset 1170
b79469a55540
parent 1168
2f9d8af6a499
child 1182
ec28b0c22af0
--- a/ui/ui/toolkit.h	Thu Jun 04 20:35:31 2026 +0200
+++ b/ui/ui/toolkit.h	Fri Jun 05 18:02:54 2026 +0200
@@ -213,6 +213,8 @@
 typedef struct UiTextStyle  UiTextStyle;
 typedef struct UiColor      UiColor;
 
+typedef enum UiEventType UiEventType;
+
 /* begin opaque types */
 typedef struct UiContext     UiContext;
 typedef struct UiContainer   UiContainer;
@@ -317,14 +319,32 @@
     unsigned int ref;
 };
 
+enum UiEventType {
+    UI_EVENT_DATA_NULL = 0,
+    UI_EVENT_DATA_POINTER,
+    UI_EVENT_DATA_STRING,
+    UI_EVENT_DATA_INTEGER_VALUE,
+    UI_EVENT_DATA_STRING_VALUE,
+    UI_EVENT_DATA_TEXT_VALUE,
+    UI_EVENT_DATA_DOUBLE_VALUE,
+    UI_EVENT_DATA_RANGE_VALUE,
+    UI_EVENT_DATA_TEXT_CHANGED,
+    UI_EVENT_DATA_LIST_SELECTION,
+    UI_EVENT_DATA_LIST_ELM,
+    UI_EVENT_DATA_DND,
+    UI_EVENT_DATA_SUBLIST,
+    UI_EVENT_DATA_FILE_LIST,
+    UI_EVENT_DATA_TYPED_OBJECT
+};
+
 struct UiEvent {
-    UiObject *obj;
-    void     *document;
-    void     *window;
-    void     *eventdata;
-    int      eventdatatype;
-    int      intval;
-    int      set;
+    UiObject     *obj;
+    void         *document;
+    void         *window;
+    void         *eventdata;
+    UiEventType  eventdatatype;
+    int          intval;
+    int          set;
 };
 
 struct UiMouseEvent {
@@ -486,22 +506,11 @@
     int intdata;
 } UiCondVar;
 
-enum UiEventType {
-    UI_EVENT_DATA_NULL = 0,
-    UI_EVENT_DATA_POINTER,
-    UI_EVENT_DATA_STRING,
-    UI_EVENT_DATA_INTEGER_VALUE,
-    UI_EVENT_DATA_STRING_VALUE,
-    UI_EVENT_DATA_TEXT_VALUE,
-    UI_EVENT_DATA_DOUBLE_VALUE,
-    UI_EVENT_DATA_RANGE_VALUE,
-    UI_EVENT_DATA_TEXT_CHANGED,
-    UI_EVENT_DATA_LIST_SELECTION,
-    UI_EVENT_DATA_LIST_ELM,
-    UI_EVENT_DATA_DND,
-    UI_EVENT_DATA_SUBLIST,
-    UI_EVENT_DATA_FILE_LIST
-};
+// eventdata in case eventdatatype is UI_EVENT_DATA_TYPED_OBJECT
+typedef struct UiTypedObj {
+    void *ptr;
+    uint64_t type;
+} UiTypedObj;
 
 #define UI_COLOR(r, g, b) (UiColor){r, g, b}
 struct UiColor {
@@ -587,8 +596,9 @@
         const char *accelerator,
         const char *accelerator_text);
 UIEXPORT void ui_update_action_bindings(UiContext *ctx);
-UIEXPORT void ui_call_action(UiContext *ctx, const char *action_name);
-UIEXPORT void ui_call_action2(UiContext *ctx, const char *action_name, void *eventdata, int intval);
+UIEXPORT int ui_call_action(UiContext *ctx, const char *action_name);
+UIEXPORT int ui_call_action2(UiContext *ctx, const char *action_name, void *eventdata, int intval);
+UIEXPORT int ui_call_action3(UiContext *ctx, const char *action_name, void *ptr, uint64_t type_id);
 UIEXPORT void ui_broadcast_action(const char *action_name);
 UIEXPORT void ui_broadcast_action2(const char *action_name, void *eventdata, int intval);
 UIEXPORT void ui_mainthread_broadcast(const char *action_name);

mercurial