aboutsummaryrefslogtreecommitdiff
path: root/apps/view
diff options
context:
space:
mode:
authorMarvin Borner2021-06-13 12:59:45 +0200
committerMarvin Borner2021-06-13 12:59:45 +0200
commit5053382808960f3209b3fd217fd6b20b240f0d38 (patch)
treef51dede9317c268ce3ce11b5ddaa8a1a9b7295cf /apps/view
parentd832f9ddc9187c83a52a724d4ea39aea08de485b (diff)
Added image viewer and blerp scaling
Diffstat (limited to 'apps/view')
-rw-r--r--apps/view/Makefile7
-rw-r--r--apps/view/main.c37
2 files changed, 44 insertions, 0 deletions
diff --git a/apps/view/Makefile b/apps/view/Makefile
new file mode 100644
index 0000000..c4c6860
--- /dev/null
+++ b/apps/view/Makefile
@@ -0,0 +1,7 @@
+# MIT License, Copyright (c) 2021 Marvin Borner
+
+NAME = view
+OBJS = main.o
+LIBS = -lgui -lc
+
+include ../generic.mk
diff --git a/apps/view/main.c b/apps/view/main.c
new file mode 100644
index 0000000..20661a7
--- /dev/null
+++ b/apps/view/main.c
@@ -0,0 +1,37 @@
+// MIT License, Copyright (c) 2021 Marvin Borner
+
+#include <def.h>
+#include <libgui/gui.h>
+
+#define SCALING_FACTOR 0.1
+
+static vec2 size = { 800, 800 };
+static const char *path;
+
+static void mousemove(struct gui_event_mouse *event)
+{
+ if (event->scroll) {
+ size = vec2_mul(size, event->scroll < 0 ? SCALING_FACTOR + 1 : 1 - SCALING_FACTOR);
+ gui_fill(event->win, event->widget, GUI_LAYER_FG, COLOR_WHITE);
+ gui_draw_image(event->win, event->widget, GUI_LAYER_FG, vec2(0, 0), size, path);
+ gui_redraw_widget(event->win, event->widget);
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ UNUSED(argc);
+ UNUSED(argv);
+
+ path = "/res/test.png";
+
+ u32 win = gui_new_custom_window(APPNAME, vec2(0, 0), size);
+ u32 canvas = gui_new_widget(win, GUI_MAIN, vec2(0, 0), size);
+ gui_fill(win, canvas, GUI_LAYER_BG, COLOR_WHITE);
+ gui_listen_widget(win, canvas, GUI_LISTEN_MOUSEMOVE, (u32)mousemove);
+
+ gui_redraw_window(win);
+ gui_loop();
+
+ return 0;
+}