| 25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| 26 * POSSIBILITY OF SUCH DAMAGE. |
26 * POSSIBILITY OF SUCH DAMAGE. |
| 27 */ |
27 */ |
| 28 |
28 |
| 29 #include "wrapper.h" |
29 #include "wrapper.h" |
| 30 #include "../ui/tree.h" |
30 #include "types.h" |
| |
31 #include <cx/list.h> |
| 31 |
32 |
| 32 /* ---------------------------- UiObject ---------------------------- */ |
33 /* ---------------------------- UiObject ---------------------------- */ |
| 33 |
34 |
| 34 UiContext* ui_object_get_context(UiObject *obj) { |
35 UiContext* ui_object_get_context(UiObject *obj) { |
| 35 return obj->ctx; |
36 return obj->ctx; |
| 59 } |
60 } |
| 60 |
61 |
| 61 void ui_list_set_iter(UiList *list, void *iter) { |
62 void ui_list_set_iter(UiList *list, void *iter) { |
| 62 list->iter = iter; |
63 list->iter = iter; |
| 63 } |
64 } |
| |
65 |
| |
66 |
| |
67 /* ------------------------------ UiSublist ------------------------------ */ |
| |
68 |
| |
69 UiSubList* ui_sublist_new(void) { |
| |
70 UiSubList *sublist = malloc(sizeof(UiSubList)); |
| |
71 memset(sublist, 0, sizeof(UiSubList)); |
| |
72 return sublist; |
| |
73 } |
| |
74 |
| |
75 void ui_sublist_set_value(UiSubList *sublist, UiList *value) { |
| |
76 sublist->value = value; |
| |
77 } |
| |
78 |
| |
79 void ui_sublist_set_varname(UiSubList *sublist, const char *varname) { |
| |
80 free((void*)sublist->varname); |
| |
81 sublist->varname = strdup(varname); |
| |
82 } |
| |
83 |
| |
84 void ui_sublist_set_header(UiSubList *sublist, const char *header) { |
| |
85 free((void*)sublist->header); |
| |
86 sublist->header = strdup(header); |
| |
87 } |
| |
88 |
| |
89 void ui_sublist_set_separator(UiSubList *sublist, UiBool separator) { |
| |
90 sublist->separator = separator; |
| |
91 } |
| |
92 |
| |
93 void ui_sublist_set_userdata(UiSubList *sublist, void *userdata) { |
| |
94 sublist->userdata = userdata; |
| |
95 } |
| |
96 |
| |
97 void ui_sublist_free(UiSubList *sublist) { |
| |
98 free((void*)sublist->varname); |
| |
99 free((void*)sublist->header); |
| |
100 free(sublist); |
| |
101 } |
| |
102 |
| |
103 |
| |
104 /* -------------------- Source list (UiList<UiSublist>) -------------------- */ |
| |
105 |
| |
106 UiList* ui_srclist_new(UiContext *ctx, const char *name) { |
| |
107 UiList *list = ui_list_new2(ctx, name, uic_ucx_list_init, NULL); |
| |
108 CxList *cxlist = list->data; |
| |
109 cxlist->collection.simple_destructor = (cx_destructor_func)ui_sublist_free; |
| |
110 return list; |
| |
111 } |
| |
112 |
| |
113 void ui_srclist_add(UiList *list, UiSubList *item) { |
| |
114 ui_list_append(list, item); |
| |
115 } |
| |
116 |
| |
117 void ui_srclist_insert(UiList *list, int index, UiSubList *item) { |
| |
118 CxList *cxlist = list->data; |
| |
119 cxListInsert(cxlist, index, item); |
| |
120 } |
| |
121 |
| |
122 void ui_srclist_remove(UiList *list, int index) { |
| |
123 CxList *cxlist = list->data; |
| |
124 cxListRemove(cxlist, index); |
| |
125 } |
| |
126 |
| |
127 void ui_srclist_clear(UiList *list) { |
| |
128 CxList *cxlist = list->data; |
| |
129 cxListClear(cxlist); |
| |
130 } |
| |
131 |
| |
132 int ui_srclist_size(UiList *list) { |
| |
133 return ui_list_count(list); |
| |
134 } |
| |
135 |
| 64 |
136 |
| 65 /* ---------------------------- UiEvent ---------------------------- */ |
137 /* ---------------------------- UiEvent ---------------------------- */ |
| 66 |
138 |
| 67 UiObject* ui_event_get_obj(UiEvent *event) { |
139 UiObject* ui_event_get_obj(UiEvent *event) { |
| 68 return event->obj; |
140 return event->obj; |