From 5053382808960f3209b3fd217fd6b20b240f0d38 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Sun, 13 Jun 2021 12:59:45 +0200 Subject: Added image viewer and blerp scaling --- apps/view/Makefile | 7 +++++++ apps/view/main.c | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 apps/view/Makefile create mode 100644 apps/view/main.c (limited to 'apps/view') 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 +#include + +#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; +} -- cgit v1.2.3