From 0ea5cbc4a4f511e12c976ff0a3a5ccef3c307f4f Mon Sep 17 00:00:00 2001 From: terencehill Date: Wed, 8 Jun 2011 00:29:47 +0200 Subject: [PATCH] Mouse wheel and -/+ keys to zoom Also invert the sign of the setZoom input parameter, I think it's cleaner this way --- qcsrc/menu/item/image.c | 10 +++++----- ..._multiplayer_screenshot_screenshotviewer.c | 19 ++++++++++++------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/qcsrc/menu/item/image.c b/qcsrc/menu/item/image.c index 901001b658..6253bcb8b6 100644 --- a/qcsrc/menu/item/image.c +++ b/qcsrc/menu/item/image.c @@ -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'; diff --git a/qcsrc/menu/xonotic/dialog_multiplayer_screenshot_screenshotviewer.c b/qcsrc/menu/xonotic/dialog_multiplayer_screenshot_screenshotviewer.c index 99e8752b7a..eb6079338a 100644 --- a/qcsrc/menu/xonotic/dialog_multiplayer_screenshot_screenshotviewer.c +++ b/qcsrc/menu/xonotic/dialog_multiplayer_screenshot_screenshotviewer.c @@ -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 -- 2.39.2