From 8fe75748f9842e2a497da0e0bcb40a01271766df Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 1 Jun 2021 20:19:56 -0400 Subject: [PATCH] camera: add zoom slider tooltip when dragging Co-authored-by: superiorser9 --- .../main/java/net/runelite/api/ScriptID.java | 12 +++++++ .../client/plugins/camera/CameraPlugin.java | 34 ++++++++++++------- 2 files changed, 34 insertions(+), 12 deletions(-) diff --git a/runelite-api/src/main/java/net/runelite/api/ScriptID.java b/runelite-api/src/main/java/net/runelite/api/ScriptID.java index d106d6cab1..ba89d4190c 100644 --- a/runelite-api/src/main/java/net/runelite/api/ScriptID.java +++ b/runelite-api/src/main/java/net/runelite/api/ScriptID.java @@ -351,4 +351,16 @@ public final class ScriptID */ @ScriptArguments(integer = 14, string = 3) public static final int CHATBOX_BUILD_LINE_WITH_CLAN = 4483; + + /** + * Drag callback for the camera zoom slider in the options side panel. + */ + @ScriptArguments(integer = 3) + public static final int ZOOM_SLIDER_ONDRAG = 833; + + /** + * Drag callback for the camera zoom slider in the settings. + */ + @ScriptArguments(integer = 6) + public static final int SETTINGS_ZOOM_SLIDER_ONDRAG = 3896; } \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/camera/CameraPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/camera/CameraPlugin.java index 904420080a..f650d3efba 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/camera/CameraPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/camera/CameraPlugin.java @@ -367,15 +367,23 @@ public class CameraPlugin extends Plugin implements KeyListener, MouseListener @Subscribe private void onScriptPreFired(ScriptPreFired ev) { - if (ev.getScriptId() == ScriptID.SETTINGS_SLIDER_CHOOSE_ONOP) + switch (ev.getScriptId()) { - int arg = client.getIntStackSize() - 7; - int[] is = client.getIntStack(); - - if (is[arg] == SettingID.CAMERA_ZOOM) + case ScriptID.SETTINGS_SLIDER_CHOOSE_ONOP: { - addZoomTooltip(client.getScriptActiveWidget()); + int arg = client.getIntStackSize() - 7; + int[] is = client.getIntStack(); + + if (is[arg] == SettingID.CAMERA_ZOOM) + { + addZoomTooltip(client.getScriptActiveWidget()); + } + break; } + case ScriptID.ZOOM_SLIDER_ONDRAG: + case ScriptID.SETTINGS_ZOOM_SLIDER_ONDRAG: + sliderTooltip = makeSliderTooltip(); + break; } } @@ -390,12 +398,14 @@ public class CameraPlugin extends Plugin implements KeyListener, MouseListener private void addZoomTooltip(Widget w) { - w.setOnMouseRepeatListener((JavaScriptCallback) ev -> - { - int value = client.getVar(VarClientInt.CAMERA_ZOOM_RESIZABLE_VIEWPORT); - int max = config.innerLimit() ? config.INNER_ZOOM_LIMIT : CameraPlugin.DEFAULT_INNER_ZOOM_LIMIT; - sliderTooltip = new Tooltip("Camera Zoom: " + value + " / " + max); - }); + w.setOnMouseRepeatListener((JavaScriptCallback) ev -> sliderTooltip = makeSliderTooltip()); + } + + private Tooltip makeSliderTooltip() + { + int value = client.getVar(VarClientInt.CAMERA_ZOOM_RESIZABLE_VIEWPORT); + int max = config.innerLimit() ? config.INNER_ZOOM_LIMIT : CameraPlugin.DEFAULT_INNER_ZOOM_LIMIT; + return new Tooltip("Camera Zoom: " + value + " / " + max); } @Subscribe