ui/ui/tree.h

branch
newapi
changeset 196
320d85f3cd14
parent 150
5cee4cb5ad79
child 201
7f67ebbb0c1c
--- a/ui/ui/tree.h	Mon Oct 02 10:10:09 2023 +0200
+++ b/ui/ui/tree.h	Mon Oct 02 19:31:06 2023 +0200
@@ -39,6 +39,8 @@
 typedef struct UiListCallbacks UiListCallbacks;
 typedef struct UiListSelection UiListSelection;
 
+typedef struct UiListArgs      UiListArgs;
+
 typedef enum UiModelType {
     UI_STRING = 0,
     UI_INTEGER,
@@ -108,24 +110,50 @@
     int *rows;
 };
 
+struct UiListArgs {
+    UiTri fill;
+    UiBool hexpand;
+    UiBool vexpand;
+    int colspan;
+    int rowspan;
+
+    UiList* list;
+    const char* varname;
+    UiModel* model;
+    ui_getvaluefunc getvalue;
+    ui_callback onactivate;
+    void* onactivatedata;
+    ui_callback onselection;
+    void* onselectiondata;
+    UiBool multiselection;
+};
+
 UiModel* ui_model(UiContext *ctx, ...);
 void ui_model_free(UiContext *ctx, UiModel *mi);
 
-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_getvaluefunc getvalue, ui_callback f, void *udata);
+#define ui_listview(obj, ...) ui_listview_create(obj, (UiListArgs) { __VA_ARGS__ } )
+#define ui_table(obj, ...) ui_table_create(obj, (UiListArgs) { __VA_ARGS__ } )
+#define ui_combobox(obj, ...) ui_combobox_create(obj, (UiListArgs) { __VA_ARGS__ } )
 
-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_listview_create(UiObject* obj, UiListArgs args);
+UIWIDGET ui_table_create(UiObject* obj, UiListArgs args);
+UIWIDGET ui_combobox_create(UiObject* obj, UiListArgs);
+
+UIWIDGET ui_listview_deprecated(UiObject *obj, UiList *list, ui_getvaluefunc getvalue, ui_callback f, void *udata);
+UIWIDGET ui_listview_str_deprecated(UiObject *obj, UiList *list, ui_callback f, void *udata);
+UIWIDGET ui_listview_nv_deprecated(UiObject *obj, char *listname, ui_getvaluefunc getvalue, ui_callback f, void *udata);
+
+UIWIDGET ui_table_deprecated(UiObject *obj, UiList *data, UiModel *model, UiListCallbacks cb);
+UIWIDGET ui_table_nv_deprecated(UiObject *obj, char *varname, UiModel *model, UiListCallbacks cb);
 
 void ui_table_dragsource(UIWIDGET tablewidget, int actions, char *target0, ...);
 void ui_table_dragsource_a(UIWIDGET tablewidget, int actions, char **targets, int nelm);
 void ui_table_dragdest(UIWIDGET tablewidget, int actions, char *target0, ...);
 void ui_table_dragdest_a(UIWIDGET tablewidget, int actions, char **targets, int nelm);
 
-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_nv(UiObject *obj, char *varname, ui_getvaluefunc getvalue, ui_callback f, void *udata);
+UIWIDGET ui_combobox_deprecated(UiObject *obj, UiList *list, ui_getvaluefunc getvalue, ui_callback f, void *udata);
+UIWIDGET ui_combobox_str_deprecated(UiObject *obj, UiList *list, ui_callback f, void *udata);
+UIWIDGET ui_combobox_nv_deprecated(UiObject *obj, char *varname, ui_getvaluefunc getvalue, ui_callback f, void *udata);
 
 #ifdef	__cplusplus
 }

mercurial