From 4ab668fc04662401c89c963246813df81b4e7316 Mon Sep 17 00:00:00 2001 From: Ron Young Date: Fri, 29 Mar 2019 23:40:47 -0500 Subject: [PATCH] TabInterface: add item searching for change icon --- .../plugins/banktags/tabs/TabInterface.java | 44 ++++++++----------- 1 file changed, 19 insertions(+), 25 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java index 416dfdc824..1a751c7b2e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/tabs/TabInterface.java @@ -78,6 +78,7 @@ import net.runelite.api.widgets.WidgetType; import net.runelite.client.Notifier; import net.runelite.client.callback.ClientThread; import net.runelite.client.game.ItemManager; +import net.runelite.client.game.chatbox.ChatboxItemSearch; import net.runelite.client.game.chatbox.ChatboxPanelManager; import net.runelite.client.plugins.banktags.BankTagsConfig; import net.runelite.client.plugins.banktags.BankTagsPlugin; @@ -126,10 +127,10 @@ public class TabInterface private final Rectangle bounds = new Rectangle(); private final Rectangle canvasBounds = new Rectangle(); + private ChatboxItemSearch searchProvider; private TagTab activeTab; private int maxTabs; private int currentTabIndex; - private TagTab iconToSet = null; private Instant startScroll = Instant.now(); private String rememberedSearch; private boolean waitSearchTick; @@ -156,7 +157,8 @@ public class TabInterface final ChatboxPanelManager chatboxPanelManager, final BankTagsConfig config, final Notifier notifier, - final BankSearch bankSearch) + final BankSearch bankSearch, + final ChatboxItemSearch searchProvider) { this.client = client; this.clientThread = clientThread; @@ -167,6 +169,7 @@ public class TabInterface this.config = config; this.notifier = notifier; this.bankSearch = bankSearch; + this.searchProvider = searchProvider; } public boolean isActive() @@ -343,7 +346,20 @@ public class TabInterface client.playSoundEffect(SoundEffectID.UI_BOOP); break; case Tab.CHANGE_ICON: - iconToSet = tabManager.find(Text.removeTags(event.getOpbase())); + final String tag = Text.removeTags(event.getOpbase()); + searchProvider + .tooltipText(CHANGE_ICON + " (" + tag + ")") + .onItemSelected((itemId) -> + { + TagTab iconToSet = tabManager.find(tag); + if (iconToSet != null) + { + iconToSet.setIconItemId(itemId); + iconToSet.getIcon().setItemId(itemId); + tabManager.setIcon(iconToSet.getTag(), itemId + ""); + } + }) + .build(); break; case Tab.DELETE_TAB: String target = Text.standardize(event.getOpbase()); @@ -526,12 +542,6 @@ public class TabInterface entries = createMenuEntry(event, REMOVE_TAG + " (" + activeTab.getTag() + ")", event.getTarget(), entries); client.setMenuEntries(entries); } - else if (iconToSet != null && (entry.getOption().startsWith("Withdraw-") || entry.getOption().equals("Release"))) - { - // TODO: Do not replace every withdraw option with change icon option - entry.setOption(CHANGE_ICON + " (" + iconToSet.getTag() + ")"); - client.setMenuEntries(entries); - } else if (event.getActionParam1() == WidgetInfo.BANK_DEPOSIT_INVENTORY.getId() && event.getOption().equals("Deposit inventory")) { @@ -582,22 +592,6 @@ public class TabInterface bankSearch.search(InputType.NONE, rememberedSearch, true); } - if (iconToSet != null) - { - if (event.getMenuOption().startsWith(CHANGE_ICON + " (")) - { - ItemComposition item = getItem(event.getActionParam()); - int itemId = itemManager.canonicalize(item.getId()); - iconToSet.setIconItemId(itemId); - iconToSet.getIcon().setItemId(itemId); - tabManager.setIcon(iconToSet.getTag(), itemId + ""); - event.consume(); - } - - // Reset icon selection even when we do not clicked item with icon - iconToSet = null; - } - if (activeTab != null && event.getMenuOption().equals("Search") && client.getWidget(WidgetInfo.BANK_SEARCH_BUTTON_BACKGROUND).getSpriteId() != SpriteID.EQUIPMENT_SLOT_SELECTED)