diff -r 8ccdde37275b -r 4e66271541e8 ui/ui/tree.h --- 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