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 #include <stdio.h>
30 #include <stdlib.h>
31
32 #include "object.h"
33 #include "context.h"
34
35 void ui_end(UiObject *obj) {
36 if(!obj->next) {
37 return;
38 }
39
40 UiObject *prev =
NULL;
41 while(obj->next) {
42 prev = obj;
43 obj = obj->next;
44 }
45
46 if(prev) {
47
48 prev->next =
NULL;
49 }
50 }
51
52
53 UiObject* uic_object_new(UiObject *toplevel,
UIWIDGET widget) {
54 UiContext *ctx = toplevel->ctx;
55
56 UiObject *newobj = ucx_mempool_calloc(ctx->mempool,
1,
sizeof(UiObject));
57 newobj->ctx = ctx;
58 newobj->widget = widget;
59
60 return newobj;
61 }
62
63 void uic_obj_add(UiObject *toplevel, UiObject *ctobj) {
64 UiObject *current = uic_current_obj(toplevel);
65 current->next = ctobj;
66 }
67
68 UiObject* uic_current_obj(UiObject *toplevel) {
69 if(!toplevel) {
70 return NULL;
71 }
72 UiObject *obj = toplevel;
73 while(obj->next) {
74 obj = obj->next;
75 }
76 return obj;
77 }
78
79 UiContainer* uic_get_current_container(UiObject *obj) {
80 return uic_current_obj(obj)->container;
81 }
82