application/main.c

changeset 2
fbdfaacc4182
parent 0
2483f517c562
child 3
f154867f54dc
--- a/application/main.c	Mon Jan 22 17:27:47 2024 +0100
+++ b/application/main.c	Sat Jan 27 17:50:19 2024 +0100
@@ -1,110 +1,58 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright 2017 Olaf Wintermann. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *   1. Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *
- *   2. Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <ui/ui.h>
-#include <cx/buffer.h>
-#include <cx/utils.h>
-
-typedef struct {
-    UiText *text;
-} MyDocument;
-
-MyDocument *doc1;
-MyDocument *doc2;
-
-
-void action_menu(UiEvent *event, void *userdata) {
-    printf("action_menu: %s\n", (char*)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);
-}
-
-int main(int argc, char** argv) { 
-    ui_init("app1", argc, argv);
-    ui_onstartup(application_startup, NULL);
-    
-    // menu
-    ui_menu("_File");
-    ui_menuitem("_Hello", action_menu, NULL);
-    ui_submenu("Submenu1");
-    ui_submenu("Submenu2");
-    ui_menuitem("item2", action_menu, NULL);
-    ui_submenu_end();
-    ui_menuitem("item3", action_menu, NULL);
-    ui_submenu_end();
-    ui_menuitem("item4", action_menu, NULL);
-
-    
-    ui_main();
-    
-    return (EXIT_SUCCESS);
-}
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2024 Olaf Wintermann. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifdef _WIN32
+#include <Windows.h>
+#endif
+
+#include <ui/ui.h>
+
+#include "application.h"
+
+int idav_main(int argc, char **argv) {
+	ui_init("idav", argc, argv);
+	ui_onstartup(application_startup, NULL);
+
+	ui_main();
+
+	return 0;
+}
+
+#ifndef _WIN32
+int main(int argc, char** argv) {
+	return idav_main(argc, argv);
+}
+#else
+int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, int nCmdShow) {
+	return idav_main(__argc, __argv);
+}
+#endif
+

mercurial