From bf23c47916b4b9f3dbe2901ef75de8352acd6d8b Mon Sep 17 00:00:00 2001 From: noremac201 Date: Tue, 2 Jan 2018 08:37:53 -0500 Subject: [PATCH 1/2] Add new overlay position for above right side of chatbox --- .../runelite/client/ui/overlay/OverlayPosition.java | 6 +++++- .../runelite/client/ui/overlay/OverlayRenderer.java | 12 ++++++++++++ .../net/runelite/client/ui/overlay/OverlayUtil.java | 1 + 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayPosition.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayPosition.java index 28b7d6fd11..27c85dba67 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayPosition.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayPosition.java @@ -45,5 +45,9 @@ public enum OverlayPosition /** * Place overlay in the bottom right most area possible */ - BOTTOM_RIGHT; + BOTTOM_RIGHT, + /** + * Place overlay directly above right most area of chatbox possible + */ + ABOVE_CHATBOX_RIGHT; } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java index e8fd39065d..e1afdd39ba 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java @@ -187,6 +187,10 @@ public class OverlayRenderer ? new Rectangle(viewport.getBounds()) : new Rectangle(0, 0, surface.getWidth(), surface.getHeight()); + final Widget chatbox = client.getWidget(WidgetInfo.CHATBOX); + final Rectangle chatboxBounds = chatbox != null + ? chatbox.getBounds() : new Rectangle(0, bounds.height, 519, 165); + OverlayUtil.setGraphicProperties(graphics); final Point topLeftPoint = new Point(); topLeftPoint.move(BORDER_LEFT, BORDER_TOP); @@ -196,6 +200,8 @@ public class OverlayRenderer bottomLeftPoint.move(BORDER_LEFT, bounds.y + bounds.height - BORDER_BOTTOM); final Point bottomRightPoint = new Point(); bottomRightPoint.move(bounds.x + bounds.width - BORDER_RIGHT, bounds.y + bounds.height - BORDER_BOTTOM); + final Point rightChatboxPoint = new Point(); + rightChatboxPoint.move(bounds.x + chatboxBounds.width - BORDER_RIGHT,bounds.y + bounds.height - BORDER_BOTTOM); overlays.stream() .filter(overlay -> shouldDrawOverlay(client, overlay)) @@ -217,6 +223,9 @@ public class OverlayRenderer case TOP_RIGHT: subPosition.setLocation(topRightPoint); break; + case ABOVE_CHATBOX_RIGHT: + subPosition.setLocation(rightChatboxPoint); + break; } if (overlay.getPosition().equals(OverlayPosition.DYNAMIC)) @@ -249,6 +258,9 @@ public class OverlayRenderer case TOP_RIGHT: topRightPoint.y += dimension.height + (dimension.height == 0 ? 0 : PADDING); break; + case ABOVE_CHATBOX_RIGHT: + rightChatboxPoint.y -= dimension.height + (dimension.height == 0 ? 0 : PADDING); + break; } final Point transformed = OverlayUtil.transformPosition(overlay.getPosition(), dimension); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java index ef806ae40b..cf8d8215ce 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayUtil.java @@ -337,6 +337,7 @@ public class OverlayUtil result.y = result.y - dimension.height; break; case BOTTOM_RIGHT: + case ABOVE_CHATBOX_RIGHT: result.y = result.y - dimension.height; case TOP_RIGHT: result.x = result.x - dimension.width; From 5db8e7131880cdfb59c08451d7621284c56038a9 Mon Sep 17 00:00:00 2001 From: noremac201 Date: Tue, 2 Jan 2018 08:38:33 -0500 Subject: [PATCH 2/2] Change attack style plugin to use overlay position ABOVE_CHATBOX_RIGHT --- .../plugins/attackindicator/AttackIndicatorOverlay.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorOverlay.java index 134cd45907..bd5e890882 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorOverlay.java @@ -34,6 +34,8 @@ import net.runelite.client.ui.overlay.components.PanelComponent; public class AttackIndicatorOverlay extends Overlay { + private static final int COMPONENT_WIDTH = 80; + private final AttackIndicatorConfig config; private final AttackIndicatorPlugin plugin; private final PanelComponent panelComponent = new PanelComponent(); @@ -41,7 +43,7 @@ public class AttackIndicatorOverlay extends Overlay @Inject public AttackIndicatorOverlay(AttackIndicatorPlugin plugin, AttackIndicatorConfig config) { - setPosition(OverlayPosition.BOTTOM_RIGHT); + setPosition(OverlayPosition.ABOVE_CHATBOX_RIGHT); this.plugin = plugin; this.config = config; } @@ -56,7 +58,8 @@ public class AttackIndicatorOverlay extends Overlay final String attackStyleString = plugin.getAttackStyle().getName(); panelComponent.setTitle(attackStyleString); - panelComponent.setWidth(80); + panelComponent.setWidth(COMPONENT_WIDTH); + return panelComponent.render(graphics, parent); } }