ui/ui/tree.h

changeset 39
4e66271541e8
parent 33
458831c574f4
child 42
29b2821d1262
--- a/ui/ui/tree.h	Thu May 15 17:17:58 2014 +0200
+++ b/ui/ui/tree.h	Thu May 15 20:06:28 2014 +0200
@@ -35,10 +35,61 @@
 extern "C" {
 #endif
 
+typedef struct UiModelInfo UiModelInfo;
+
+typedef enum UiModelType UiModelType;
+
+enum UiModelType {
+    UI_STRING = 0,
+    UI_INTEGER
+};
+
+struct UiModelInfo {
+    /*
+     * number of columns
+     */
+    int columns;
+    
+    /*
+     * array of column types
+     * array length is the number of columns
+     */
+    UiModelType *types;
+    
+    /*
+     * array of column titles
+     * array length is the number of columns
+     */
+    char **titles;
+    
+    /*
+     * function for translatring model data to view data
+     * first argument is a pointer from the model (UiList, UiTree)
+     * second argument is the column index
+     * TODO: return
+     */
+    void*(*getvalue)(void*, int);
+    
+    /*
+     * selection callback
+     */
+    ui_callback callback;
+    
+    /*
+     * userdata for callback
+     */
+    void *userdata;
+};
+
+UiModelInfo* ui_model_info(UiContext *ctx, ...);
+void ui_model_info_free(UiContext *ctx, UiModelInfo *mi);
+
 UIWIDGET ui_listview(UiObject *obj, UiList *list, ui_model_getvalue_f 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);
+
 #ifdef	__cplusplus
 }
 #endif

mercurial