aboutsummaryrefslogtreecommitdiff
path: root/src/viewport.c
diff options
context:
space:
mode:
authorHarry Jeffery <harry@exec64.co.uk>2017-12-07 21:11:47 +0000
committerHarry Jeffery <harry@exec64.co.uk>2017-12-07 21:11:47 +0000
commit45bf3b3099ba192b115335889e0aaa9381beb879 (patch)
treed689633ae9633b68b5f03ba32f7c334ce64fad49 /src/viewport.c
parent8f3d69f3e83560b168cc43afc57ca52126b81c8d (diff)
downloadimv-45bf3b3099ba192b115335889e0aaa9381beb879.tar.gz
Make viepwort interface opaque
Diffstat (limited to 'src/viewport.c')
-rw-r--r--src/viewport.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/viewport.c b/src/viewport.c
index a5df9df..65a269b 100644
--- a/src/viewport.c
+++ b/src/viewport.c
@@ -1,5 +1,15 @@
#include "viewport.h"
+struct imv_viewport {
+ SDL_Window *window;
+ double scale;
+ int x, y;
+ int fullscreen;
+ int redraw;
+ int playing;
+ int locked;
+};
+
struct imv_viewport *imv_viewport_create(SDL_Window *window)
{
struct imv_viewport *view = malloc(sizeof(struct imv_viewport));
@@ -27,6 +37,16 @@ void imv_viewport_toggle_fullscreen(struct imv_viewport *view)
}
}
+void imv_viewport_set_playing(struct imv_viewport *view, bool playing)
+{
+ view->playing = playing;
+}
+
+bool imv_viewport_is_playing(struct imv_viewport *view)
+{
+ return view->playing;
+}
+
void imv_viewport_toggle_playing(struct imv_viewport *view)
{
view->playing = !view->playing;
@@ -40,6 +60,23 @@ void imv_viewport_scale_to_actual(struct imv_viewport *view, const struct imv_im
imv_viewport_center(view, image);
}
+void imv_viewport_get_offset(struct imv_viewport *view, int *x, int *y)
+{
+ if(x) {
+ *x = view->x;
+ }
+ if(y) {
+ *y = view->y;
+ }
+}
+
+void imv_viewport_get_scale(struct imv_viewport *view, double *scale)
+{
+ if(scale) {
+ *scale = view->scale;
+ }
+}
+
void imv_viewport_move(struct imv_viewport *view, int x, int y,
const struct imv_image *image)
{