From 78645222105dfe0acfad996d2f700b96dd57aacb Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Fri, 27 Jul 2018 08:00:52 +0200 Subject: [PATCH] Add isTab property to title buttons In order to differentiate between title and sidebar buttons in sidebar add isTab property that will place them after separator. Signed-off-by: Tomas Slusny --- .../client/plugins/account/AccountPlugin.java | 2 ++ .../client/plugins/discord/DiscordPlugin.java | 1 + .../plugins/screenshot/ScreenshotPlugin.java | 1 + .../runelite/client/ui/ClientPluginToolbar.java | 16 +++++++++++++++- .../net/runelite/client/ui/NavigationButton.java | 6 ++++++ 5 files changed, 25 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/account/AccountPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/account/AccountPlugin.java index fd113413aa..c179b5014a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/account/AccountPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/account/AccountPlugin.java @@ -85,12 +85,14 @@ public class AccountPlugin extends Plugin protected void startUp() throws Exception { loginButton = NavigationButton.builder() + .tab(false) .icon(LOGIN_IMAGE) .tooltip("Login to RuneLite") .onClick(this::loginClick) .build(); logoutButton = NavigationButton.builder() + .tab(false) .icon(LOGOUT_IMAGE) .tooltip("Logout of RuneLite") .onClick(this::logoutClick) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java index 678037a118..02a2cedb56 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java @@ -95,6 +95,7 @@ public class DiscordPlugin extends Plugin } discordButton = NavigationButton.builder() + .tab(false) .tooltip("Join Discord") .icon(icon) .onClick(() -> LinkBrowser.browse(properties.getDiscordInvite())) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java index cbccfb4c28..f7ff640b19 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java @@ -203,6 +203,7 @@ public class ScreenshotPlugin extends Plugin } titleBarButton = NavigationButton.builder() + .tab(false) .tooltip("Take screenshot") .icon(iconImage) .onClick(() -> takeScreenshot(format(new Date()))) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ClientPluginToolbar.java b/runelite-client/src/main/java/net/runelite/client/ui/ClientPluginToolbar.java index 6b5c1e4f82..16ba29bf6f 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ClientPluginToolbar.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ClientPluginToolbar.java @@ -30,6 +30,7 @@ import java.awt.Component; import java.awt.Dimension; import java.util.Map; import java.util.TreeMap; +import java.util.concurrent.atomic.AtomicBoolean; import javax.swing.JToolBar; /** @@ -41,6 +42,7 @@ public class ClientPluginToolbar extends JToolBar private final Map componentMap = new TreeMap<>((a, b) -> ComparisonChain .start() + .compare(a.isTab(), b.isTab()) .compare(a.getPriority(), b.getPriority()) .compare(a.getTooltip(), b.getTooltip()) .result()); @@ -78,7 +80,19 @@ public class ClientPluginToolbar extends JToolBar private void update() { removeAll(); - componentMap.forEach((key, value) -> add(value)); + + final AtomicBoolean isDelimited = new AtomicBoolean(false); + componentMap.forEach((key, value) -> + { + if (!key.isTab() && !isDelimited.get()) + { + isDelimited.set(true); + addSeparator(); + } + + add(value); + }); + repaint(); } } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/NavigationButton.java b/runelite-client/src/main/java/net/runelite/client/ui/NavigationButton.java index 7c8090a1b2..4cc334ac76 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/NavigationButton.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/NavigationButton.java @@ -44,6 +44,12 @@ public class NavigationButton */ private final BufferedImage icon; + /** + * If the button is tab or not + */ + @Builder.Default + private boolean tab = true; + /** * Tooltip to show when hovered. */