]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Mouse wheel and -/+ keys to zoom
authorterencehill <piuntn@gmail.com>
Tue, 7 Jun 2011 22:29:47 +0000 (00:29 +0200)
committerterencehill <piuntn@gmail.com>
Tue, 7 Jun 2011 22:29:47 +0000 (00:29 +0200)
Also invert the sign of the setZoom input parameter, I think it's cleaner this way

qcsrc/menu/item/image.c
qcsrc/menu/xonotic/dialog_multiplayer_screenshot_screenshotviewer.c

index 901001b6582f4ea04b0f1a46cb984e06b9bdd1d2..6253bcb8b6a8ee2ba6fd5b21b14ea2d165d7fae9 100644 (file)
@@ -102,12 +102,12 @@ float Image_zoomMove(entity me, vector coords)
 }
 void Image_setZoom(entity me, float z)
 {
-       if (z < 0)
-               me.zoomFactor = -z;
-       else if (z == 0)
+       if (z < 0) // multiply by the current zoomFactor
+               me.zoomFactor *= -z;
+       else if (z == 0) // reset (no zoom)
                me.zoomFactor = 1;
-       else
-               me.zoomFactor *= z;
+       else // directly set
+               me.zoomFactor = z;
        me.zoomFactor = bound(1/16, me.zoomFactor, 16);
        if (me.zoomFactor <= 1)
                me.zoomOffset = '0.5 0.5 0';
index 99e8752b7a48536d688399c3321564305fbb9208..eb6079338ae66a13c49f762821dab0388849c09b 100644 (file)
@@ -37,11 +37,11 @@ void nextScreenshot_Click(entity btn, entity me)
 }
 void increaseZoom_Click(entity btn, entity me)
 {
-       me.screenshotImage.setZoom(me.screenshotImage, 2);
+       me.screenshotImage.setZoom(me.screenshotImage, -2);
 }
 void decreaseZoom_Click(entity btn, entity me)
 {
-       me.screenshotImage.setZoom(me.screenshotImage, 1/2);
+       me.screenshotImage.setZoom(me.screenshotImage, -1/2);
 }
 void resetZoom_Click(entity btn, entity me)
 {
@@ -84,11 +84,16 @@ float XonoticScreenshotViewerDialog_keyDown(entity me, float key, float ascii, f
                        }
                        return SUPER(XonoticScreenshotViewerDialog).keyDown(me, key, ascii, shift);
                default:
-                       // mousewheel doesn't always reach the first/last screenshot
-                       if (key == K_MWHEELUP)
-                               key = K_PGUP;
-                       else if (key == K_MWHEELDOWN)
-                               key = K_PGDN;
+                       if (key == K_MWHEELUP || ascii == '+')
+                       {
+                               me.screenshotImage.setZoom(me.screenshotImage, -2);
+                               return 1;
+                       }
+                       else if (key == K_MWHEELDOWN || ascii == '-')
+                       {
+                               me.screenshotImage.setZoom(me.screenshotImage, -1/2);
+                               return 1;
+                       }
                        if (me.scrList.keyDown(me.scrList, key, ascii, shift))
                        {
                                // keyDown has already changed the selected item