--- a/ui/ui/tree.h Fri Nov 10 18:04:40 2017 +0100 +++ b/ui/ui/tree.h Sat Nov 11 08:34:06 2017 +0100 @@ -35,7 +35,8 @@ extern "C" { #endif -typedef struct UiModelInfo UiModelInfo; +typedef struct UiModel UiModel; +typedef struct UiListCallbacks UiListCallbacks; typedef struct UiListSelection UiListSelection; @@ -46,7 +47,7 @@ UI_ICON_TEXT, } UiModelType; -struct UiModelInfo { +struct UiModel { /* * number of columns */ @@ -71,7 +72,9 @@ * TODO: return */ void*(*getvalue)(void*, int); - +}; + +struct UiListCallbacks { /* * selection callback */ @@ -100,18 +103,19 @@ int *rows; }; -UiModelInfo* ui_model_info(UiContext *ctx, ...); -void ui_model_info_free(UiContext *ctx, UiModelInfo *mi); +UiModel* ui_model_info(UiContext *ctx, ...); +void ui_model_info_free(UiContext *ctx, UiModel *mi); -UIWIDGET ui_listview(UiObject *obj, UiList *list, ui_model_getvalue_f getvalue, ui_callback f, void *udata); +UIWIDGET ui_listview(UiObject *obj, UiList *list, ui_getvaluefunc getvalue, ui_callback f, void *udata); UIWIDGET ui_listview_str(UiObject *obj, UiList *list, ui_callback f, void *udata); -UIWIDGET ui_listview_nv(UiObject *obj, char *listname, ui_model_getvalue_f getvalue, ui_callback f, void *udata); - -UIWIDGET ui_table(UiObject *obj, UiList *model, UiModelInfo *modelinfo); +UIWIDGET ui_listview_nv(UiObject *obj, char *listname, ui_getvaluefunc getvalue, ui_callback f, void *udata); +UIWIDGET ui_table(UiObject *obj, UiList *data, UiModel *model, UiListCallbacks cb); +UIWIDGET ui_table_nv(UiObject *obj, char *varname, UiModel *model, UiListCallbacks cb); + +UIWIDGET ui_combobox(UiObject *obj, UiList *list, ui_getvaluefunc getvalue, ui_callback f, void *udata); UIWIDGET ui_combobox_str(UiObject *obj, UiList *list, ui_callback f, void *udata); -UIWIDGET ui_combobox(UiObject *obj, UiList *list, ui_model_getvalue_f getvalue, ui_callback f, void *udata); -UIWIDGET ui_combobox_nv(UiObject *obj, char *varname, ui_model_getvalue_f getvalue, ui_callback f, void *udata); +UIWIDGET ui_combobox_nv(UiObject *obj, char *varname, ui_getvaluefunc getvalue, ui_callback f, void *udata); #ifdef __cplusplus }