add UiSubListEventData struct that contains all relevant data for sublist action events

6 weeks ago

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sat, 01 Feb 2025 22:30:58 +0100 (6 weeks ago)
changeset 453
abe2c7bf2246
parent 452
a0620cf552a6
child 455
391d8c7223d1
child 456
6712b08e4f74

add UiSubListEventData struct that contains all relevant data for sublist action events

ui/gtk/list.c file | annotate | diff | comparison | revisions
ui/ui/tree.h file | annotate | diff | comparison | revisions
--- a/ui/gtk/list.c	Sat Feb 01 12:22:47 2025 +0100
+++ b/ui/gtk/list.c	Sat Feb 01 22:30:58 2025 +0100
@@ -1784,11 +1784,19 @@
     }
     UiListBoxSubList *sublist = data->customdata0;
     
+    UiSubListEventData eventdata;
+    eventdata.list = sublist->var->value;
+    eventdata.sublist_index = sublist->index;
+    eventdata.row_index = data->value0;
+    eventdata.sublist_userdata = sublist->userdata;
+    eventdata.row_data = ui_list_get(eventdata.list, eventdata.row_index);
+    eventdata.event_data = data->customdata2;
+    
     UiEvent event;
     event.obj = data->obj;
     event.window = event.obj->window;
     event.document = event.obj->ctx->document;
-    event.eventdata = data->customdata2;
+    event.eventdata = &eventdata;
     event.intval = data->value0;
     
     if(data->callback) {
--- a/ui/ui/tree.h	Sat Feb 01 12:22:47 2025 +0100
+++ b/ui/ui/tree.h	Sat Feb 01 22:30:58 2025 +0100
@@ -144,6 +144,15 @@
     void *userdata;
 };
 
+typedef struct UiSubListEventData {
+    UiList *list;
+    int    sublist_index;
+    int    row_index;
+    void   *row_data;
+    void   *sublist_userdata;
+    void   *event_data;
+} UiSubListEventData;
+
 /*
  * list item members must be filled by the sublist getvalue func
  * all members must be allocated (by malloc, strdup, ...) the pointer

mercurial