Sat, 12 Jul 2025 17:03:06 +0200
add srclist wrapper functions
| ui/common/wrapper.c | file | annotate | diff | comparison | revisions | |
| ui/common/wrapper.h | file | annotate | diff | comparison | revisions |
--- a/ui/common/wrapper.c Sat Jul 12 16:29:55 2025 +0200 +++ b/ui/common/wrapper.c Sat Jul 12 17:03:06 2025 +0200 @@ -27,7 +27,8 @@ */ #include "wrapper.h" -#include "../ui/tree.h" +#include "types.h" +#include <cx/list.h> /* ---------------------------- UiObject ---------------------------- */ @@ -62,6 +63,77 @@ list->iter = iter; } + +/* ------------------------------ UiSublist ------------------------------ */ + +UiSubList* ui_sublist_new(void) { + UiSubList *sublist = malloc(sizeof(UiSubList)); + memset(sublist, 0, sizeof(UiSubList)); + return sublist; +} + +void ui_sublist_set_value(UiSubList *sublist, UiList *value) { + sublist->value = value; +} + +void ui_sublist_set_varname(UiSubList *sublist, const char *varname) { + free((void*)sublist->varname); + sublist->varname = strdup(varname); +} + +void ui_sublist_set_header(UiSubList *sublist, const char *header) { + free((void*)sublist->header); + sublist->header = strdup(header); +} + +void ui_sublist_set_separator(UiSubList *sublist, UiBool separator) { + sublist->separator = separator; +} + +void ui_sublist_set_userdata(UiSubList *sublist, void *userdata) { + sublist->userdata = userdata; +} + +void ui_sublist_free(UiSubList *sublist) { + free((void*)sublist->varname); + free((void*)sublist->header); + free(sublist); +} + + +/* -------------------- Source list (UiList<UiSublist>) -------------------- */ + +UiList* ui_srclist_new(UiContext *ctx, const char *name) { + UiList *list = ui_list_new2(ctx, name, uic_ucx_list_init, NULL); + CxList *cxlist = list->data; + cxlist->collection.simple_destructor = (cx_destructor_func)ui_sublist_free; + return list; +} + +void ui_srclist_add(UiList *list, UiSubList *item) { + ui_list_append(list, item); +} + +void ui_srclist_insert(UiList *list, int index, UiSubList *item) { + CxList *cxlist = list->data; + cxListInsert(cxlist, index, item); +} + +void ui_srclist_remove(UiList *list, int index) { + CxList *cxlist = list->data; + cxListRemove(cxlist, index); +} + +void ui_srclist_clear(UiList *list) { + CxList *cxlist = list->data; + cxListClear(cxlist); +} + +int ui_srclist_size(UiList *list) { + return ui_list_count(list); +} + + /* ---------------------------- UiEvent ---------------------------- */ UiObject* ui_event_get_obj(UiEvent *event) {
--- a/ui/common/wrapper.h Sat Jul 12 16:29:55 2025 +0200 +++ b/ui/common/wrapper.h Sat Jul 12 17:03:06 2025 +0200 @@ -30,6 +30,7 @@ #define UIC_WRAPPER_H #include "../ui/toolkit.h" +#include "../ui/tree.h" #ifdef __cplusplus extern "C" { @@ -42,6 +43,21 @@ UIEXPORT void* ui_list_get_data(UiList *list); UIEXPORT void* ui_list_get_iter(UiList *list); UIEXPORT void ui_list_set_iter(UiList *list, void *iter); + +UIEXPORT UiSubList* ui_sublist_new(void); +UIEXPORT void ui_sublist_set_value(UiSubList *sublist, UiList *value); +UIEXPORT void ui_sublist_set_varname(UiSubList *sublist, const char *varname); +UIEXPORT void ui_sublist_set_header(UiSubList *sublist, const char *header); +UIEXPORT void ui_sublist_set_separator(UiSubList *sublist, UiBool separator); +UIEXPORT void ui_sublist_set_userdata(UiSubList *sublist, void *userdata); +UIEXPORT void ui_sublist_free(UiSubList *sublist); + +UIEXPORT UiList* ui_srclist_new(UiContext *ctx, const char *name); +UIEXPORT void ui_srclist_add(UiList *list, UiSubList *item); +UIEXPORT void ui_srclist_insert(UiList *list, int index, UiSubList *item); +UIEXPORT void ui_srclist_remove(UiList *list, int index); +UIEXPORT void ui_srclist_clear(UiList *list); +UIEXPORT int ui_srclist_size(UiList *list); UIEXPORT UiObject* ui_event_get_obj(UiEvent *event); UIEXPORT void* ui_event_get_document(UiEvent *event);