66 typedef struct UiContext UiContext; |
66 typedef struct UiContext UiContext; |
67 typedef struct UiContainer UiContainer; |
67 typedef struct UiContainer UiContainer; |
68 |
68 |
69 #define ui_getval(val) (val).get(&(val)) |
69 #define ui_getval(val) (val).get(&(val)) |
70 #define ui_setval(val, v) (val).set(&(val), v) |
70 #define ui_setval(val, v) (val).set(&(val), v) |
|
71 |
|
72 #define ui_getsubstr(text, begin, end) (text).getsubstr(&(val), begin, end) |
|
73 #define ui_insert(text, begin, str) (text).insert(&(text), begin, str) |
|
74 |
71 |
75 |
72 typedef void(*ui_callback)(UiEvent*, void*); // event, user data |
76 typedef void(*ui_callback)(UiEvent*, void*); // event, user data |
73 |
77 |
74 struct UiObject { |
78 struct UiObject { |
75 /* |
79 /* |
118 char* value; |
122 char* value; |
119 void *obj; |
123 void *obj; |
120 }; |
124 }; |
121 |
125 |
122 struct UiText { |
126 struct UiText { |
|
127 void (*set)(UiText*, char*); |
123 char* (*get)(UiText*); |
128 char* (*get)(UiText*); |
124 void (*set)(UiText*, char*); |
129 char* (*getsubstr)(UiText*, int, int); // text, begin, end |
|
130 void (*insert)(UiText*, int, char*); |
125 char* value; |
131 char* value; |
126 void *obj; |
132 void *obj; |
127 void *undomgr; |
133 void *undomgr; |
128 // TODO: selection, undo, replace, ... |
134 // TODO: selection, undo, replace, ... |
129 }; |
135 }; |