application/main.c

branch
newapi
changeset 253
087cc9216f28
parent 174
0358f1d9c506
child 255
ebdce2bb62be
equal deleted inserted replaced
252:7d176764756d 253:087cc9216f28
32 #include <ui/ui.h> 32 #include <ui/ui.h>
33 #include <cx/buffer.h> 33 #include <cx/buffer.h>
34 #include <cx/utils.h> 34 #include <cx/utils.h>
35 35
36 typedef struct { 36 typedef struct {
37 UiText *text; 37 UiString *str1;
38 UiString *str2;
38 } MyDocument; 39 } MyDocument;
39 40
40 MyDocument *doc1; 41 MyDocument *doc1;
41 MyDocument *doc2; 42 MyDocument *doc2;
42 43
43 44
44 void action_menu(UiEvent *event, void *userdata) { 45 void action_menu(UiEvent *event, void *userdata) {
45 printf("action_menu: %s\n", (char*)userdata); 46
46 } 47 }
47 48
48 void action_button(UiEvent *event, void *userdata) { 49 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 50
56 char *text = doc->text->get(doc->text);
57 printf("text: {\n%s\n}\n", text);
58 } 51 }
59 52
60 void action_switch(UiEvent *event, void *userdata) { 53 void action_switch(UiEvent *event, void *userdata) {
61 if(event->document == doc1) { 54
62 ui_set_document(event->obj, doc2);
63 } else {
64 ui_set_document(event->obj, doc1);
65 }
66 } 55 }
67 56
68 57
69 MyDocument* create_doc(void) { 58 MyDocument* create_doc(void) {
70 MyDocument *doc = ui_document_new(sizeof(MyDocument)); 59 MyDocument *doc = ui_document_new(sizeof(MyDocument));
71 UiContext *docctx = ui_document_context(doc); 60 UiContext *docctx = ui_document_context(doc);
72 doc->text = ui_text_new(docctx, "text"); 61 doc->str1 = ui_string_new(docctx, "str1");
62 doc->str1 = ui_string_new(docctx, "str2");
73 return doc; 63 return doc;
74 } 64 }
75 65
76 void application_startup(UiEvent *event, void *data) { 66 void application_startup(UiEvent *event, void *data) {
77 67
78 UiObject *obj = ui_window("Test", NULL); 68 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);
82 69
83 doc1 = create_doc();
84 doc2 = create_doc();
85 70
86 ui_attach_document(obj->ctx, doc1);
87 71
88 ui_show(obj); 72 ui_show(obj);
89 } 73 }
90 74
91 int main(int argc, char** argv) { 75 int main(int argc, char** argv) {
92 ui_init("app1", argc, argv); 76 ui_init("app1", argc, argv);
93 ui_onstartup(application_startup, NULL); 77 ui_onstartup(application_startup, NULL);
94 78
95 // menu 79 // menu
96 ui_menu("_File"); 80
97 ui_menuitem("_Hello", action_menu, NULL);
98 ui_submenu("Submenu1");
99 ui_submenu("Submenu2");
100 ui_menuitem("item2", action_menu, NULL);
101 ui_submenu_end();
102 ui_menuitem("item3", action_menu, NULL);
103 ui_submenu_end();
104 ui_menuitem("item4", action_menu, NULL);
105 81
106 82
107 ui_main(); 83 ui_main();
108 84
109 return (EXIT_SUCCESS); 85 return (EXIT_SUCCESS);

mercurial