33 |
33 |
34 #ifdef __cplusplus |
34 #ifdef __cplusplus |
35 extern "C" { |
35 extern "C" { |
36 #endif |
36 #endif |
37 |
37 |
|
38 typedef struct UiModelInfo UiModelInfo; |
|
39 |
|
40 typedef enum UiModelType UiModelType; |
|
41 |
|
42 enum UiModelType { |
|
43 UI_STRING = 0, |
|
44 UI_INTEGER |
|
45 }; |
|
46 |
|
47 struct UiModelInfo { |
|
48 /* |
|
49 * number of columns |
|
50 */ |
|
51 int columns; |
|
52 |
|
53 /* |
|
54 * array of column types |
|
55 * array length is the number of columns |
|
56 */ |
|
57 UiModelType *types; |
|
58 |
|
59 /* |
|
60 * array of column titles |
|
61 * array length is the number of columns |
|
62 */ |
|
63 char **titles; |
|
64 |
|
65 /* |
|
66 * function for translatring model data to view data |
|
67 * first argument is a pointer from the model (UiList, UiTree) |
|
68 * second argument is the column index |
|
69 * TODO: return |
|
70 */ |
|
71 void*(*getvalue)(void*, int); |
|
72 |
|
73 /* |
|
74 * selection callback |
|
75 */ |
|
76 ui_callback callback; |
|
77 |
|
78 /* |
|
79 * userdata for callback |
|
80 */ |
|
81 void *userdata; |
|
82 }; |
|
83 |
|
84 UiModelInfo* ui_model_info(UiContext *ctx, ...); |
|
85 void ui_model_info_free(UiContext *ctx, UiModelInfo *mi); |
|
86 |
38 UIWIDGET ui_listview(UiObject *obj, UiList *list, ui_model_getvalue_f getvalue, ui_callback f, void *udata); |
87 UIWIDGET ui_listview(UiObject *obj, UiList *list, ui_model_getvalue_f getvalue, ui_callback f, void *udata); |
39 UIWIDGET ui_listview_str(UiObject *obj, UiList *list, ui_callback f, void *udata); |
88 UIWIDGET ui_listview_str(UiObject *obj, UiList *list, ui_callback f, void *udata); |
40 UIWIDGET ui_listview_nv(UiObject *obj, char *listname, ui_model_getvalue_f getvalue, ui_callback f, void *udata); |
89 UIWIDGET ui_listview_nv(UiObject *obj, char *listname, ui_model_getvalue_f getvalue, ui_callback f, void *udata); |
|
90 |
|
91 UIWIDGET ui_table(UiObject *obj, UiList *model, UiModelInfo *modelinfo); |
41 |
92 |
42 #ifdef __cplusplus |
93 #ifdef __cplusplus |
43 } |
94 } |
44 #endif |
95 #endif |
45 |
96 |