From 7784395255a41c350a3088796b996ecf4d56a89a Mon Sep 17 00:00:00 2001 From: loldudester Date: Sun, 26 Jan 2020 22:13:31 +0000 Subject: [PATCH 1/2] client: Make toggle sidebar hotkey configurable --- .../net/runelite/client/config/RuneLiteConfig.java | 13 +++++++++++++ .../main/java/net/runelite/client/ui/ClientUI.java | 6 +----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/config/RuneLiteConfig.java b/runelite-client/src/main/java/net/runelite/client/config/RuneLiteConfig.java index 11a8b3deb7..f90ecf43b1 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/RuneLiteConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/config/RuneLiteConfig.java @@ -25,6 +25,8 @@ package net.runelite.client.config; import java.awt.Dimension; +import java.awt.event.InputEvent; +import java.awt.event.KeyEvent; import net.runelite.api.Constants; import net.runelite.client.Notifier; import net.runelite.client.ui.ContainableFrame; @@ -299,4 +301,15 @@ public interface RuneLiteConfig extends Config { return true; } + + @ConfigItem( + keyName = "sidebarToggleKey", + name = "Sidebar Toggle Key", + description = "The key that will toggle the sidebar (accepts modifiers)", + position = 44 + ) + default Keybind sidebarToggleKey() + { + return new Keybind(KeyEvent.VK_F11, InputEvent.CTRL_DOWN_MASK); + } } \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java index 2ae6cc56c2..c47c0f892b 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java @@ -39,8 +39,6 @@ import java.awt.LayoutManager; import java.awt.Rectangle; import java.awt.Toolkit; import java.awt.TrayIcon; -import java.awt.event.InputEvent; -import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import javax.annotation.Nullable; @@ -73,7 +71,6 @@ import net.runelite.client.RuneLiteProperties; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ExpandResizeType; -import net.runelite.client.config.Keybind; import net.runelite.client.config.RuneLiteConfig; import net.runelite.client.config.WarningOnExit; import net.runelite.client.eventbus.Subscribe; @@ -345,8 +342,7 @@ public class ClientUI frame.add(container); // Add key listener - final HotkeyListener sidebarListener = new HotkeyListener(() -> - new Keybind(KeyEvent.VK_F11, InputEvent.CTRL_DOWN_MASK)) + final HotkeyListener sidebarListener = new HotkeyListener(config::sidebarToggleKey) { @Override public void hotkeyPressed() From 15e0f1e5f22a1543b08253edaf15779128cb688d Mon Sep 17 00:00:00 2001 From: loldudester Date: Sun, 26 Jan 2020 22:15:25 +0000 Subject: [PATCH 2/2] client: Add configurable hotkey to toggle plugin panel --- .../client/config/RuneLiteConfig.java | 11 +++++++ .../java/net/runelite/client/ui/ClientUI.java | 31 +++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/config/RuneLiteConfig.java b/runelite-client/src/main/java/net/runelite/client/config/RuneLiteConfig.java index f90ecf43b1..81ccc10c7c 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/RuneLiteConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/config/RuneLiteConfig.java @@ -312,4 +312,15 @@ public interface RuneLiteConfig extends Config { return new Keybind(KeyEvent.VK_F11, InputEvent.CTRL_DOWN_MASK); } + + @ConfigItem( + keyName = "panelToggleKey", + name = "Plugin Panel Toggle Key", + description = "The key that will toggle the current or last opened plugin panel (accepts modifiers)", + position = 45 + ) + default Keybind panelToggleKey() + { + return new Keybind(KeyEvent.VK_F12, InputEvent.CTRL_DOWN_MASK); + } } \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java index c47c0f892b..55fc4940b8 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientUI.java @@ -353,6 +353,17 @@ public class ClientUI keyManager.registerKeyListener(sidebarListener); + final HotkeyListener pluginPanelListener = new HotkeyListener(config::panelToggleKey) + { + @Override + public void hotkeyPressed() + { + togglePluginPanel(); + } + }; + + keyManager.registerKeyListener(pluginPanelListener); + // Add mouse listener final MouseListener mouseListener = new MouseAdapter() { @@ -738,6 +749,26 @@ public class ClientUI } } + private void togglePluginPanel() + { + // Toggle plugin panel open + final boolean pluginPanelOpen = pluginPanel != null; + + if (currentButton != null) + { + currentButton.setSelected(!pluginPanelOpen); + } + + if (pluginPanelOpen) + { + contract(); + } + else + { + expand(currentNavButton); + } + } + private void expand(@Nullable NavigationButton button) { if (button == null)