From 3db44bab85f4f9e0903befbd9ce444933682e623 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Sat, 21 Feb 2026 22:37:56 +0100 Subject: [PATCH] Fixed HexInput and stuff --- .../org/saturnclient/ui2/SaturnScreen.java | 20 ++++++++++ .../ui2/components/ElementRenderer.java | 39 +++++++++++++------ .../ui2/components/inputs/HexInput.java | 9 +++-- .../org/saturnclient/ui2/elements/Scroll.java | 10 +++++ 4 files changed, 63 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/saturnclient/ui2/SaturnScreen.java b/src/main/java/org/saturnclient/ui2/SaturnScreen.java index 05bde40..c6af321 100644 --- a/src/main/java/org/saturnclient/ui2/SaturnScreen.java +++ b/src/main/java/org/saturnclient/ui2/SaturnScreen.java @@ -129,6 +129,26 @@ public abstract class SaturnScreen extends Screen { return false; } + @Override + public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { + mouseX *= 2; + mouseY *= 2; + + ElementRenderer.mouseDragged(elements, mouseX, mouseY, button, deltaX, deltaY); + + return super.mouseReleased(mouseX, mouseY, button); + } + + @Override + public boolean mouseReleased(double mouseX, double mouseY, int button) { + mouseX *= 2; + mouseY *= 2; + + ElementRenderer.mouseReleased(elements, mouseX, mouseY, button); + + return super.mouseReleased(mouseX, mouseY, button); + } + @Override public boolean mouseScrolled( double mouseX, diff --git a/src/main/java/org/saturnclient/ui2/components/ElementRenderer.java b/src/main/java/org/saturnclient/ui2/components/ElementRenderer.java index d7b9a02..ee165da 100644 --- a/src/main/java/org/saturnclient/ui2/components/ElementRenderer.java +++ b/src/main/java/org/saturnclient/ui2/components/ElementRenderer.java @@ -14,7 +14,7 @@ public class ElementRenderer { synchronized (elements) { elements.add(element); } - + if (element.animation != null) { element.animation.init(element); @@ -44,7 +44,10 @@ public class ElementRenderer { int adjustedMouseX = (int) mouseX - element.x; int adjustedMouseY = (int) mouseY - element.y; - if (element.opacity > 0 && Utils.isHovering(adjustedMouseX, adjustedMouseY, element.width, element.height, element.scale)) { + element.mouseClicked(adjustedMouseX * element.scale, adjustedMouseY * element.scale, button); + + if (element.opacity > 0 && Utils.isHovering(adjustedMouseX, adjustedMouseY, element.width, + element.height, element.scale)) { element.focused = true; element.click((int) (adjustedMouseX * element.scale), (int) (adjustedMouseY * element.scale)); } @@ -58,16 +61,17 @@ public class ElementRenderer { double mouseY, double horizontalAmount, double verticalAmount) { - for (Element element : new ArrayList<>(elements)) { - if (Utils.isHovering((int) mouseX - element.x, (int) mouseY - element.y, element.width, element.height, element.scale)) { - element.scroll( - (int) mouseX - element.x, - (int) mouseY - element.y, - horizontalAmount, - verticalAmount); - } - } + for (Element element : new ArrayList<>(elements)) { + if (Utils.isHovering((int) mouseX - element.x, (int) mouseY - element.y, element.width, element.height, + element.scale)) { + element.scroll( + (int) mouseX - element.x, + (int) mouseY - element.y, + horizontalAmount, + verticalAmount); } + } + } public static void keyPressed(List elements, int keyCode, int scanCode, int modifiers) { for (Element element : new ArrayList<>(elements)) { @@ -81,4 +85,17 @@ public class ElementRenderer { } } } + + public static void mouseDragged(List elements, double mouseX, double mouseY, int button, double deltaX, + double deltaY) { + for (Element element : new ArrayList<>(elements)) { + element.mouseDragged(mouseX - element.x, mouseY - element.y, button, deltaX, deltaY); + } + } + + public static void mouseReleased(List elements, double mouseX, double mouseY, int button) { + for (Element element : new ArrayList<>(elements)) { + element.mouseReleased(mouseX - element.x, mouseY - element.y, button); + } + } } diff --git a/src/main/java/org/saturnclient/ui2/components/inputs/HexInput.java b/src/main/java/org/saturnclient/ui2/components/inputs/HexInput.java index 8a1864e..f46e28a 100644 --- a/src/main/java/org/saturnclient/ui2/components/inputs/HexInput.java +++ b/src/main/java/org/saturnclient/ui2/components/inputs/HexInput.java @@ -40,15 +40,16 @@ public class HexInput extends Element { @Override public void mouseClicked(double mouseX, double mouseY, int button) { - if (open && mouseX >= width + 8 && mouseX <= width && mouseY >= 0 && mouseY <= height) { - handlePickerClick(mouseX - width, mouseY); + if (open) { + handlePickerClick(mouseX - width - 8, mouseY); } } @Override public void mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - if (open) - handlePickerDrag(mouseX - width, mouseY); + if (open) { + handlePickerDrag(mouseX - width - 8, mouseY); + } } @Override diff --git a/src/main/java/org/saturnclient/ui2/elements/Scroll.java b/src/main/java/org/saturnclient/ui2/elements/Scroll.java index 7a751cc..4ebd219 100644 --- a/src/main/java/org/saturnclient/ui2/elements/Scroll.java +++ b/src/main/java/org/saturnclient/ui2/elements/Scroll.java @@ -117,4 +117,14 @@ public class Scroll extends Element { public void keyPressed(int keyCode, int scanCode, int modifiers) { ElementRenderer.keyPressed(children, keyCode, scanCode, modifiers); } + + @Override + public void mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { + ElementRenderer.mouseDragged(children, mouseX - padding, mouseY - padding + scroll, button, deltaX, deltaY); + } + + @Override + public void mouseReleased(double mouseX, double mouseY, int button) { + ElementRenderer.mouseReleased(children, mouseX - padding, mouseY - padding + scroll, button); + } }