TabInterface: add item searching for change icon

This commit is contained in:
Ron Young
2019-03-29 23:40:47 -05:00
committed by Adam
parent bcbbb3182d
commit 4ab668fc04

View File

@@ -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)