From 49973adb21ab4f5fe5954035877125a89acf00dc Mon Sep 17 00:00:00 2001 From: ThatGamerBlue Date: Sun, 14 Feb 2021 14:41:21 +0000 Subject: [PATCH] add buttons :o --- .../net/runelite/client/config/Button.java | 5 ++++ .../client/plugins/config/ConfigPanel.java | 28 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 runelite-client/src/main/java/net/runelite/client/config/Button.java diff --git a/runelite-client/src/main/java/net/runelite/client/config/Button.java b/runelite-client/src/main/java/net/runelite/client/config/Button.java new file mode 100644 index 0000000000..591332ce05 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/config/Button.java @@ -0,0 +1,5 @@ +package net.runelite.client.config; + +public class Button +{ +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java index b72286e3b1..b176bf154b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java @@ -66,6 +66,8 @@ import javax.swing.border.MatteBorder; import javax.swing.event.ChangeListener; import javax.swing.text.JTextComponent; import lombok.extern.slf4j.Slf4j; +import net.runelite.api.events.ConfigButtonClicked; +import net.runelite.client.config.Button; import net.runelite.client.config.ConfigDescriptor; import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; @@ -78,6 +80,7 @@ import net.runelite.client.config.Keybind; import net.runelite.client.config.ModifierlessKeybind; import net.runelite.client.config.Range; import net.runelite.client.config.Units; +import net.runelite.client.eventbus.EventBus; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ExternalPluginsChanged; import net.runelite.client.events.PluginChanged; @@ -130,6 +133,9 @@ class ConfigPanel extends PluginPanel @Inject private ColorPickerManager colorPickerManager; + @Inject + private EventBus eventBus; + private PluginConfigurationDescriptor pluginConfig = null; static @@ -334,6 +340,28 @@ class ConfigPanel extends PluginPanel PluginListItem.addLabelPopupMenu(configEntryName, createResetMenuItem(pluginConfig, cid)); item.add(configEntryName, BorderLayout.CENTER); + if (cid.getType() == Button.class) + { + try + { + ConfigItem cidItem = cid.getItem(); + JButton button = new JButton(cidItem.name()); + button.addActionListener((e) -> + { + ConfigButtonClicked event = new ConfigButtonClicked(); + event.setGroup(cd.getGroup().value()); + event.setKey(cid.getItem().keyName()); + eventBus.post(event); + }); + item.add(button); + } + catch (Exception ex) + { + log.error("Adding action listener failed: {}", ex.getMessage()); + ex.printStackTrace(); + } + } + if (cid.getType() == boolean.class) { JCheckBox checkbox = new JCheckBox();