diff options
author | Marvin Borner | 2021-06-13 12:59:45 +0200 |
---|---|---|
committer | Marvin Borner | 2021-06-13 12:59:45 +0200 |
commit | 5053382808960f3209b3fd217fd6b20b240f0d38 (patch) | |
tree | f51dede9317c268ce3ce11b5ddaa8a1a9b7295cf /apps/view | |
parent | d832f9ddc9187c83a52a724d4ea39aea08de485b (diff) |
Added image viewer and blerp scaling
Diffstat (limited to 'apps/view')
-rw-r--r-- | apps/view/Makefile | 7 | ||||
-rw-r--r-- | apps/view/main.c | 37 |
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; +} |