diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/PanelComponent.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/PanelComponent.java index 42d446fc82..d2a8cb1047 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/PanelComponent.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/PanelComponent.java @@ -33,6 +33,7 @@ import java.awt.Point; import java.awt.Rectangle; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import lombok.AllArgsConstructor; import lombok.Data; import lombok.Getter; @@ -74,6 +75,9 @@ public class PanelComponent implements RenderableEntity @Getter private List lines = new ArrayList<>(); + @Setter + private ProgressBarComponent progressBar; + @Setter private int width = 140; @@ -81,10 +85,11 @@ public class PanelComponent implements RenderableEntity public Dimension render(Graphics2D graphics, Point parent) { final Dimension dimension = new Dimension(); - final int elementNumber = (Strings.isNullOrEmpty(title) ? 0 : 1) + lines.size(); + final int elementNumber = (Strings.isNullOrEmpty(title) ? 0 : 1) + lines.size() + (Objects.isNull(progressBar) ? 0 : 1); int height = elementNumber == 0 ? 0 : TOP_BORDER + (graphics.getFontMetrics().getHeight() * elementNumber) - + SEPARATOR * elementNumber + BOTTOM_BORDER; + + SEPARATOR * elementNumber + (Objects.isNull(progressBar) ? 0 : progressBar.getHeight() / 2) + + BOTTOM_BORDER; dimension.setSize(width, height); if (dimension.height == 0) @@ -131,6 +136,14 @@ public class PanelComponent implements RenderableEntity y += metrics.getHeight() + SEPARATOR; } + //Render progress bar + if (!Objects.isNull(progressBar)) + { + progressBar.setWidth(width - LEFT_BORDER - RIGHT_BORDER); + progressBar.setPosition(new Point(position.x + LEFT_BORDER, y - (metrics.getHeight() / 2))); + progressBar.render(graphics, parent); + } + return dimension; } }