31 |
31 |
32 #include <ui/ui.h> |
32 #include <ui/ui.h> |
33 #include <ucx/buffer.h> |
33 #include <ucx/buffer.h> |
34 #include <ucx/utils.h> |
34 #include <ucx/utils.h> |
35 |
35 |
|
36 typedef struct { |
|
37 UiText *text; |
|
38 } MyDocument; |
|
39 |
|
40 MyDocument *doc1; |
|
41 MyDocument *doc2; |
|
42 |
|
43 |
36 void action_menu(UiEvent *event, void *userdata) { |
44 void action_menu(UiEvent *event, void *userdata) { |
37 |
45 |
|
46 } |
|
47 |
|
48 void action_button(UiEvent *event, void *userdata) { |
|
49 printf("button test\n"); |
|
50 MyDocument *doc = event->document; |
|
51 if(!doc) { |
|
52 printf("no document\n"); |
|
53 return; |
|
54 } |
|
55 |
|
56 char *text = doc->text->get(doc->text); |
|
57 printf("text: {\n%s\n}\n", text); |
|
58 } |
|
59 |
|
60 void action_switch(UiEvent *event, void *userdata) { |
|
61 if(event->document == doc1) { |
|
62 ui_set_document(event->obj, doc2); |
|
63 } else { |
|
64 ui_set_document(event->obj, doc1); |
|
65 } |
|
66 } |
|
67 |
|
68 |
|
69 MyDocument* create_doc(void) { |
|
70 MyDocument *doc = ui_document_new(sizeof(MyDocument)); |
|
71 UiContext *docctx = ui_document_context(doc); |
|
72 doc->text = ui_text_new(docctx, "text"); |
|
73 return doc; |
38 } |
74 } |
39 |
75 |
40 void application_startup(UiEvent *event, void *data) { |
76 void application_startup(UiEvent *event, void *data) { |
41 |
77 |
42 UiObject *obj = ui_window("Test", NULL); |
78 UiObject *obj = ui_window("Test", NULL); |
|
79 ui_textarea_nv(obj, "text"); |
|
80 ui_button(obj, "Test", action_button, NULL); |
|
81 ui_button(obj, "Switch Document", action_switch, NULL); |
43 |
82 |
|
83 doc1 = create_doc(); |
|
84 doc2 = create_doc(); |
|
85 |
|
86 ui_attach_document(obj->ctx, doc1); |
44 |
87 |
45 ui_show(obj); |
88 ui_show(obj); |
46 } |
89 } |
47 |
90 |
48 int main(int argc, char** argv) { |
91 int main(int argc, char** argv) { |