1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 #ifndef TREE_H
30 #define TREE_H
31
32 #include "../ui/tree.h"
33 #include "toolkit.h"
34
35 #include <cx/array_list.h>
36
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40
41 typedef struct UiListView {
42 UiObject *obj;
43 GtkWidget *widget;
44 UiVar *var;
45 UiModel *model;
46 ui_callback ondragstart;
47 void *ondragstartdata;
48 ui_callback ondragcomplete;
49 void *ondragcompletedata;
50 ui_callback ondrop;
51 void *ondropdata;
52
53 } UiListView;
54
55 typedef struct UiTreeEventData {
56 UiObject *obj;
57 ui_callback activate;
58 ui_callback selection;
59 void *activatedata;
60 void *selectiondata;
61 } UiTreeEventData;
62
63 typedef struct UiListBox UiListBox;
64
65 typedef struct UiListBoxSubList {
66 UiVar *var;
67 size_t numitems;
68 char *header;
69 UiBool separator;
70 CxList *widgets;
71 UiListBox *listbox;
72 void *userdata;
73 size_t index;
74 } UiListBoxSubList;
75
76 struct UiListBox {
77 UiObject *obj;
78 GtkListBox *listbox;
79 CxList *sublists;
80 ui_sublist_getvalue_func getvalue;
81 ui_callback onactivate;
82 void *onactivatedata;
83 ui_callback onbuttonclick;
84 void *onbuttonclickdata;
85
86 GtkListBoxRow *first_row;
87 };
88
89 void* ui_strmodel_getvalue(
void *elm,
int column);
90
91 UIWIDGET ui_listview_var(UiObject *obj, UiVar *var, ui_getvaluefunc getvalue, ui_callback f,
void *udata);
92 UIWIDGET ui_table_var(UiObject *obj, UiVar *var, UiModel *model, UiListCallbacks cb);
93
94 GtkWidget* ui_get_tree_widget(
UIWIDGET widget);
95
96 void ui_listview_update(UiList *list,
int i);
97 UiListSelection ui_listview_getselection(UiList *list);
98 void ui_listview_setselection(UiList *list, UiListSelection selection);
99
100 void ui_combobox_destroy(GtkWidget *w, UiListView *v);
101 void ui_listview_destroy(GtkWidget *w, UiListView *v);
102
103 void ui_listview_activate_event(
104 GtkTreeView *tree_view,
105 GtkTreePath *path,
106 GtkTreeViewColumn *column,
107 UiTreeEventData *event);
108 void ui_listview_selection_event(
109 GtkTreeSelection *treeselection,
110 UiTreeEventData *event);
111 UiListSelection ui_listview_selection(
112 GtkTreeSelection *selection,
113 UiTreeEventData *event);
114 int ui_tree_path_list_index(GtkTreePath *path);
115
116 void ui_listview_add_dnd(UiListView *listview, UiListArgs *args);
117 void ui_listview_enable_drop(UiListView *listview, UiListArgs *args);
118
119 UIWIDGET ui_combobox_var(UiObject *obj, UiVar *var, ui_getvaluefunc getvalue, ui_callback f,
void *udata);
120 GtkWidget* ui_create_combobox(UiObject *obj, UiModel *model, UiVar *var, ui_callback f,
void *udata);
121 void ui_combobox_change_event(GtkComboBox *widget, UiEventData *e);
122 void ui_combobox_modelupdate(UiList *list,
int i);
123 UiListSelection ui_combobox_getselection(UiList *list);
124 void ui_combobox_setselection(UiList *list, UiListSelection selection);
125
126 void ui_listbox_update(UiListBox *listbox,
int from,
int to);
127 void ui_listbox_update_sublist(UiListBox *listbox, UiListBoxSubList *sublist,
size_t listbox_insert_index);
128 void ui_listbox_list_update(UiList *list,
int i);
129
130 void ui_listbox_row_activate(GtkListBox *self, GtkListBoxRow *row, gpointer user_data);
131
132 #ifdef __cplusplus
133 }
134 #endif
135
136 #endif
137
138