# HG changeset patch # User Olaf Wintermann # Date 1752325647 -7200 # Node ID dc0eb815125474739812f4263edee25dd85668a8 # Parent 4c9c02fd5ef7e1a888ead1ee04a261dc3022f304 add additional userdata parameter to sourcelist getvalue func diff -r 4c9c02fd5ef7 -r dc0eb8151254 application/main.c --- a/application/main.c Sat Jul 12 12:58:52 2025 +0200 +++ b/application/main.c Sat Jul 12 15:07:27 2025 +0200 @@ -447,7 +447,7 @@ return NULL; } -void sourcelist_getvalue(void *sublistdata, void *rowdata, int index, UiSubListItem *item) { +void sourcelist_getvalue(void *sublistdata, void *rowdata, int index, UiSubListItem *item, void *userdata) { item->label = strdup(rowdata); item->eventdata = sublistdata; } diff -r 4c9c02fd5ef7 -r dc0eb8151254 ui/common/args.c --- a/ui/common/args.c Sat Jul 12 12:58:52 2025 +0200 +++ b/ui/common/args.c Sat Jul 12 15:07:27 2025 +0200 @@ -1050,6 +1050,9 @@ args->getvalue = getvalue; } +void ui_sourcelist_args_set_getvalue_userdata(UiSourceListArgs *args, void *userdata) { + args->getvaluedata = userdata; +} void ui_sourcelist_args_set_onactivate(UiSourceListArgs *args, ui_callback callback) { args->onactivate = callback; diff -r 4c9c02fd5ef7 -r dc0eb8151254 ui/common/args.h --- a/ui/common/args.h Sat Jul 12 12:58:52 2025 +0200 +++ b/ui/common/args.h Sat Jul 12 15:07:27 2025 +0200 @@ -250,6 +250,7 @@ UIEXPORT void ui_sourcelist_args_set_varname(UiSourceListArgs *args, const char *varname); UIEXPORT void ui_sourcelist_args_set_dynamic_sublists(UiSourceListArgs *args, UiList *value); UIEXPORT void ui_sourcelist_args_set_getvalue_func(UiSourceListArgs *args, ui_sublist_getvalue_func getvalue); +UIEXPORT void ui_sourcelist_args_set_getvalue_userdata(UiSourceListArgs *args, void *userdata); UIEXPORT void ui_sourcelist_args_set_onactivate(UiSourceListArgs *args, ui_callback callback); UIEXPORT void ui_sourcelist_args_set_onactivatedata(UiSourceListArgs *args, void *userdata); UIEXPORT void ui_sourcelist_args_set_onbuttonclick(UiSourceListArgs *args, ui_callback callback); diff -r 4c9c02fd5ef7 -r dc0eb8151254 ui/gtk/list.c --- a/ui/gtk/list.c Sat Jul 12 12:58:52 2025 +0200 +++ b/ui/gtk/list.c Sat Jul 12 15:07:27 2025 +0200 @@ -1835,6 +1835,7 @@ uilistbox->obj = obj; uilistbox->listbox = GTK_LIST_BOX(listbox); uilistbox->getvalue = args->getvalue; + uilistbox->getvaluedata = args->getvaluedata; uilistbox->onactivate = args->onactivate; uilistbox->onactivatedata = args->onactivatedata; uilistbox->onbuttonclick = args->onbuttonclick; @@ -2007,7 +2008,7 @@ void *elm = list->first(list); while(elm) { UiSubListItem item = { NULL, NULL, NULL, NULL, NULL, NULL }; - listbox->getvalue(sublist->userdata, elm, index, &item); + listbox->getvalue(sublist->userdata, elm, index, &item, listbox->getvaluedata); // create listbox item GtkWidget *row = create_listbox_row(listbox, sublist, &item, (int)index); diff -r 4c9c02fd5ef7 -r dc0eb8151254 ui/gtk/list.h --- a/ui/gtk/list.h Sat Jul 12 12:58:52 2025 +0200 +++ b/ui/gtk/list.h Sat Jul 12 15:07:27 2025 +0200 @@ -98,6 +98,7 @@ GtkListBox *listbox; CxList *sublists; // contains UiListBoxSubList elements ui_sublist_getvalue_func getvalue; + void *getvaluedata; ui_callback onactivate; void *onactivatedata; ui_callback onbuttonclick; diff -r 4c9c02fd5ef7 -r dc0eb8151254 ui/ui/tree.h --- a/ui/ui/tree.h Sat Jul 12 12:58:52 2025 +0200 +++ b/ui/ui/tree.h Sat Jul 12 15:07:27 2025 +0200 @@ -150,7 +150,7 @@ const int *groups; }; -typedef void (*ui_sublist_getvalue_func)(void *sublist_userdata, void *rowdata, int index, UiSubListItem *item); +typedef void (*ui_sublist_getvalue_func)(void *sublist_userdata, void *rowdata, int index, UiSubListItem *item, void *userdata); struct UiSubList { UiList *value; @@ -233,6 +233,11 @@ ui_sublist_getvalue_func getvalue; /* + * getvalue_func userdata + */ + void *getvaluedata; + + /* * activated when a list item is selected */ ui_callback onactivate;