--- a/application/main.c Sat Dec 05 11:54:58 2020 +0100 +++ b/application/main.c Sat Dec 05 17:50:22 2020 +0100 @@ -33,14 +33,57 @@ #include <ucx/buffer.h> #include <ucx/utils.h> +typedef struct { + UiText *text; +} MyDocument; + +MyDocument *doc1; +MyDocument *doc2; + + void action_menu(UiEvent *event, void *userdata) { } +void action_button(UiEvent *event, void *userdata) { + printf("button test\n"); + MyDocument *doc = event->document; + if(!doc) { + printf("no document\n"); + return; + } + + char *text = doc->text->get(doc->text); + printf("text: {\n%s\n}\n", text); +} + +void action_switch(UiEvent *event, void *userdata) { + if(event->document == doc1) { + ui_set_document(event->obj, doc2); + } else { + ui_set_document(event->obj, doc1); + } +} + + +MyDocument* create_doc(void) { + MyDocument *doc = ui_document_new(sizeof(MyDocument)); + UiContext *docctx = ui_document_context(doc); + doc->text = ui_text_new(docctx, "text"); + return doc; +} + void application_startup(UiEvent *event, void *data) { UiObject *obj = ui_window("Test", NULL); + ui_textarea_nv(obj, "text"); + ui_button(obj, "Test", action_button, NULL); + ui_button(obj, "Switch Document", action_switch, NULL); + doc1 = create_doc(); + doc2 = create_doc(); + + ui_attach_document(obj->ctx, doc1); ui_show(obj); }