From 35ebe5c65f3d007d9d35f6a544eace434a57878b Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Sat, 4 Apr 2020 01:25:44 +0200 Subject: [PATCH] Make overlays use OverlayPanel instead of Overlay Make overlays that were previously using PanelComponent use OverlayPanel. Signed-off-by: Tomas Slusny --- .../plugins/agility/LapCounterOverlay.java | 10 +++----- .../attackstyles/AttackStylesOverlay.java | 9 +++---- .../barrows/BarrowsBrotherSlainOverlay.java | 10 +++----- .../BlastFurnaceCofferOverlay.java | 12 ++++------ .../blastfurnace/BlastFurnaceOverlay.java | 14 ++++------- .../blastmine/BlastMineOreCountOverlay.java | 10 +++----- .../client/plugins/boosts/BoostsOverlay.java | 12 ++++------ .../cluescrolls/ClueScrollOverlay.java | 12 +++------- .../cluescrolls/clues/HotColdClue.java | 3 --- .../plugins/cooking/CookingOverlay.java | 12 ++++------ .../plugins/corp/CorpDamageOverlay.java | 11 +++------ .../plugins/devtools/CameraOverlay.java | 11 +++------ .../plugins/devtools/LocationOverlay.java | 10 +++----- .../plugins/devtools/SoundEffectOverlay.java | 10 ++++---- .../client/plugins/dpscounter/DpsOverlay.java | 11 +++------ .../plugins/fishing/FishingOverlay.java | 12 ++++------ .../InventoryViewerOverlay.java | 11 +++------ .../KourendLibraryTutorialOverlay.java | 17 +++++-------- .../motherlode/MotherlodeGemOverlay.java | 9 +++---- .../motherlode/MotherlodeOreOverlay.java | 9 +++---- .../plugins/motherlode/MotherlodeOverlay.java | 24 ++++--------------- .../nightmarezone/NightmareZoneOverlay.java | 9 +++---- .../NpcAggroAreaNotWorkingOverlay.java | 11 ++++----- .../opponentinfo/OpponentInfoOverlay.java | 11 +++------ .../plugins/party/PartyStatsOverlay.java | 18 +++++++------- .../client/plugins/raids/RaidsOverlay.java | 12 ++++------ .../plugins/smelting/SmeltingOverlay.java | 11 +++------ .../plugins/teamcapes/TeamCapesOverlay.java | 10 +++----- .../plugins/wintertodt/WintertodtOverlay.java | 11 +++------ .../woodcutting/WoodcuttingOverlay.java | 10 +++----- .../plugins/xptracker/XpInfoBoxOverlay.java | 23 +++++++----------- .../ui/overlay/infobox/InfoBoxOverlay.java | 12 ++++------ 32 files changed, 119 insertions(+), 258 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/agility/LapCounterOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/agility/LapCounterOverlay.java index d1df2ea98f..b6bdd132d0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/agility/LapCounterOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/agility/LapCounterOverlay.java @@ -30,21 +30,18 @@ import java.time.Duration; import java.time.Instant; import javax.inject.Inject; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; -class LapCounterOverlay extends Overlay +class LapCounterOverlay extends OverlayPanel { private final AgilityPlugin plugin; private final AgilityConfig config; - private final PanelComponent panelComponent = new PanelComponent(); - @Inject private LapCounterOverlay(AgilityPlugin plugin, AgilityConfig config) { @@ -79,7 +76,6 @@ class LapCounterOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); panelComponent.getChildren().add(LineComponent.builder() .left("Total Laps:") .right(Integer.toString(session.getTotalLaps())) @@ -93,6 +89,6 @@ class LapCounterOverlay extends Overlay .build()); } - return panelComponent.render(graphics); + return super.render(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesOverlay.java index 834b5d4ef0..9ef2cfe762 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/attackstyles/AttackStylesOverlay.java @@ -29,18 +29,16 @@ import java.awt.Dimension; import java.awt.Graphics2D; import javax.inject.Inject; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; -class AttackStylesOverlay extends Overlay +class AttackStylesOverlay extends OverlayPanel { private final AttackStylesPlugin plugin; private final AttackStylesConfig config; - private final PanelComponent panelComponent = new PanelComponent(); @Inject private AttackStylesOverlay(AttackStylesPlugin plugin, AttackStylesConfig config) @@ -55,7 +53,6 @@ class AttackStylesOverlay extends Overlay @Override public Dimension render(Graphics2D graphics) { - panelComponent.getChildren().clear(); boolean warnedSkillSelected = plugin.isWarnedSkillSelected(); if (warnedSkillSelected || config.alwaysShowStyle()) @@ -78,7 +75,7 @@ class AttackStylesOverlay extends Overlay graphics.getFontMetrics().stringWidth(attackStyleString) + 10, 0)); - return panelComponent.render(graphics); + return super.render(graphics); } return null; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsBrotherSlainOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsBrotherSlainOverlay.java index 678ed41834..b3cceb6d66 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsBrotherSlainOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsBrotherSlainOverlay.java @@ -33,18 +33,16 @@ import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import net.runelite.api.Varbits; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; -public class BarrowsBrotherSlainOverlay extends Overlay +public class BarrowsBrotherSlainOverlay extends OverlayPanel { private final Client client; - private final PanelComponent panelComponent = new PanelComponent(); @Inject private BarrowsBrotherSlainOverlay(BarrowsPlugin plugin, Client client) @@ -74,8 +72,6 @@ public class BarrowsBrotherSlainOverlay extends Overlay potential.setHidden(true); } - panelComponent.getChildren().clear(); - for (BarrowsBrothers brother : BarrowsBrothers.values()) { final boolean brotherSlain = client.getVar(brother.getKilledVarbit()) > 0; @@ -94,6 +90,6 @@ public class BarrowsBrotherSlainOverlay extends Overlay .rightColor(rewardPercent >= 73.0f && rewardPercent <= 88.0f ? Color.GREEN : rewardPercent < 65.6f ? Color.WHITE : Color.YELLOW) .build()); - return panelComponent.render(graphics); + return super.render(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceCofferOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceCofferOverlay.java index 758573a583..1b93f8f640 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceCofferOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceCofferOverlay.java @@ -32,23 +32,21 @@ import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import static net.runelite.api.Varbits.BLAST_FURNACE_COFFER; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; -import static org.apache.commons.lang3.time.DurationFormatUtils.formatDuration; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.util.QuantityFormatter; +import static org.apache.commons.lang3.time.DurationFormatUtils.formatDuration; -class BlastFurnaceCofferOverlay extends Overlay +class BlastFurnaceCofferOverlay extends OverlayPanel { private static final float COST_PER_HOUR = 72000.0f; private final Client client; private final BlastFurnacePlugin plugin; private final BlastFurnaceConfig config; - private final PanelComponent panelComponent = new PanelComponent(); @Inject private BlastFurnaceCofferOverlay(Client client, BlastFurnacePlugin plugin, BlastFurnaceConfig config) @@ -71,8 +69,6 @@ class BlastFurnaceCofferOverlay extends Overlay Widget sack = client.getWidget(WidgetInfo.BLAST_FURNACE_COFFER); - panelComponent.getChildren().clear(); - if (sack != null) { final int coffer = client.getVar(BLAST_FURNACE_COFFER); @@ -95,6 +91,6 @@ class BlastFurnaceCofferOverlay extends Overlay } } - return panelComponent.render(graphics); + return super.render(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceOverlay.java index 48253cdfe3..d24c8b4d4a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceOverlay.java @@ -31,19 +31,17 @@ import javax.inject.Inject; import net.runelite.api.Client; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import net.runelite.client.game.ItemManager; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.ComponentOrientation; import net.runelite.client.ui.overlay.components.ImageComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; -class BlastFurnaceOverlay extends Overlay +class BlastFurnaceOverlay extends OverlayPanel { private final Client client; private final BlastFurnacePlugin plugin; - private final PanelComponent imagePanelComponent = new PanelComponent(); @Inject private ItemManager itemManager; @@ -55,7 +53,7 @@ class BlastFurnaceOverlay extends Overlay this.plugin = plugin; this.client = client; setPosition(OverlayPosition.TOP_LEFT); - imagePanelComponent.setOrientation(ComponentOrientation.HORIZONTAL); + panelComponent.setOrientation(ComponentOrientation.HORIZONTAL); getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY_CONFIG, OPTION_CONFIGURE, "Blast furnace overlay")); } @@ -67,8 +65,6 @@ class BlastFurnaceOverlay extends Overlay return null; } - imagePanelComponent.getChildren().clear(); - for (BarsOres varbit : BarsOres.values()) { int amount = client.getVar(varbit.getVarbit()); @@ -78,10 +74,10 @@ class BlastFurnaceOverlay extends Overlay continue; } - imagePanelComponent.getChildren().add(new ImageComponent(getImage(varbit.getItemID(), amount))); + panelComponent.getChildren().add(new ImageComponent(getImage(varbit.getItemID(), amount))); } - return imagePanelComponent.render(graphics); + return super.render(graphics); } private BufferedImage getImage(int itemID, int amount) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/blastmine/BlastMineOreCountOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/blastmine/BlastMineOreCountOverlay.java index f660eb2b63..ef9336bbee 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/blastmine/BlastMineOreCountOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/blastmine/BlastMineOreCountOverlay.java @@ -35,20 +35,18 @@ import net.runelite.api.Varbits; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.game.ItemManager; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.ComponentOrientation; import net.runelite.client.ui.overlay.components.ImageComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; -class BlastMineOreCountOverlay extends Overlay +class BlastMineOreCountOverlay extends OverlayPanel { private final Client client; private final BlastMinePluginConfig config; private final ItemManager itemManager; - private final PanelComponent panelComponent = new PanelComponent(); @Inject private BlastMineOreCountOverlay(BlastMinePlugin plugin, Client client, BlastMinePluginConfig config, ItemManager itemManager) @@ -72,8 +70,6 @@ class BlastMineOreCountOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); - if (config.showOreOverlay()) { blastMineWidget.setHidden(true); @@ -88,7 +84,7 @@ class BlastMineOreCountOverlay extends Overlay blastMineWidget.setHidden(false); } - return panelComponent.render(graphics); + return super.render(graphics); } private BufferedImage getImage(int itemID, int amount) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java index 8ebc077224..fd53503444 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java @@ -32,20 +32,18 @@ import javax.inject.Inject; import net.runelite.api.Client; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import net.runelite.api.Skill; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.util.ColorUtil; -class BoostsOverlay extends Overlay +class BoostsOverlay extends OverlayPanel { private final Client client; private final BoostsConfig config; - private final PanelComponent panelComponent = new PanelComponent(); private final BoostsPlugin plugin; @Inject @@ -68,8 +66,6 @@ class BoostsOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); - int nextChange = plugin.getChangeDownTicks(); if (nextChange != -1) @@ -94,7 +90,7 @@ class BoostsOverlay extends Overlay if (boostedSkills.isEmpty()) { - return panelComponent.render(graphics); + return super.render(graphics); } if (plugin.canShowBoosts()) @@ -129,7 +125,7 @@ class BoostsOverlay extends Overlay } } - return panelComponent.render(graphics); + return super.render(graphics); } private Color getTextColor(int boost) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollOverlay.java index 65ab528c5a..1853c64b3f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollOverlay.java @@ -41,15 +41,13 @@ import net.runelite.client.plugins.cluescrolls.clues.item.AnyRequirementCollecti import net.runelite.client.plugins.cluescrolls.clues.item.ItemRequirement; import static net.runelite.client.plugins.cluescrolls.clues.item.ItemRequirements.item; import net.runelite.client.plugins.cluescrolls.clues.item.SingleItemRequirement; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPriority; -import net.runelite.client.ui.overlay.components.ComponentConstants; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; -public class ClueScrollOverlay extends Overlay +public class ClueScrollOverlay extends OverlayPanel { private static final ItemRequirement HAS_SPADE = new SingleItemRequirement(SPADE); private static final ItemRequirement HAS_LIGHT = new AnyRequirementCollection("Light Source", @@ -79,7 +77,6 @@ public class ClueScrollOverlay extends Overlay public static final Color TITLED_CONTENT_COLOR = new Color(190, 190, 190); private final ClueScrollPlugin plugin; - private final PanelComponent panelComponent = new PanelComponent(); private final Client client; @Inject @@ -103,9 +100,6 @@ public class ClueScrollOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); - panelComponent.setPreferredSize(new Dimension(ComponentConstants.STANDARD_WIDTH, 0)); - clue.makeOverlayHint(panelComponent, plugin); final Item[] inventoryItems = plugin.getInventoryItems(); @@ -129,6 +123,6 @@ public class ClueScrollOverlay extends Overlay panelComponent.getChildren().add(LineComponent.builder().left("Requires Light Source!").leftColor(Color.RED).build()); } - return panelComponent.render(graphics); + return super.render(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/HotColdClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/HotColdClue.java index 94d07a4983..60e529e54d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/HotColdClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/HotColdClue.java @@ -26,7 +26,6 @@ package net.runelite.client.plugins.cluescrolls.clues; import java.awt.Color; -import java.awt.Dimension; import java.awt.Graphics2D; import java.util.Arrays; import java.util.Collection; @@ -59,7 +58,6 @@ import net.runelite.client.ui.overlay.components.TitleComponent; @Slf4j public class HotColdClue extends ClueScroll implements LocationClueScroll, LocationsClueScroll, TextClueScroll, NpcClueScroll { - private static final int HOT_COLD_PANEL_WIDTH = 200; private static final HotColdClue BEGINNER_CLUE = new HotColdClue("Buried beneath the ground, who knows where it's found. Lucky for you, A man called Reldo may have a clue.", "Reldo", "Speak to Reldo to receive a strange device.", @@ -141,7 +139,6 @@ public class HotColdClue extends ClueScroll implements LocationClueScroll, Locat panelComponent.getChildren().add(TitleComponent.builder() .text("Hot/Cold Clue") .build()); - panelComponent.setPreferredSize(new Dimension(HOT_COLD_PANEL_WIDTH, 0)); // strange device has not been tested yet, show how to get it if (hotColdSolver.getLastWorldPoint() == null && location == null) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingOverlay.java index a2cad2a182..c3f922eab7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cooking/CookingOverlay.java @@ -29,8 +29,8 @@ import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; import java.text.DecimalFormat; -import java.time.Instant; import java.time.Duration; +import java.time.Instant; import javax.inject.Inject; import static net.runelite.api.AnimationID.COOKING_FIRE; import static net.runelite.api.AnimationID.COOKING_RANGE; @@ -39,15 +39,14 @@ import static net.runelite.api.MenuAction.RUNELITE_OVERLAY; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import net.runelite.api.Skill; import net.runelite.client.plugins.xptracker.XpTrackerService; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; -class CookingOverlay extends Overlay +class CookingOverlay extends OverlayPanel { private static final int COOK_TIMEOUT = 3; private static final DecimalFormat FORMAT = new DecimalFormat("#.#"); @@ -57,7 +56,6 @@ class CookingOverlay extends Overlay private final CookingPlugin plugin; private final CookingConfig config; private final XpTrackerService xpTrackerService; - private final PanelComponent panelComponent = new PanelComponent(); @Inject private CookingOverlay(Client client, CookingPlugin plugin, CookingConfig config, XpTrackerService xpTrackerService) @@ -81,8 +79,6 @@ class CookingOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); - if (isCooking() || Duration.between(session.getLastCookingAction(), Instant.now()).getSeconds() < COOK_TIMEOUT) { panelComponent.getChildren().add(TitleComponent.builder() @@ -108,7 +104,7 @@ class CookingOverlay extends Overlay .right(session.getBurnAmount() + (session.getBurnAmount() >= 1 ? " (" + FORMAT.format(session.getBurntPercentage()) + "%)" : "")) .build()); - return panelComponent.render(graphics); + return super.render(graphics); } private boolean isCooking() diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpDamageOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpDamageOverlay.java index abc6d7578e..390d7a4270 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpDamageOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/corp/CorpDamageOverlay.java @@ -36,24 +36,21 @@ import net.runelite.api.Varbits; import net.runelite.api.coords.WorldPoint; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetID; -import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayLayer; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.components.ComponentConstants; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; -class CorpDamageOverlay extends Overlay +class CorpDamageOverlay extends OverlayPanel { private final Client client; private final CorpPlugin corpPlugin; private final CorpConfig config; - private final PanelComponent panelComponent = new PanelComponent(); - @Inject private CorpDamageOverlay(Client client, CorpPlugin corpPlugin, CorpConfig config) { @@ -89,8 +86,6 @@ class CorpDamageOverlay extends Overlay // estimate how much damage is required for kill based on number of players int damageForKill = players != 0 ? totalDamage / players : 0; - panelComponent.getChildren().clear(); - NPC core = corpPlugin.getCore(); if (core != null) { @@ -135,6 +130,6 @@ class CorpDamageOverlay extends Overlay .build()); } - return panelComponent.render(graphics); + return super.render(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/CameraOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/CameraOverlay.java index 882fe4201c..f8ee0e9b11 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/CameraOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/CameraOverlay.java @@ -28,24 +28,21 @@ import java.awt.Dimension; import java.awt.Graphics2D; import javax.inject.Inject; import net.runelite.api.Client; -import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; -public class CameraOverlay extends Overlay +public class CameraOverlay extends OverlayPanel { private final Client client; private final DevToolsPlugin plugin; - private final PanelComponent panelComponent = new PanelComponent(); @Inject CameraOverlay(Client client, DevToolsPlugin plugin) { this.client = client; this.plugin = plugin; - panelComponent.setPreferredSize(new Dimension(150, 0)); setPosition(OverlayPosition.TOP_LEFT); } @@ -57,8 +54,6 @@ public class CameraOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); - panelComponent.getChildren().add(TitleComponent.builder() .text("Camera") .build()); @@ -93,6 +88,6 @@ public class CameraOverlay extends Overlay .right("" + client.getScale()) .build()); - return panelComponent.render(graphics); + return super.render(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/LocationOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/LocationOverlay.java index e9f9d2b608..6da0a75c0a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/LocationOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/LocationOverlay.java @@ -32,23 +32,20 @@ import net.runelite.api.Client; import static net.runelite.api.Constants.CHUNK_SIZE; import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.WorldPoint; -import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; -public class LocationOverlay extends Overlay +public class LocationOverlay extends OverlayPanel { private final Client client; private final DevToolsPlugin plugin; - private final PanelComponent panelComponent = new PanelComponent(); @Inject LocationOverlay(Client client, DevToolsPlugin plugin) { this.client = client; this.plugin = plugin; - panelComponent.setPreferredSize(new Dimension(150, 0)); setPosition(OverlayPosition.TOP_LEFT); } @@ -60,7 +57,6 @@ public class LocationOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); WorldPoint localWorld = client.getLocalPlayer().getWorldLocation(); LocalPoint localPoint = client.getLocalPlayer().getLocalLocation(); @@ -117,6 +113,6 @@ public class LocationOverlay extends Overlay .build()); } - return panelComponent.render(graphics); + return super.render(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/SoundEffectOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/SoundEffectOverlay.java index cb99746a90..4212478d2a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/SoundEffectOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/SoundEffectOverlay.java @@ -34,12 +34,11 @@ import net.runelite.api.coords.LocalPoint; import net.runelite.api.events.AreaSoundEffectPlayed; import net.runelite.api.events.SoundEffectPlayed; import net.runelite.client.eventbus.Subscribe; -import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; -class SoundEffectOverlay extends Overlay +class SoundEffectOverlay extends OverlayPanel { private final static int MAX_LINES = 16; private final static Color COLOR_SOUND_EFFECT = Color.WHITE; @@ -48,18 +47,17 @@ class SoundEffectOverlay extends Overlay private final Client client; private final DevToolsPlugin plugin; - private final PanelComponent panelComponent = new PanelComponent(); @Inject SoundEffectOverlay(Client client, DevToolsPlugin plugin) { this.client = client; this.plugin = plugin; - panelComponent.setPreferredSize(new Dimension(200, 0)); panelComponent.getChildren().add(LineComponent.builder() .left("Sound Effects") .leftColor(Color.CYAN) .build()); + setClearChildren(false); setPosition(OverlayPosition.TOP_LEFT); } @@ -71,7 +69,7 @@ class SoundEffectOverlay extends Overlay return null; } - return panelComponent.render(graphics); + return super.render(graphics); } @Subscribe diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsOverlay.java index 44b31c481c..ead4ded77e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/dpscounter/DpsOverlay.java @@ -34,18 +34,17 @@ import javax.inject.Inject; import net.runelite.api.Client; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY; import net.runelite.api.Player; -import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.components.ComponentConstants; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.ui.overlay.tooltip.Tooltip; import net.runelite.client.ui.overlay.tooltip.TooltipManager; import net.runelite.client.util.QuantityFormatter; import net.runelite.client.ws.PartyService; -class DpsOverlay extends Overlay +class DpsOverlay extends OverlayPanel { private static final DecimalFormat DPS_FORMAT = new DecimalFormat("#0.0"); private static final int PANEL_WIDTH_OFFSET = 10; // assumes 8 for panel component border + 2px between left and right @@ -60,8 +59,6 @@ class DpsOverlay extends Overlay private final Client client; private final TooltipManager tooltipManager; - private final PanelComponent panelComponent = new PanelComponent(); - @Inject DpsOverlay(DpsCounterPlugin dpsCounterPlugin, DpsConfig dpsConfig, PartyService partyService, Client client, TooltipManager tooltipManager) @@ -108,8 +105,6 @@ class DpsOverlay extends Overlay DpsMember total = dpsCounterPlugin.getTotal(); boolean paused = total.isPaused(); - panelComponent.getChildren().clear(); - final String title = (inParty ? "Party " : "") + (showDamage ? "Damage" : "DPS") + (paused ? " (paused)" : ""); panelComponent.getChildren().add( TitleComponent.builder() @@ -151,7 +146,7 @@ class DpsOverlay extends Overlay } } - return panelComponent.render(graphics); + return super.render(graphics); } void setPaused(boolean paused) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java index 96b023f95f..084e0f1534 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java @@ -24,12 +24,12 @@ */ package net.runelite.client.plugins.fishing; +import com.google.common.collect.ImmutableSet; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; import java.util.Set; import javax.inject.Inject; -import com.google.common.collect.ImmutableSet; import net.runelite.api.AnimationID; import net.runelite.api.Client; import net.runelite.api.GraphicID; @@ -37,15 +37,14 @@ import static net.runelite.api.MenuAction.RUNELITE_OVERLAY; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import net.runelite.api.Skill; import net.runelite.client.plugins.xptracker.XpTrackerService; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; -class FishingOverlay extends Overlay +class FishingOverlay extends OverlayPanel { private static final String FISHING_SPOT = "Fishing spot"; static final String FISHING_RESET = "Reset"; @@ -77,8 +76,6 @@ class FishingOverlay extends Overlay private final FishingConfig config; private final XpTrackerService xpTrackerService; - private final PanelComponent panelComponent = new PanelComponent(); - @Inject public FishingOverlay(Client client, FishingPlugin plugin, FishingConfig config, XpTrackerService xpTrackerService) { @@ -100,7 +97,6 @@ class FishingOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); if (client.getLocalPlayer().getInteracting() != null && client.getLocalPlayer().getInteracting().getName().contains(FISHING_SPOT) && client.getLocalPlayer().getInteracting().getGraphic() != GraphicID.FLYING_FISH @@ -136,6 +132,6 @@ class FishingOverlay extends Overlay } } - return panelComponent.render(graphics); + return super.render(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/inventoryviewer/InventoryViewerOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/inventoryviewer/InventoryViewerOverlay.java index 0eb2967b4c..e69f29be98 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/inventoryviewer/InventoryViewerOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/inventoryviewer/InventoryViewerOverlay.java @@ -36,13 +36,12 @@ import net.runelite.api.Item; import net.runelite.api.ItemComposition; import net.runelite.api.ItemContainer; import net.runelite.client.game.ItemManager; -import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.ComponentOrientation; import net.runelite.client.ui.overlay.components.ImageComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; -class InventoryViewerOverlay extends Overlay +class InventoryViewerOverlay extends OverlayPanel { private static final int INVENTORY_SIZE = 28; private static final ImageComponent PLACEHOLDER_IMAGE = new ImageComponent( @@ -51,8 +50,6 @@ class InventoryViewerOverlay extends Overlay private final Client client; private final ItemManager itemManager; - private final PanelComponent panelComponent = new PanelComponent(); - @Inject private InventoryViewerOverlay(Client client, ItemManager itemManager) { @@ -75,8 +72,6 @@ class InventoryViewerOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); - final Item[] items = itemContainer.getItems(); for (int i = 0; i < INVENTORY_SIZE; i++) @@ -99,7 +94,7 @@ class InventoryViewerOverlay extends Overlay panelComponent.getChildren().add(PLACEHOLDER_IMAGE); } - return panelComponent.render(graphics); + return super.render(graphics); } private BufferedImage getImage(Item item) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/KourendLibraryTutorialOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/KourendLibraryTutorialOverlay.java index 6d6f3b4796..0ad6103c09 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/KourendLibraryTutorialOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/kourendlibrary/KourendLibraryTutorialOverlay.java @@ -24,25 +24,23 @@ */ package net.runelite.client.plugins.kourendlibrary; +import java.awt.Dimension; +import java.awt.Graphics2D; +import javax.inject.Inject; import net.runelite.api.Client; import net.runelite.api.Player; import net.runelite.api.coords.WorldPoint; -import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; -import javax.inject.Inject; -import java.awt.Dimension; -import java.awt.Graphics2D; -class KourendLibraryTutorialOverlay extends Overlay +class KourendLibraryTutorialOverlay extends OverlayPanel { private final Client client; private final KourendLibraryConfig config; private final Library library; - private final PanelComponent panelComponent; private final LineComponent noDataMessageComponent; private final LineComponent incompleteMessageComponent; private final LineComponent completeMessageComponent; @@ -55,7 +53,6 @@ class KourendLibraryTutorialOverlay extends Overlay this.config = config; this.library = library; - panelComponent = new PanelComponent(); panelComponent.setPreferredSize(new Dimension(177, 0)); noDataMessageComponent = LineComponent.builder().left("Click on the white squares to start finding books.").build(); @@ -87,8 +84,6 @@ class KourendLibraryTutorialOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); - switch (library.getState()) { case NO_DATA: @@ -104,6 +99,6 @@ class KourendLibraryTutorialOverlay extends Overlay break; } - return panelComponent.render(graphics); + return super.render(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeGemOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeGemOverlay.java index f1f6fa92a3..2406b85737 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeGemOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeGemOverlay.java @@ -30,20 +30,18 @@ import java.time.Duration; import java.time.Instant; import javax.inject.Inject; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; -public class MotherlodeGemOverlay extends Overlay +public class MotherlodeGemOverlay extends OverlayPanel { private final MotherlodePlugin plugin; private final MotherlodeSession motherlodeSession; private final MotherlodeConfig config; - private final PanelComponent panelComponent = new PanelComponent(); @Inject MotherlodeGemOverlay(MotherlodePlugin plugin, MotherlodeSession motherlodeSession, MotherlodeConfig config) @@ -79,7 +77,6 @@ public class MotherlodeGemOverlay extends Overlay int emeraldsFound = session.getEmeraldsFound(); int sapphiresFound = session.getSapphiresFound(); - panelComponent.getChildren().clear(); panelComponent.getChildren().add(TitleComponent.builder().text("Gems found").build()); if (diamondsFound > 0) @@ -114,6 +111,6 @@ public class MotherlodeGemOverlay extends Overlay .build()); } - return panelComponent.render(graphics); + return super.render(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeOreOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeOreOverlay.java index 9f3af1625f..83a85bd4fb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeOreOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeOreOverlay.java @@ -27,18 +27,16 @@ package net.runelite.client.plugins.motherlode; import java.awt.Dimension; import java.awt.Graphics2D; import javax.inject.Inject; -import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; -public class MotherlodeOreOverlay extends Overlay +public class MotherlodeOreOverlay extends OverlayPanel { private final MotherlodePlugin plugin; private final MotherlodeSession motherlodeSession; private final MotherlodeConfig config; - private final PanelComponent panelComponent = new PanelComponent(); @Inject MotherlodeOreOverlay(MotherlodePlugin plugin, MotherlodeSession motherlodeSession, MotherlodeConfig config) @@ -73,7 +71,6 @@ public class MotherlodeOreOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); panelComponent.getChildren().add(TitleComponent.builder().text("Ores found").build()); if (nuggetsFound > 0) @@ -124,6 +121,6 @@ public class MotherlodeOreOverlay extends Overlay .build()); } - return panelComponent.render(graphics); + return super.render(graphics); } } \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeOverlay.java index 7ac14372a3..1abe210ef8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeOverlay.java @@ -32,29 +32,16 @@ import java.time.Duration; import java.time.Instant; import java.util.Set; import javax.inject.Inject; -import static net.runelite.api.AnimationID.MINING_MOTHERLODE_ADAMANT; -import static net.runelite.api.AnimationID.MINING_MOTHERLODE_BLACK; -import static net.runelite.api.AnimationID.MINING_MOTHERLODE_BRONZE; -import static net.runelite.api.AnimationID.MINING_MOTHERLODE_CRYSTAL; -import static net.runelite.api.AnimationID.MINING_MOTHERLODE_DRAGON; -import static net.runelite.api.AnimationID.MINING_MOTHERLODE_DRAGON_OR; -import static net.runelite.api.AnimationID.MINING_MOTHERLODE_DRAGON_UPGRADED; -import static net.runelite.api.AnimationID.MINING_MOTHERLODE_GILDED; -import static net.runelite.api.AnimationID.MINING_MOTHERLODE_INFERNAL; -import static net.runelite.api.AnimationID.MINING_MOTHERLODE_IRON; -import static net.runelite.api.AnimationID.MINING_MOTHERLODE_MITHRIL; -import static net.runelite.api.AnimationID.MINING_MOTHERLODE_RUNE; -import static net.runelite.api.AnimationID.MINING_MOTHERLODE_STEEL; +import static net.runelite.api.AnimationID.*; import net.runelite.api.Client; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY; -import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; -class MotherlodeOverlay extends Overlay +class MotherlodeOverlay extends OverlayPanel { private static final Set MINING_ANIMATION_IDS = ImmutableSet.of( MINING_MOTHERLODE_BRONZE, MINING_MOTHERLODE_IRON, MINING_MOTHERLODE_STEEL, @@ -69,7 +56,6 @@ class MotherlodeOverlay extends Overlay private final MotherlodePlugin plugin; private final MotherlodeSession motherlodeSession; private final MotherlodeConfig config; - private final PanelComponent panelComponent = new PanelComponent(); @Inject MotherlodeOverlay(Client client, MotherlodePlugin plugin, MotherlodeSession motherlodeSession, MotherlodeConfig config) @@ -106,8 +92,6 @@ class MotherlodeOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); - if (config.showMiningState()) { if (MINING_ANIMATION_IDS.contains(client.getLocalPlayer().getAnimation())) @@ -136,6 +120,6 @@ class MotherlodeOverlay extends Overlay .right(session.getRecentMined() > 2 ? Integer.toString(session.getPerHour()) : "") .build()); - return panelComponent.render(graphics); + return super.render(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZoneOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZoneOverlay.java index feacb57e4a..679f773913 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZoneOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZoneOverlay.java @@ -35,17 +35,16 @@ import net.runelite.api.Varbits; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.game.ItemManager; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; import net.runelite.client.util.QuantityFormatter; -class NightmareZoneOverlay extends Overlay +class NightmareZoneOverlay extends OverlayPanel { private final Client client; private final NightmareZoneConfig config; @@ -54,7 +53,6 @@ class NightmareZoneOverlay extends Overlay private final ItemManager itemManager; private AbsorptionCounter absorptionCounter; - private final PanelComponent panelComponent = new PanelComponent(); @Inject NightmareZoneOverlay( @@ -105,7 +103,6 @@ class NightmareZoneOverlay extends Overlay final int currentPoints = client.getVar(Varbits.NMZ_POINTS); final int totalPoints = currentPoints + client.getVar(VarPlayer.NMZ_REWARD_POINTS); - panelComponent.getChildren().clear(); panelComponent.getChildren().add(LineComponent.builder() .left("Points: ") .right(QuantityFormatter.formatNumber(currentPoints)) @@ -119,7 +116,7 @@ class NightmareZoneOverlay extends Overlay .right(QuantityFormatter.formatNumber(totalPoints)) .build()); - return panelComponent.render(graphics); + return super.render(graphics); } private void renderAbsorptionCounter() diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaNotWorkingOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaNotWorkingOverlay.java index 3d238cce85..5c6caed46c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaNotWorkingOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/npcunaggroarea/NpcAggroAreaNotWorkingOverlay.java @@ -27,17 +27,15 @@ package net.runelite.client.plugins.npcunaggroarea; import com.google.inject.Inject; import java.awt.Dimension; import java.awt.Graphics2D; -import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; -class NpcAggroAreaNotWorkingOverlay extends Overlay +class NpcAggroAreaNotWorkingOverlay extends OverlayPanel { private final NpcAggroAreaPlugin plugin; private final NpcAggroAreaConfig config; - private final PanelComponent panelComponent; @Inject private NpcAggroAreaNotWorkingOverlay(NpcAggroAreaPlugin plugin, NpcAggroAreaConfig config) @@ -45,14 +43,13 @@ class NpcAggroAreaNotWorkingOverlay extends Overlay this.plugin = plugin; this.config = config; - panelComponent = new PanelComponent(); - panelComponent.setPreferredSize(new Dimension(150, 0)); panelComponent.getChildren().add(LineComponent.builder() .left("Unaggressive NPC timers will start working when you teleport far away or enter a dungeon.") .build()); setPriority(OverlayPriority.LOW); setPosition(OverlayPosition.TOP_LEFT); + setClearChildren(false); } @Override @@ -63,6 +60,6 @@ class NpcAggroAreaNotWorkingOverlay extends Overlay return null; } - return panelComponent.render(graphics); + return super.render(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java index 8e838cc49b..2ec7b192ab 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java @@ -39,19 +39,18 @@ import net.runelite.api.NPC; import net.runelite.api.Player; import net.runelite.client.game.HiscoreManager; import net.runelite.client.game.NPCManager; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.components.ComponentConstants; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.ProgressBarComponent; import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.util.Text; import net.runelite.http.api.hiscore.HiscoreResult; -class OpponentInfoOverlay extends Overlay +class OpponentInfoOverlay extends OverlayPanel { private static final Color HP_GREEN = new Color(0, 146, 54, 230); private static final Color HP_RED = new Color(102, 15, 16, 230); @@ -62,8 +61,6 @@ class OpponentInfoOverlay extends Overlay private final HiscoreManager hiscoreManager; private final NPCManager npcManager; - private final PanelComponent panelComponent = new PanelComponent(); - private Integer lastMaxHealth; private int lastRatio = 0; private int lastHealthScale = 0; @@ -135,8 +132,6 @@ class OpponentInfoOverlay extends Overlay final FontMetrics fontMetrics = graphics.getFontMetrics(); - panelComponent.getChildren().clear(); - // Opponent name int panelWidth = Math.max(ComponentConstants.STANDARD_WIDTH, fontMetrics.stringWidth(opponentName) + ComponentConstants.STANDARD_BORDER + ComponentConstants.STANDARD_BORDER); panelComponent.setPreferredSize(new Dimension(panelWidth, 0)); @@ -205,6 +200,6 @@ class OpponentInfoOverlay extends Overlay panelComponent.getChildren().add(progressBarComponent); } - return panelComponent.render(graphics); + return super.render(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyStatsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyStatsOverlay.java index 693b23cb89..5635646339 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyStatsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyStatsOverlay.java @@ -34,15 +34,15 @@ import java.util.UUID; import javax.inject.Inject; import net.runelite.api.MenuAction; import net.runelite.client.plugins.party.data.PartyData; -import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.components.ComponentConstants; import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.ProgressBarComponent; import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.client.ws.PartyService; -public class PartyStatsOverlay extends Overlay +public class PartyStatsOverlay extends OverlayPanel { private static final Color HP_FG = new Color(0, 146, 54, 230); private static final Color HP_BG = new Color(102, 15, 16, 230); @@ -52,7 +52,6 @@ public class PartyStatsOverlay extends Overlay private final PartyPlugin plugin; private final PartyService party; private final PartyConfig config; - private final PanelComponent body = new PanelComponent(); @Inject private PartyStatsOverlay(final PartyPlugin plugin, final PartyService party, final PartyConfig config) @@ -61,8 +60,8 @@ public class PartyStatsOverlay extends Overlay this.plugin = plugin; this.party = party; this.config = config; - body.setBorder(new Rectangle()); - body.setGap(new Point(0, ComponentConstants.STANDARD_BORDER / 2)); + panelComponent.setBorder(new Rectangle()); + panelComponent.setGap(new Point(0, ComponentConstants.STANDARD_BORDER / 2)); getMenuEntries().add(new OverlayMenuEntry(MenuAction.RUNELITE_OVERLAY, "Leave", "Party")); } @@ -80,8 +79,7 @@ public class PartyStatsOverlay extends Overlay return null; } - body.getChildren().clear(); - body.setBackgroundColor(null); + panelComponent.setBackgroundColor(null); boolean only1 = plugin.getPartyDataMap().size() == 1; @@ -93,7 +91,7 @@ public class PartyStatsOverlay extends Overlay { if (only1) { - body.getChildren().add(TitleComponent.builder() + panelComponent.getChildren().add(TitleComponent.builder() .text("No other party members") .color(Color.RED) .build()); @@ -134,10 +132,10 @@ public class PartyStatsOverlay extends Overlay panel.getChildren().add(prayBar); } - body.getChildren().add(panel); + panelComponent.getChildren().add(panel); }); } - return body.render(graphics); + return super.render(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java index f4441a8151..4616b1682b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raids/RaidsOverlay.java @@ -37,20 +37,19 @@ import static net.runelite.api.MenuAction.RUNELITE_OVERLAY; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import net.runelite.client.game.WorldService; import net.runelite.client.plugins.raids.solver.Room; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.components.ComponentConstants; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; import net.runelite.http.api.worlds.World; import net.runelite.http.api.worlds.WorldRegion; import net.runelite.http.api.worlds.WorldResult; -public class RaidsOverlay extends Overlay +public class RaidsOverlay extends OverlayPanel { private static final int OLM_PLANE = 0; static final String BROADCAST_ACTION = "Broadcast layout"; @@ -59,7 +58,6 @@ public class RaidsOverlay extends Overlay private Client client; private RaidsPlugin plugin; private RaidsConfig config; - private final PanelComponent panelComponent = new PanelComponent(); @Getter @Setter @@ -90,8 +88,6 @@ public class RaidsOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); - if (plugin.getRaid() == null || plugin.getRaid().getLayout() == null) { panelComponent.getChildren().add(TitleComponent.builder() @@ -99,7 +95,7 @@ public class RaidsOverlay extends Overlay .color(Color.RED) .build()); - return panelComponent.render(graphics); + return super.render(graphics); } Color color = Color.WHITE; @@ -206,6 +202,6 @@ public class RaidsOverlay extends Overlay } } - return panelComponent.render(graphics); + return super.render(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/smelting/SmeltingOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/smelting/SmeltingOverlay.java index 411abdf252..7555082a39 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/smelting/SmeltingOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/smelting/SmeltingOverlay.java @@ -37,15 +37,14 @@ import static net.runelite.api.MenuAction.RUNELITE_OVERLAY; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import net.runelite.api.Skill; import net.runelite.client.plugins.xptracker.XpTrackerService; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; -class SmeltingOverlay extends Overlay +class SmeltingOverlay extends OverlayPanel { private static final int SMELT_TIMEOUT = 7; static final String SMELTING_RESET = "Reset"; @@ -54,8 +53,6 @@ class SmeltingOverlay extends Overlay private final SmeltingPlugin plugin; private final XpTrackerService xpTrackerService; - private final PanelComponent panelComponent = new PanelComponent(); - @Inject SmeltingOverlay(Client client, SmeltingPlugin plugin, XpTrackerService xpTrackerService) { @@ -77,8 +74,6 @@ class SmeltingOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); - if (isSmelting() || Duration.between(session.getLastItemSmelted(), Instant.now()).getSeconds() < SMELT_TIMEOUT) { panelComponent.getChildren().add(TitleComponent.builder() @@ -120,7 +115,7 @@ class SmeltingOverlay extends Overlay } } - return panelComponent.render(graphics); + return super.render(graphics); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/teamcapes/TeamCapesOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/teamcapes/TeamCapesOverlay.java index 0aeab043cd..8ec93c1b18 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/teamcapes/TeamCapesOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/teamcapes/TeamCapesOverlay.java @@ -31,18 +31,16 @@ import javax.inject.Inject; import net.runelite.api.ItemID; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import net.runelite.client.game.ItemManager; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; import net.runelite.client.ui.overlay.components.ComponentOrientation; import net.runelite.client.ui.overlay.components.ImageComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; -public class TeamCapesOverlay extends Overlay +public class TeamCapesOverlay extends OverlayPanel { - private final PanelComponent panelComponent = new PanelComponent(); private final TeamCapesPlugin plugin; private final TeamCapesConfig config; private final ItemManager manager; @@ -70,8 +68,6 @@ public class TeamCapesOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); - for (Map.Entry team : teams.entrySet()) { // Only display team capes that have a count greater than the configured minimum @@ -97,6 +93,6 @@ public class TeamCapesOverlay extends Overlay panelComponent.getChildren().add(new ImageComponent(manager.getImage(itemID, team.getValue(), true))); } - return panelComponent.render(graphics); + return super.render(graphics); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtOverlay.java index dc73d8ac23..4388f4fa1a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wintertodt/WintertodtOverlay.java @@ -30,18 +30,16 @@ import java.awt.Dimension; import java.awt.Graphics2D; import javax.inject.Inject; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; -class WintertodtOverlay extends Overlay +class WintertodtOverlay extends OverlayPanel { private final WintertodtPlugin plugin; - private final PanelComponent panelComponent = new PanelComponent(); @Inject private WintertodtOverlay(WintertodtPlugin plugin) @@ -60,9 +58,6 @@ class WintertodtOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); - panelComponent.setPreferredSize(new Dimension(150, 0)); - panelComponent.getChildren().add(TitleComponent.builder() .text(plugin.getCurrentActivity().getActionString()) .color(plugin.getCurrentActivity() == WintertodtActivity.IDLE ? Color.RED : Color.GREEN) @@ -84,6 +79,6 @@ class WintertodtOverlay extends Overlay .rightColor(plugin.getNumKindling() + plugin.getNumLogs() > 0 ? Color.GREEN : Color.RED) .build()); - return panelComponent.render(graphics); + return super.render(graphics); } } \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingOverlay.java index 6f863cdda7..3424efee67 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingOverlay.java @@ -33,15 +33,14 @@ import static net.runelite.api.MenuAction.RUNELITE_OVERLAY; import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import net.runelite.api.Skill; import net.runelite.client.plugins.xptracker.XpTrackerService; -import net.runelite.client.ui.overlay.Overlay; import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.LineComponent; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.TitleComponent; -class WoodcuttingOverlay extends Overlay +class WoodcuttingOverlay extends OverlayPanel { static final String WOODCUTTING_RESET = "Reset"; @@ -49,7 +48,6 @@ class WoodcuttingOverlay extends Overlay private final WoodcuttingPlugin plugin; private final WoodcuttingConfig config; private final XpTrackerService xpTrackerService; - private final PanelComponent panelComponent = new PanelComponent(); @Inject private WoodcuttingOverlay(Client client, WoodcuttingPlugin plugin, WoodcuttingConfig config, XpTrackerService xpTrackerService) @@ -78,8 +76,6 @@ class WoodcuttingOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); - Axe axe = plugin.getAxe(); if (axe != null && axe.matchesChoppingAnimation(client.getLocalPlayer())) { @@ -113,7 +109,7 @@ class WoodcuttingOverlay extends Overlay } } - return panelComponent.render(graphics); + return super.render(graphics); } } \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBoxOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBoxOverlay.java index f78db6f296..ec9ab50b71 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBoxOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBoxOverlay.java @@ -33,11 +33,13 @@ import java.awt.image.BufferedImage; import lombok.AccessLevel; import lombok.Getter; import net.runelite.api.Experience; +import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; import net.runelite.api.Skill; import net.runelite.client.ui.FontManager; import net.runelite.client.ui.SkillColor; -import net.runelite.client.ui.overlay.Overlay; +import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; import net.runelite.client.ui.overlay.OverlayMenuEntry; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.components.ComponentOrientation; import net.runelite.client.ui.overlay.components.ImageComponent; import net.runelite.client.ui.overlay.components.LineComponent; @@ -45,18 +47,14 @@ import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.components.ProgressBarComponent; import net.runelite.client.ui.overlay.components.SplitComponent; import net.runelite.client.util.QuantityFormatter; -import static net.runelite.api.MenuAction.RUNELITE_OVERLAY_CONFIG; -import static net.runelite.client.ui.overlay.OverlayManager.OPTION_CONFIGURE; -class XpInfoBoxOverlay extends Overlay +class XpInfoBoxOverlay extends OverlayPanel { - private static final int PANEL_PREFERRED_WIDTH = 150; private static final int BORDER_SIZE = 2; private static final int XP_AND_PROGRESS_BAR_GAP = 2; private static final int XP_AND_ICON_GAP = 4; private static final Rectangle XP_AND_ICON_COMPONENT_BORDER = new Rectangle(2, 1, 4, 0); - private final PanelComponent panel = new PanelComponent(); private final PanelComponent iconXpSplitPanel = new PanelComponent(); private final XpTrackerPlugin plugin; private final XpTrackerConfig config; @@ -76,19 +74,16 @@ class XpInfoBoxOverlay extends Overlay this.config = config; this.skill = skill; this.icon = icon; - panel.setBorder(new Rectangle(BORDER_SIZE, BORDER_SIZE, BORDER_SIZE, BORDER_SIZE)); - panel.setGap(new Point(0, XP_AND_PROGRESS_BAR_GAP)); - panel.setPreferredSize(new Dimension(PANEL_PREFERRED_WIDTH, 0)); + panelComponent.setBorder(new Rectangle(BORDER_SIZE, BORDER_SIZE, BORDER_SIZE, BORDER_SIZE)); + panelComponent.setGap(new Point(0, XP_AND_PROGRESS_BAR_GAP)); iconXpSplitPanel.setBorder(XP_AND_ICON_COMPONENT_BORDER); iconXpSplitPanel.setBackgroundColor(null); - iconXpSplitPanel.setPreferredSize(new Dimension(PANEL_PREFERRED_WIDTH, 0)); getMenuEntries().add(new OverlayMenuEntry(RUNELITE_OVERLAY_CONFIG, OPTION_CONFIGURE, "XP Tracker overlay")); } @Override public Dimension render(Graphics2D graphics) { - panel.getChildren().clear(); iconXpSplitPanel.getChildren().clear(); //Setting the font to rs small font so that the overlay isn't huge @@ -174,10 +169,10 @@ class XpInfoBoxOverlay extends Overlay progressBarComponent.setValue(snapshot.getSkillProgressToGoal()); - panel.getChildren().add(iconXpSplitPanel); - panel.getChildren().add(progressBarComponent); + panelComponent.getChildren().add(iconXpSplitPanel); + panelComponent.getChildren().add(progressBarComponent); - return panel.render(graphics); + return super.render(graphics); } @Override diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxOverlay.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxOverlay.java index 516e0359ae..b917a38e6b 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/infobox/InfoBoxOverlay.java @@ -36,22 +36,20 @@ import javax.inject.Inject; import javax.inject.Singleton; import net.runelite.api.Client; import net.runelite.client.config.RuneLiteConfig; -import net.runelite.client.ui.overlay.Overlay; +import net.runelite.client.ui.overlay.OverlayPanel; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.components.ComponentOrientation; import net.runelite.client.ui.overlay.components.InfoBoxComponent; import net.runelite.client.ui.overlay.components.LayoutableRenderableEntity; -import net.runelite.client.ui.overlay.components.PanelComponent; import net.runelite.client.ui.overlay.tooltip.Tooltip; import net.runelite.client.ui.overlay.tooltip.TooltipManager; @Singleton -public class InfoBoxOverlay extends Overlay +public class InfoBoxOverlay extends OverlayPanel { private static final int GAP = 1; private static final int DEFAULT_WRAP_COUNT = 4; - private final PanelComponent panelComponent = new PanelComponent(); private final InfoBoxManager infoboxManager; private final TooltipManager tooltipManager; private final Client client; @@ -69,6 +67,7 @@ public class InfoBoxOverlay extends Overlay this.client = client; this.config = config; setPosition(OverlayPosition.TOP_LEFT); + setClearChildren(false); panelComponent.setWrap(true); panelComponent.setBackgroundColor(null); @@ -86,8 +85,6 @@ public class InfoBoxOverlay extends Overlay return null; } - panelComponent.getChildren().clear(); - // Set preferred size to the size of DEFAULT_WRAP_COUNT infoboxes, including the padding - which is applied // to the last infobox prior to wrapping too. panelComponent.setPreferredSize(new Dimension(DEFAULT_WRAP_COUNT * (config.infoBoxSize() + GAP), DEFAULT_WRAP_COUNT * (config.infoBoxSize() + GAP))); @@ -117,7 +114,7 @@ public class InfoBoxOverlay extends Overlay panelComponent.getChildren().add(infoBoxComponent); } - final Dimension dimension = panelComponent.render(graphics); + final Dimension dimension = super.render(graphics); // Handle tooltips final Point mouse = new Point(client.getMouseCanvasPosition().getX(), client.getMouseCanvasPosition().getY()); @@ -142,6 +139,7 @@ public class InfoBoxOverlay extends Overlay } } + panelComponent.getChildren().clear(); return dimension; } }