# HG changeset patch # User Olaf Wintermann # Date 1750709047 -7200 # Node ID 8cce45a8594258f30127fe656a5e4db672070d22 # Parent 5d745e140ee7b912ca5cfe04d25aa239e582a2bd add UiListArgs wrapper functions diff -r 5d745e140ee7 -r 8cce45a85942 ui/common/args.c --- a/ui/common/args.c Sat Jun 21 14:17:20 2025 +0200 +++ b/ui/common/args.c Mon Jun 23 22:04:07 2025 +0200 @@ -701,3 +701,142 @@ free(args); } + +/* ------------------------- UiListArgs ----------------------------*/ + +UiListArgs* ui_list_args_new(void) { + UiListArgs *args = malloc(sizeof(UiListArgs)); + memset(args, 0, sizeof(UiListArgs)); + return args; +} + +void ui_list_args_set_fill(UiListArgs *args, UiBool fill) { + args->fill = fill ? UI_ON : UI_OFF; +} + +void ui_list_args_set_hexpand(UiListArgs *args, UiBool value) { + args->hexpand = value; +} + +void ui_list_args_set_vexpand(UiListArgs *args, UiBool value) { + args->vexpand = value; +} + +void ui_list_args_set_hfill(UiListArgs *args, UiBool value) { + args->hfill = value; +} + +void ui_list_args_set_vfill(UiListArgs *args, UiBool value) { + args->vfill = value; +} + +void ui_list_args_set_override_defaults(UiListArgs *args, UiBool value) { + args->override_defaults = value; +} + +void ui_list_args_set_colspan(UiListArgs *args, int colspan) { + args->colspan = colspan; +} + +void ui_list_args_set_rowspan(UiListArgs *args, int rowspan) { + args->rowspan = rowspan; +} + +void ui_list_args_set_name(UiListArgs *args, const char *name) { + args->name = strdup(name); +} + +void ui_list_args_set_style_class(UiListArgs *args, const char *classname) { + args->style_class = classname; +} + +void ui_list_args_set_varname(UiListArgs *args, const char *varname) { + args->varname = strdup(varname); +} + +void ui_list_args_set_value(UiListArgs *args, UiList *value) { + args->list = value; +} + +void ui_list_args_set_model(UiListArgs *args, UiModel *model) { + args->model = model; +} + +void ui_list_args_set_static_elements(UiListArgs *args, char **strarray, size_t nelm) { + char **array = calloc(nelm, sizeof(char*)); + for(int i=0;istatic_elements = array; + args->static_nelm = nelm; +} + +void ui_list_args_set_getvalue_func(UiListArgs *args, ui_getvaluefunc getvalue) { + args->getvalue = getvalue; +} + +void ui_list_args_set_onactivate(UiListArgs *args, ui_callback callback) { + args->onactivate = callback; +} + +void ui_list_args_set_onactivatedata(UiListArgs *args, void *userdata) { + args->onactivatedata = userdata; +} + +void ui_list_args_set_onselection(UiListArgs *args, ui_callback callback) { + args->onselection = callback; +} + +void ui_list_args_set_onselectiondata(UiListArgs *args, void *userdata) { + args->onselectiondata = userdata; +} + +void ui_list_args_set_ondragstart(UiListArgs *args, ui_callback callback) { + args->ondragstart = callback; +} + +void ui_list_args_set_ondragstartdata(UiListArgs *args, void *userdata) { + args->ondragstartdata = userdata; +} + +void ui_list_args_set_ondragcomplete(UiListArgs *args, ui_callback callback) { + args->ondragcomplete = callback; +} + +void ui_list_args_set_ondragcompletedata(UiListArgs *args, void *userdata) { + args->ondragcompletedata = userdata; +} + +void ui_list_args_set_ondrop(UiListArgs *args, ui_callback callback) { + args->ondrop = callback; +} + +void ui_list_args_set_ondropdata(UiListArgs *args, void *userdata) { + args->ondropdata = userdata; +} + +void ui_list_args_set_multiselection(UiListArgs *args, UiBool multiselection) { + args->multiselection = multiselection; +} + +void ui_list_args_set_contextmenu(UiListArgs *args, UiMenuBuilder *menubuilder) { + args->contextmenu = menubuilder; +} + +void ui_list_args_set_groups(UiListArgs *args, int *groups) { + // TODO +} + +void ui_list_args_free(UiListArgs *args) { + free((void*)args->name); + free((void*)args->style_class); + free((void*)args->varname); + if(args->static_elements) { + for(int i=0;istatic_nelm;i++) { + free(args->static_elements[i]); + } + free(args->static_elements); + } + free(args); +} + diff -r 5d745e140ee7 -r 8cce45a85942 ui/common/args.h --- a/ui/common/args.h Sat Jun 21 14:17:20 2025 +0200 +++ b/ui/common/args.h Mon Jun 23 22:04:07 2025 +0200 @@ -32,6 +32,7 @@ #include "../ui/container.h" #include "../ui/button.h" #include "../ui/menu.h" +#include "../ui/tree.h" #ifdef __cplusplus extern "C" { @@ -175,6 +176,37 @@ UIEXPORT void ui_toggle_args_set_groups(UiToggleArgs *args, int *groups); UIEXPORT void ui_toggle_args_free(UiToggleArgs *args); +UIEXPORT UiListArgs* ui_list_args_new(void); +UIEXPORT void ui_list_args_set_fill(UiListArgs *args, UiBool fill); +UIEXPORT void ui_list_args_set_hexpand(UiListArgs *args, UiBool value); +UIEXPORT void ui_list_args_set_vexpand(UiListArgs *args, UiBool value); +UIEXPORT void ui_list_args_set_hfill(UiListArgs *args, UiBool value); +UIEXPORT void ui_list_args_set_vfill(UiListArgs *args, UiBool value); +UIEXPORT void ui_list_args_set_override_defaults(UiListArgs *args, UiBool value); +UIEXPORT void ui_list_args_set_colspan(UiListArgs *args, int colspan); +UIEXPORT void ui_list_args_set_rowspan(UiListArgs *args, int rowspan); +UIEXPORT void ui_list_args_set_name(UiListArgs *args, const char *name); +UIEXPORT void ui_list_args_set_style_class(UiListArgs *args, const char *classname); +UIEXPORT void ui_list_args_set_varname(UiListArgs *args, const char *varname); +UIEXPORT void ui_list_args_set_value(UiListArgs *args, UiList *value); +UIEXPORT void ui_list_args_set_model(UiListArgs *args, UiModel *model); +UIEXPORT void ui_list_args_set_static_elements(UiListArgs *args, char **strarray, size_t nelm); +UIEXPORT void ui_list_args_set_getvalue_func(UiListArgs *args, ui_getvaluefunc getvalue); +UIEXPORT void ui_list_args_set_onactivate(UiListArgs *args, ui_callback callback); +UIEXPORT void ui_list_args_set_onactivatedata(UiListArgs *args, void *userdata); +UIEXPORT void ui_list_args_set_onselection(UiListArgs *args, ui_callback callback); +UIEXPORT void ui_list_args_set_onselectiondata(UiListArgs *args, void *userdata); +UIEXPORT void ui_list_args_set_ondragstart(UiListArgs *args, ui_callback callback); +UIEXPORT void ui_list_args_set_ondragstartdata(UiListArgs *args, void *userdata); +UIEXPORT void ui_list_args_set_ondragcomplete(UiListArgs *args, ui_callback callback); +UIEXPORT void ui_list_args_set_ondragcompletedata(UiListArgs *args, void *userdata); +UIEXPORT void ui_list_args_set_ondrop(UiListArgs *args, ui_callback callback); +UIEXPORT void ui_list_args_set_ondropdata(UiListArgs *args, void *userdata); +UIEXPORT void ui_list_args_set_multiselection(UiListArgs *args, UiBool multiselection); +UIEXPORT void ui_list_args_set_contextmenu(UiListArgs *args, UiMenuBuilder *menubuilder); +UIEXPORT void ui_list_args_set_groups(UiListArgs *args, int *groups); +UIEXPORT void ui_list_args_free(UiListArgs *args); + #ifdef __cplusplus } #endif diff -r 5d745e140ee7 -r 8cce45a85942 ui/gtk/list.c --- a/ui/gtk/list.c Sat Jun 21 14:17:20 2025 +0200 +++ b/ui/gtk/list.c Mon Jun 23 22:04:07 2025 +0200 @@ -203,7 +203,7 @@ tableview->ondragcomplete = args->ondragcomplete; tableview->ondragcompletedata = args->ondragcompletedata; tableview->ondrop = args->ondrop; - tableview->ondropdata = args->ondropsdata; + tableview->ondropdata = args->ondropdata; tableview->selection.count = 0; tableview->selection.rows = NULL; return tableview; diff -r 5d745e140ee7 -r 8cce45a85942 ui/ui/tree.h --- a/ui/ui/tree.h Sat Jun 21 14:17:20 2025 +0200 +++ b/ui/ui/tree.h Mon Jun 23 22:04:07 2025 +0200 @@ -130,7 +130,7 @@ ui_callback ondragcomplete; void* ondragcompletedata; ui_callback ondrop; - void* ondropsdata; + void* ondropdata; UiBool multiselection; UiMenuBuilder *contextmenu;