aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/gui/elements
diff options
context:
space:
mode:
authorsyeyoung <cyong06@naver.com>2021-07-30 11:43:38 +0900
committersyeyoung <cyong06@naver.com>2021-07-30 11:43:38 +0900
commit16a4367663f5ed2a909804de6d319c97c9854ecc (patch)
tree712c12bc6610659454fc00e4ea3f4be8fcdcc8ed /src/main/java/kr/syeyoung/dungeonsguide/gui/elements
parentee96b0e9475fed7e80c4f7037ec5ad44cf07f6c2 (diff)
downloadSkyblock-Dungeons-Guide-16a4367663f5ed2a909804de6d319c97c9854ecc.tar.gz
Skyblock-Dungeons-Guide-16a4367663f5ed2a909804de6d319c97c9854ecc.tar.bz2
Skyblock-Dungeons-Guide-16a4367663f5ed2a909804de6d319c97c9854ecc.zip
Cursors in gui elements
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/gui/elements')
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/gui/elements/MButton.java9
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MCollapsable.java7
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MPanelScaledGUI.java13
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MRootPanel.java9
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MScrollBar.java13
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/gui/elements/MTextField.java8
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/gui/elements/MToggleButton.java8
7 files changed, 67 insertions, 0 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MButton.java b/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MButton.java
index da2ff78c..1a1f30d4 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MButton.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MButton.java
@@ -20,6 +20,7 @@ package kr.syeyoung.dungeonsguide.gui.elements;
import kr.syeyoung.dungeonsguide.gui.MPanel;
import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.utils.cursor.EnumCursor;
import lombok.Getter;
import lombok.Setter;
import net.minecraft.client.Minecraft;
@@ -85,4 +86,12 @@ public class MButton extends MPanel {
public void mouseReleased(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int state) {
isclicked = false;
}
+
+
+ @Override
+ public void mouseMoved(int absMouseX, int absMouseY, int relMouseX0, int relMouseY0) {
+ if (lastAbsClip.contains(absMouseX, absMouseY) && enabled)
+ setCursor(EnumCursor.POINTING_HAND);
+ }
+
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MCollapsable.java b/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MCollapsable.java
index ef10377e..20fa2c93 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MCollapsable.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MCollapsable.java
@@ -19,6 +19,7 @@
package kr.syeyoung.dungeonsguide.gui.elements;
import kr.syeyoung.dungeonsguide.gui.MPanel;
+import kr.syeyoung.dungeonsguide.utils.cursor.EnumCursor;
import lombok.Getter;
import lombok.Setter;
import net.minecraft.client.Minecraft;
@@ -128,4 +129,10 @@ public class MCollapsable extends MPanel {
if (onPreferedSizeChange != null) onPreferedSizeChange.run();
}
}
+
+ @Override
+ public void mouseMoved(int absMouseX, int absMouseY, int relMouseX, int relMouseY) {
+ if (relMouseX >= leftPad && relMouseY >= 0 && relMouseX <= leftPad + 10 && relMouseY <= representing.getPreferredSize().height)
+ setCursor(EnumCursor.POINTING_HAND);
+ }
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MPanelScaledGUI.java b/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MPanelScaledGUI.java
index 64599058..4a1d30ee 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MPanelScaledGUI.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MPanelScaledGUI.java
@@ -196,4 +196,17 @@ public class MPanelScaledGUI extends MPanel {
}
mouseScrolled(absMouseX, absMouseY, relMousex, relMousey, scrollAmount);
}
+
+ @Override
+ public void mouseMoved0(int absMouseX, int absMouseY, int relMouseX0, int relMouseY0) {
+ int relMousex = (int) ((relMouseX0 - getBounds().x) / scale);
+ int relMousey = (int) ((relMouseY0 - getBounds().y) / scale);
+ absMouseX = (int) (absMouseX / scale);
+ absMouseY = (int) (absMouseY / scale);
+
+ mouseMoved(absMouseX, absMouseY, relMousex, relMousey);
+ for (MPanel childComponent : getChildComponents()) {
+ childComponent.mouseMoved0(absMouseX, absMouseY, relMousex, relMousey);
+ }
+ }
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MRootPanel.java b/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MRootPanel.java
index a6987241..d1d96a35 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MRootPanel.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MRootPanel.java
@@ -19,7 +19,9 @@
package kr.syeyoung.dungeonsguide.gui.elements;
import kr.syeyoung.dungeonsguide.gui.MPanel;
+import kr.syeyoung.dungeonsguide.utils.cursor.EnumCursor;
import lombok.Getter;
+import lombok.Setter;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -47,4 +49,11 @@ public class MRootPanel extends MPanel {
tooltips.remove(mTooltip);
remove(mTooltip);
}
+
+ @Getter @Setter
+ private EnumCursor currentCursor = EnumCursor.DEFAULT;
+ @Override
+ public void setCursor(EnumCursor enumCursor) {
+ currentCursor = enumCursor;
+ }
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MScrollBar.java b/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MScrollBar.java
index 215c7c6d..1797297a 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MScrollBar.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MScrollBar.java
@@ -21,6 +21,7 @@ package kr.syeyoung.dungeonsguide.gui.elements;
import kr.syeyoung.dungeonsguide.config.types.AColor;
import kr.syeyoung.dungeonsguide.gui.MPanel;
import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.utils.cursor.EnumCursor;
import lombok.Getter;
import lombok.Setter;
import net.minecraft.client.gui.Gui;
@@ -71,6 +72,7 @@ public class MScrollBar extends MPanel {
this.onUpdate = onUpdate;
}
+ private Rectangle lastThumbRect = new Rectangle();
@Override
public void render(int absMousex, int absMousey, int relMousex0, int relMousey0, float partialTicks, Rectangle scissor) {
// RENDER SUPER NICE SCROLL BAR
@@ -93,12 +95,14 @@ public class MScrollBar extends MPanel {
endX = Math.max(endX, startX + 20);
Gui.drawRect(startX,0,endX,getBounds().height, color);
+ lastThumbRect.x = startX; lastThumbRect.y = 0; lastThumbRect.width = endX - startX; lastThumbRect.height = getBounds().height;
} else if (axis == Axis.Y) {
int startY = (int) (startPerc * getBounds().height);
int endY = (int) (endPerc * getBounds().height);
endY = Math.max(endY, startY + 20);
Gui.drawRect(0,startY,getBounds().width,endY, color);
+ lastThumbRect.x = 0; lastThumbRect.y = startY; lastThumbRect.width = getBounds().width; lastThumbRect.height = endY - startY;
}
}
@@ -146,4 +150,13 @@ public class MScrollBar extends MPanel {
public static enum Axis {
X, Y
}
+
+
+ @Override
+ public void mouseMoved(int absMouseX, int absMouseY, int relMouseX0, int relMouseY0) {
+ if (grabbed)
+ setCursor(EnumCursor.CLOSED_HAND);
+ else if (lastThumbRect.contains(relMouseX0, relMouseY0))
+ setCursor(EnumCursor.OPEN_HAND);
+ }
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MTextField.java b/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MTextField.java
index 6d8b3f51..6054a68f 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MTextField.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MTextField.java
@@ -20,6 +20,7 @@ package kr.syeyoung.dungeonsguide.gui.elements;
import kr.syeyoung.dungeonsguide.gui.MPanel;
import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.utils.cursor.EnumCursor;
import lombok.Getter;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
@@ -371,4 +372,11 @@ public class MTextField extends MPanel {
block != Character.UnicodeBlock.SPECIALS;
}
+
+ @Override
+ public void mouseMoved(int absMouseX, int absMouseY, int relMouseX0, int relMouseY0) {
+ if (lastAbsClip.contains(absMouseX, absMouseY))
+ setCursor(EnumCursor.BEAM_CURSOR);
+ }
+
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MToggleButton.java b/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MToggleButton.java
index 5b99959f..d3a3fe06 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MToggleButton.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/gui/elements/MToggleButton.java
@@ -20,6 +20,7 @@ package kr.syeyoung.dungeonsguide.gui.elements;
import kr.syeyoung.dungeonsguide.gui.MPanel;
import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.utils.cursor.EnumCursor;
import lombok.Getter;
import lombok.Setter;
import net.minecraft.client.Minecraft;
@@ -76,4 +77,11 @@ public class MToggleButton extends MPanel {
onToggle.run();
}
}
+
+
+ @Override
+ public void mouseMoved(int absMouseX, int absMouseY, int relMouseX0, int relMouseY0) {
+ if (lastAbsClip.contains(absMouseX, absMouseY))
+ setCursor(EnumCursor.POINTING_HAND);
+ }
}