Sun, 13 Jul 2025 11:38:27 +0200
add UiEvent eventdatatype
--- a/ui/common/document.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/common/document.c Sun Jul 13 11:38:27 2025 +0200 @@ -62,6 +62,7 @@ ev.document = doc; ev.obj = NULL; ev.eventdata = NULL; + ev.eventdatatype = 0; ev.intval = 0; if(ctx->close_callback) {
--- a/ui/common/object.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/common/object.c Sun Jul 13 11:38:27 2025 +0200 @@ -124,6 +124,7 @@ ev.document = obj->ctx->document; ev.obj = obj; ev.eventdata = NULL; + ev.eventdatatype = 0; ev.intval = 0; obj->ctx->close_callback(&ev, obj->ctx->close_data); }
--- a/ui/common/threadpool.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/common/threadpool.c Sun Jul 13 11:38:27 2025 +0200 @@ -165,6 +165,7 @@ event.document = job->obj->ctx->document; event.intval = 0; event.eventdata = NULL; + event.eventdatatype = 0; job->finish_callback(&event, job->finish_data); free(job); return 0;
--- a/ui/common/types.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/common/types.c Sun Jul 13 11:38:27 2025 +0200 @@ -77,6 +77,7 @@ evt.window = NULL; evt.document = NULL; evt.eventdata = data; + evt.eventdatatype = UI_EVENT_DATA_POINTER; evt.intval = 0; while(observer) {
--- a/ui/common/wrapper.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/common/wrapper.c Sun Jul 13 11:38:27 2025 +0200 @@ -152,6 +152,10 @@ return event->eventdata; } +int ui_event_get_eventdatatype(UiEvent *event) { + return event->eventdatatype; +} + int ui_event_get_int(UiEvent *event) { return event->intval; }
--- a/ui/common/wrapper.h Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/common/wrapper.h Sun Jul 13 11:38:27 2025 +0200 @@ -63,6 +63,7 @@ UIEXPORT void* ui_event_get_document(UiEvent *event); UIEXPORT void* ui_event_get_windowdata(UiEvent *event); UIEXPORT void* ui_event_get_eventdata(UiEvent *event); +UIEXPORT int ui_event_get_eventdatatype(UiEvent *event); UIEXPORT int ui_event_get_int(UiEvent *event); UIEXPORT int ui_event_get_set(UiEvent *event);
--- a/ui/gtk/button.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/gtk/button.c Sun Jul 13 11:38:27 2025 +0200 @@ -73,6 +73,7 @@ event->callback = onclick; event->value = event_value; event->customdata = NULL; + event->customint = 0; g_signal_connect( button, @@ -113,6 +114,7 @@ e.window = event->obj->window; e.document = event->obj->ctx->document; e.eventdata = NULL; + e.eventdatatype = 0; e.intval = event->value; e.set = ui_get_setop(); event->callback(&e, event->userdata); @@ -137,6 +139,7 @@ e.window = event->obj->window; e.document = event->obj->ctx->document; e.eventdata = event->var->value; + e.eventdatatype = UI_EVENT_DATA_INTEGER_VALUE; e.intval = i->get(i); e.set = ui_get_setop(); @@ -149,6 +152,7 @@ e.window = event->obj->window; e.document = event->obj->ctx->document; e.eventdata = NULL; + e.eventdatatype = 0; e.intval = gtk_toggle_button_get_active(widget); e.set = ui_get_setop(); event->callback(&e, event->userdata); @@ -240,6 +244,7 @@ event->callback = onchange; event->value = 0; event->customdata = NULL; + event->customint = 0; g_signal_connect( widget, @@ -260,6 +265,7 @@ event->callback = NULL; event->value = enable_state; event->customdata = NULL; + event->customint = 0; g_signal_connect( widget, @@ -320,6 +326,7 @@ e.window = event->obj->window; e.document = event->obj->ctx->document; e.eventdata = NULL; + e.eventdatatype = 0; e.intval = gtk_check_button_get_active(widget); e.set = ui_get_setop(); event->callback(&e, event->userdata); @@ -391,6 +398,7 @@ e.window = event->obj->window; e.document = event->obj->ctx->document; e.eventdata = NULL; + e.eventdatatype = 0; e.intval = RADIOBUTTON_GET_ACTIVE(widget); e.set = ui_get_setop(); event->callback(&e, event->userdata); @@ -483,6 +491,7 @@ event->callback = args->onchange; event->value = 0; event->customdata = NULL; + event->customint = 0; g_signal_connect( rbutton, @@ -510,6 +519,7 @@ e.window = event->obj->window; e.document = event->obj->ctx->document; e.eventdata = NULL; + e.eventdatatype = 0; e.intval = i->get(i); ui_notify_evt(i->observers, &e);
--- a/ui/gtk/container.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/gtk/container.c Sun Jul 13 11:38:27 2025 +0200 @@ -706,6 +706,7 @@ event.document = event.obj->ctx->document; event.set = ui_get_setop(); event.eventdata = NULL; + event.eventdatatype = 0; event.intval = page_num; tabview->onchange(&event, tabview->onchange); @@ -728,6 +729,7 @@ event.document = event.obj->ctx->document; event.set = ui_get_setop(); event.eventdata = NULL; + event.eventdatatype = 0; event.intval = 0; tabview->onchange(&event, tabview->onchange);
--- a/ui/gtk/entry.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/gtk/entry.c Sun Jul 13 11:38:27 2025 +0200 @@ -150,7 +150,8 @@ e.obj = event->obj; e.window = event->obj->window; e.document = event->obj->ctx->document; - e.eventdata = &value; + e.eventdata = NULL; + e.eventdatatype = 0; e.intval = (int64_t)value; if(event->callback) {
--- a/ui/gtk/image.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/gtk/image.c Sun Jul 13 11:38:27 2025 +0200 @@ -438,6 +438,7 @@ event.window = event.obj->window; event.document = event.obj->ctx->document; event.eventdata = NULL; + event.eventdatatype = 0; event.intval = gtk_gesture_single_get_current_button(GTK_GESTURE_SINGLE(gesture)); event.set = 0; callback(&event, userdata);
--- a/ui/gtk/list.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/gtk/list.c Sun Jul 13 11:38:27 2025 +0200 @@ -511,6 +511,7 @@ event.window = event.obj->window; event.intval = view->selection.count; event.eventdata = &view->selection; + event.eventdatatype = UI_EVENT_DATA_LIST_SELECTION; event.set = ui_get_setop(); if(cb) { cb(&event, cbdata); @@ -554,6 +555,7 @@ event.window = event.obj->window; event.intval = index; event.eventdata = eventdata->data; + event.eventdatatype = UI_EVENT_DATA_LIST_ELM; event.set = ui_get_setop(); view->onactivate(&event, view->onactivatedata); } @@ -591,6 +593,7 @@ event.window = event.obj->window; event.intval = view->selection.count; event.eventdata = &view->selection; + event.eventdatatype = UI_EVENT_DATA_LIST_SELECTION; event.set = ui_get_setop(); view->onactivate(&event, view->onactivatedata); } @@ -1385,6 +1388,7 @@ event.window = event.obj->window; event.document = event.obj->ctx->document; event.eventdata = dnd; + event.eventdatatype = UI_EVENT_DATA_DND; event.intval = 0; event.set = ui_get_setop(); listview->ondragstart(&event, listview->ondragstartdata); @@ -1421,6 +1425,7 @@ event.window = event.obj->window; event.document = event.obj->ctx->document; event.eventdata = &dnd; + event.eventdatatype = UI_EVENT_DATA_DND; event.intval = 0; event.set = ui_get_setop(); listview->ondragcomplete(&event, listview->ondragcompletedata); @@ -1450,6 +1455,7 @@ event.window = event.obj->window; event.document = event.obj->ctx->document; event.eventdata = &dnd; + event.eventdatatype = UI_EVENT_DATA_DND; event.intval = 0; event.set = ui_get_setop(); listview->ondrop(&event, listview->ondropdata); @@ -2071,6 +2077,7 @@ event.window = event.obj->window; event.document = event.obj->ctx->document; event.eventdata = &eventdata; + event.eventdatatype = UI_EVENT_DATA_SUBLIST; event.intval = data->value0; event.set = ui_get_setop();
--- a/ui/gtk/menu.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/gtk/menu.c Sun Jul 13 11:38:27 2025 +0200 @@ -514,6 +514,7 @@ event->callback = i->callback; event->value = 0; event->customdata = NULL; + event->customint = 0; g_signal_connect( action, @@ -613,6 +614,7 @@ event->userdata = il->userdata; event->callback = il->callback; event->customdata = var; + event->customint = 0; event->value = 0; g_signal_connect( @@ -638,6 +640,7 @@ evt.window = event->obj->window; evt.document = event->obj->ctx->document; evt.eventdata = event->customdata; + evt.eventdatatype = event->customint; evt.intval = intval; event->callback(&evt, event->userdata); } @@ -652,6 +655,7 @@ evt.window = event->obj->window; evt.document = event->obj->ctx->document; evt.eventdata = ui_list_get(list, index); + evt.eventdatatype = UI_EVENT_DATA_LIST_ELM; evt.intval = index; event->callback(&evt, event->userdata);
--- a/ui/gtk/range.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/gtk/range.c Sun Jul 13 11:38:27 2025 +0200 @@ -62,6 +62,7 @@ event->callback = f; event->value = 0; event->customdata = NULL; + event->customint = 0; g_signal_connect( G_OBJECT(scrollbar), @@ -95,6 +96,7 @@ e.window = event->obj->window; e.document = event->obj->ctx->document; e.eventdata = NULL; + e.eventdatatype = 0; e.intval = event->value; event->callback(&e, event->userdata); return TRUE;
--- a/ui/gtk/text.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/gtk/text.c Sun Jul 13 11:38:27 2025 +0200 @@ -330,6 +330,7 @@ e.window = e.obj->window; e.document = textarea->ctx->document; e.eventdata = value; + e.eventdatatype = UI_EVENT_DATA_TEXT_VALUE; e.intval = 0; e.set = ui_get_setop(); @@ -691,6 +692,7 @@ e.window = e.obj->window; e.document = textfield->obj->ctx->document; e.eventdata = value; + e.eventdatatype = UI_EVENT_DATA_TEXT_VALUE; e.intval = 0; e.set = ui_get_setop(); @@ -710,6 +712,7 @@ e.window = e.obj->window; e.document = textfield->obj->ctx->document; e.eventdata = NULL; + e.eventdatatype = 0; e.intval = 0; e.set = ui_get_setop(); textfield->onactivate(&e, textfield->onactivatedata); @@ -807,6 +810,7 @@ evt.window = evt.obj->window; evt.document = evt.obj->ctx->document; evt.eventdata = elm->path; + evt.eventdatatype = UI_EVENT_DATA_STRING; evt.intval = event->value0; evt.set = ui_get_setop(); event->callback(&evt, event->userdata); @@ -888,6 +892,7 @@ evt.window = obj->window; evt.document = obj->ctx->document; evt.eventdata = (char*)text; + evt.eventdatatype = UI_EVENT_DATA_STRING; evt.intval = -1; pathtf->onactivate(&evt, pathtf->onactivatedata); }
--- a/ui/gtk/toolbar.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/gtk/toolbar.c Sun Jul 13 11:38:27 2025 +0200 @@ -155,6 +155,7 @@ event->callback = item->args.onclick; event->userdata = item->args.onclickdata; event->customdata = NULL; + event->customint = 0; event->value = 0; g_signal_connect( @@ -237,6 +238,7 @@ e.window = event->obj->window; e.document = event->obj->ctx->document; e.eventdata = NULL; + e.eventdatatype = 0; e.intval = gtk_toggle_tool_button_get_active(widget); if(event->callback) {
--- a/ui/gtk/toolkit.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/gtk/toolkit.c Sun Jul 13 11:38:27 2025 +0200 @@ -191,6 +191,7 @@ event.document = job->obj->ctx->document; event.intval = 0; event.eventdata = NULL; + event.eventdatatype = 0; job->finish_callback(&event, job->finish_data); free(job);
--- a/ui/gtk/toolkit.h Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/gtk/toolkit.h Sun Jul 13 11:38:27 2025 +0200 @@ -131,6 +131,7 @@ ui_callback callback; void *userdata; int value; + int customint; void *customdata; } UiEventData;
--- a/ui/gtk/window.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/gtk/window.c Sun Jul 13 11:38:27 2025 +0200 @@ -312,6 +312,8 @@ evt.document = evt.obj->ctx->document; evt.window = evt.obj->window; evt.eventdata = NULL; + evt.eventdatatype = 0; + evt.eventdatatype = 0; evt.intval = 0; if(!strcmp(response, "btn1")) { @@ -323,6 +325,7 @@ if(data->customdata) { GtkWidget *entry = data->customdata; evt.eventdata = (void*)ENTRY_GET_TEXT(GTK_ENTRY(entry)); + evt.eventdatatype = UI_EVENT_DATA_STRING; } if(data->callback) { @@ -336,6 +339,7 @@ event->callback = args.result; event->userdata = args.resultdata; event->customdata = NULL; + event->customint = 0; event->value = 0; event->obj = parent; @@ -361,6 +365,7 @@ } adw_alert_dialog_set_extra_child(ADW_ALERT_DIALOG(dialog), entry); event->customdata = entry; + event->customint = 0; } g_signal_connect( @@ -517,6 +522,7 @@ flist.files = NULL; flist.nfiles = 0; evt.eventdata = &flist; + evt.eventdatatype = UI_EVENT_DATA_FILE_LIST; if(selection) { flist = listmodel2filelist(selection); @@ -551,6 +557,7 @@ event->callback = file_selected_callback; event->userdata = cbdata; event->customdata = NULL; + event->customint = 0; event->value = mode; event->obj = obj;
--- a/ui/motif/button.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/motif/button.c Sun Jul 13 11:38:27 2025 +0200 @@ -173,6 +173,7 @@ e.window = e.obj->window; e.document = e.obj->ctx->document; e.eventdata = NULL; + e.eventdatatype = 0; e.intval = XmToggleButtonGetState(w); e.set = ui_get_setop(); @@ -282,6 +283,7 @@ e.window = e.obj->window; e.document = e.obj->ctx->document; e.eventdata = value; + e.eventdatatype = UI_EVENT_DATA_INTEGER_VALUE; e.intval = v; e.set = ui_get_setop();
--- a/ui/motif/list.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/motif/list.c Sun Jul 13 11:38:27 2025 +0200 @@ -134,6 +134,7 @@ event.window = obj->window; event.document = obj->ctx->document; event.eventdata = &sel; + event.eventdatatype = UI_EVENT_DATA_LIST_SELECTION; event.intval = sel.count > 0 ? sel.rows[0] : -1; callback(&event, userdata); } @@ -248,6 +249,7 @@ event.window = event.obj->window; event.document = event.obj->ctx->document; event.eventdata = elm; + event.eventdatatype = UI_EVENT_DATA_LIST_ELM; event.intval = index; if(listview->onactivate) { listview->onactivate(&event, listview->onactivatedata);
--- a/ui/motif/text.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/motif/text.c Sun Jul 13 11:38:27 2025 +0200 @@ -961,6 +961,7 @@ evt.window = evt.obj->window; evt.document = evt.obj->ctx->document; evt.eventdata = path; + evt.eventdatatype = UI_EVENT_DATA_STRING; evt.intval = index; event->callback(&evt, event->userdata); }
--- a/ui/motif/toolkit.c Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/motif/toolkit.c Sun Jul 13 11:38:27 2025 +0200 @@ -202,6 +202,7 @@ event.document = job->obj->ctx->document; event.intval = 0; event.eventdata = NULL; + event.eventdatatype = 0; job->finish_callback(&event, job->finish_data); } free(job);
--- a/ui/qt/button.cpp Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/qt/button.cpp Sun Jul 13 11:38:27 2025 +0200 @@ -53,6 +53,7 @@ event->intval = button->isChecked(); if(wrapper->var) { event->eventdata = wrapper->var->value; + event->eventdatatype = UI_EVENT_DATA_INTEGER_VALUE; } } @@ -111,6 +112,7 @@ event->intval = button->isChecked(); if(wrapper->var) { event->eventdata = wrapper->var->value; + event->eventdatatype = UI_EVENT_DATA_INTEGER_VALUE; } } @@ -169,6 +171,7 @@ if(wrapper->var) { UiInteger *value = (UiInteger*)wrapper->var->value; event->eventdata = value; + event->eventdatatype = UI_EVENT_DATA_INTEGER_VALUE; event->intval = value->get(value); } }
--- a/ui/qt/menu.cpp Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/qt/menu.cpp Sun Jul 13 11:38:27 2025 +0200 @@ -157,6 +157,7 @@ if(action->var) { UiInteger *value = (UiInteger*)action->var->value; event->eventdata = value; + event->eventdatatype = UI_EVENT_DATA_INTEGER_VALUE; event->intval = value->get(value); } } @@ -217,6 +218,7 @@ void ui_checkableaction_prepare_event(UiEvent *event, UiAction *action) { if(action->var) { event->eventdata = action->var->value; + event->eventdatatype = UI_EVENT_DATA_INTEGER_VALUE; } event->intval = action->isChecked(); }
--- a/ui/qt/model.cpp Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/qt/model.cpp Sun Jul 13 11:38:27 2025 +0200 @@ -100,6 +100,7 @@ event.window = obj->window; event.document = obj->ctx->document; event.eventdata = &sel; + event.eventdatatype = UI_EVENT_DATA_LIST_SELECTION; event.intval = sel.count; event.set = ui_get_setop(); @@ -213,6 +214,7 @@ event.window = obj->window; event.document = obj->ctx->document; event.eventdata = &sel; + event.eventdatatype = UI_EVENT_DATA_LIST_SELECTION; event.intval = sel.count; event.set = ui_get_setop();
--- a/ui/qt/toolbar.cpp Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/qt/toolbar.cpp Sun Jul 13 11:38:27 2025 +0200 @@ -104,6 +104,7 @@ event->intval = action->isChecked(); if(wrapper->var) { event->eventdata = wrapper->var->value; + event->eventdatatype = UI_EVENT_DATA_INTEGER_VALUE; } }
--- a/ui/qt/toolkit.cpp Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/qt/toolkit.cpp Sun Jul 13 11:38:27 2025 +0200 @@ -137,6 +137,7 @@ e.window = obj->window; e.document = obj->ctx->document; e.eventdata = NULL; + e.eventdatatype = 0; e.intval = 0; e.set = ui_get_setop(); if(prepare_event) { @@ -174,6 +175,7 @@ e.window = obj->window; e.document = obj->ctx->document; e.eventdata = NULL; + e.eventdatatype = 0; e.intval = 0; e.set = ui_get_setop(); if(prepare_event) {
--- a/ui/ui/toolkit.h Sun Jul 13 11:02:45 2025 +0200 +++ b/ui/ui/toolkit.h Sun Jul 13 11:38:27 2025 +0200 @@ -319,6 +319,7 @@ void *document; void *window; void *eventdata; + int eventdatatype; int intval; int set; }; @@ -473,6 +474,22 @@ 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_LIST_SELECTION, + UI_EVENT_DATA_LIST_ELM, + UI_EVENT_DATA_DND, + UI_EVENT_DATA_SUBLIST, + UI_EVENT_DATA_FILE_LIST +}; + UIEXPORT void ui_init(const char *appname, int argc, char **argv); UIEXPORT const char* ui_appname();