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 TOOLKIT_H
30 #define TOOLKIT_H
31
32 #include <inttypes.h>
33 #include "../ui/toolkit.h"
34 #include "../common/context.h"
35 #include "../common/object.h"
36
37 #include <cx/list.h>
38 #include <cx/string.h>
39
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43
44 typedef struct UiSrvObj UiSrvObj;
45
46 typedef struct UiServerEvent UiServerEvent;
47 typedef struct UiServerEventData UiServerEventData;
48 typedef void(*ui_srvevent_func)(UiServerEventData *event,
void *userdata);
49
50 typedef cxmutstr (*ui_serialize_func)(UiWidget *w);
51
52 struct UiServerEventData {
53 UiObject *obj;
54 cxmutstr str;
55 int intvalue;
56 };
57
58 struct UiServerEvent {
59 UiServerEventData event;
60 ui_srvevent_func callback;
61 void *userdata;
62 };
63
64 struct UiSrvObj {
65 UiContext *ctx;
66 cxmutstr id;
67
68 CxMap *widgets;
69 uint64_t widget_id_counter;
70 };
71
72 struct UiWidget {
73 UiSrvObj *obj;
74 cxmutstr id;
75 cxstring type;
76 UiVar *var;
77 cxmutstr var_id;
78 UiVarType var_type;
79 CxList *children;
80 cxmutstr args;
81 UiBool invisible;
82 UiBool disabled;
83 UiBool sent;
84 ui_serialize_func serialize;
85 };
86
87 typedef struct UiCallbackWidget {
88 UiWidget widget;
89 ui_callback callback;
90 void *userdata;
91 } UiCallbackWidget;
92
93 void ui_server_message_received(cxstring msg);
94
95 UiSrvObj* ui_create_server_object(UiContext *ctx);
96 void ui_reg_widget(UiWidget *widget);
97
98
99 #ifdef __cplusplus
100 }
101 #endif
102
103 #endif
104
105