mirror of
https://github.com/Shiewk/Widgets.git
synced 2026-04-28 11:34:17 +02:00
Add mouse cursor changing
This commit is contained in:
@@ -6,6 +6,7 @@ import de.shiewk.widgets.WidgetSettings;
|
|||||||
import de.shiewk.widgets.client.WidgetManager;
|
import de.shiewk.widgets.client.WidgetManager;
|
||||||
import net.minecraft.client.gui.Click;
|
import net.minecraft.client.gui.Click;
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
|
import net.minecraft.client.gui.cursor.StandardCursors;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.client.gui.tooltip.Tooltip;
|
import net.minecraft.client.gui.tooltip.Tooltip;
|
||||||
import net.minecraft.client.gui.widget.ButtonWidget;
|
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||||
@@ -92,6 +93,10 @@ public class EditWidgetPositionsScreen extends AnimatedScreen {
|
|||||||
}
|
}
|
||||||
widget.render(context, mt, textRenderer, wx, wy);
|
widget.render(context, mt, textRenderer, wx, wy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (hoveredWidget != null){
|
||||||
|
context.setCursor(StandardCursors.RESIZE_ALL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean canAlign(int val1, int val2){
|
private boolean canAlign(int val1, int val2){
|
||||||
|
|||||||
@@ -2,8 +2,9 @@ package de.shiewk.widgets.client.screen;
|
|||||||
|
|
||||||
import de.shiewk.widgets.ModWidget;
|
import de.shiewk.widgets.ModWidget;
|
||||||
import de.shiewk.widgets.client.screen.components.WidgetSettingsEditWidget;
|
import de.shiewk.widgets.client.screen.components.WidgetSettingsEditWidget;
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.*;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
|
import net.minecraft.client.gui.widget.ClickableWidget;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
import net.minecraft.util.Util;
|
import net.minecraft.util.Util;
|
||||||
|
|
||||||
@@ -34,6 +35,16 @@ public class WidgetSettingsScreen extends AnimatedScreen {
|
|||||||
widget.render(context, Util.getMeasuringTimeNano(), textRenderer, (int) ((float) (this.width * 3) / 4 - (widget.width() * widget.getScaleFactor()) / 2), (int) ((float) this.height / 2 - (widget.height() * widget.getScaleFactor()) / 2));
|
widget.render(context, Util.getMeasuringTimeNano(), textRenderer, (int) ((float) (this.width * 3) / 4 - (widget.width() * widget.getScaleFactor()) / 2), (int) ((float) this.height / 2 - (widget.height() * widget.getScaleFactor()) / 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean mouseReleased(Click click) {
|
||||||
|
for (Element child : children()) {
|
||||||
|
if (child instanceof ClickableWidget s){
|
||||||
|
s.mouseReleased(click);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return super.mouseReleased(click);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void close() {
|
public void close() {
|
||||||
assert client != null;
|
assert client != null;
|
||||||
|
|||||||
@@ -90,8 +90,7 @@ public class WidgetListWidget extends ScrollableWidget {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (super.checkScrollbarDragged(newClick)) return true;
|
return super.checkScrollbarDragged(newClick);
|
||||||
return super.mouseClicked(newClick, doubled);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+1
-2
@@ -100,8 +100,7 @@ public class WidgetSettingsEditWidget extends ScrollableWidget {
|
|||||||
customSetting.setFocused(false);
|
customSetting.setFocused(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (checkScrollbarDragged(click)) return true;
|
return checkScrollbarDragged(click);
|
||||||
return super.mouseClicked(click, doubled);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import net.minecraft.client.MinecraftClient;
|
|||||||
import net.minecraft.client.font.TextRenderer;
|
import net.minecraft.client.font.TextRenderer;
|
||||||
import net.minecraft.client.gui.Click;
|
import net.minecraft.client.gui.Click;
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
|
import net.minecraft.client.gui.cursor.StandardCursors;
|
||||||
import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder;
|
import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder;
|
||||||
import net.minecraft.client.gui.widget.ClickableWidget;
|
import net.minecraft.client.gui.widget.ClickableWidget;
|
||||||
import net.minecraft.text.OrderedText;
|
import net.minecraft.text.OrderedText;
|
||||||
@@ -66,6 +67,10 @@ public class WidgetWidget extends ClickableWidget {
|
|||||||
context.drawText(textRenderer, t, getX() + 5 + ((getWidth() - 5) / 2) - (textRenderer.getWidth(t) / 2), y, COLOR_FG, false);
|
context.drawText(textRenderer, t, getX() + 5 + ((getWidth() - 5) / 2) - (textRenderer.getWidth(t) / 2), y, COLOR_FG, false);
|
||||||
}
|
}
|
||||||
this.renderToggleButton(context, mouseX, mouseY, widgetEnabled);
|
this.renderToggleButton(context, mouseX, mouseY, widgetEnabled);
|
||||||
|
|
||||||
|
if (hover || isMouseOverToggle(mouseX, mouseY)){
|
||||||
|
context.setCursor(StandardCursors.POINTING_HAND);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import net.minecraft.client.MinecraftClient;
|
|||||||
import net.minecraft.client.font.TextRenderer;
|
import net.minecraft.client.font.TextRenderer;
|
||||||
import net.minecraft.client.gui.Click;
|
import net.minecraft.client.gui.Click;
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
|
import net.minecraft.client.gui.cursor.StandardCursors;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@@ -74,6 +75,9 @@ public class EnumWidgetSetting<T extends Enum<T>> extends WidgetSettingOption {
|
|||||||
this.value = constant;
|
this.value = constant;
|
||||||
this.changed = true;
|
this.changed = true;
|
||||||
}
|
}
|
||||||
|
if (hover){
|
||||||
|
context.setCursor(StandardCursors.POINTING_HAND);
|
||||||
|
}
|
||||||
nx += textRendererWidth + 20;
|
nx += textRendererWidth + 20;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import net.minecraft.client.MinecraftClient;
|
|||||||
import net.minecraft.client.font.TextRenderer;
|
import net.minecraft.client.font.TextRenderer;
|
||||||
import net.minecraft.client.gui.Click;
|
import net.minecraft.client.gui.Click;
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
|
import net.minecraft.client.gui.cursor.StandardCursors;
|
||||||
import net.minecraft.client.input.KeyInput;
|
import net.minecraft.client.input.KeyInput;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
@@ -71,6 +72,16 @@ public class IntSliderWidgetSetting extends WidgetSettingOption {
|
|||||||
this.changed = true;
|
this.changed = true;
|
||||||
this.value = MathHelper.clamp(xPosToValue(mouseX), minValue, maxValue);
|
this.value = MathHelper.clamp(xPosToValue(mouseX), minValue, maxValue);
|
||||||
}
|
}
|
||||||
|
if (isHovering(mouseX, mouseY)){
|
||||||
|
context.setCursor(StandardCursors.RESIZE_EW);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isHovering(int mouseX, int mouseY) {
|
||||||
|
return mouseX >= this.getX()
|
||||||
|
&& mouseY >= this.getY()
|
||||||
|
&& getY() + getHeight() > mouseY
|
||||||
|
&& getX() + getWidth() > mouseX;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import net.minecraft.client.MinecraftClient;
|
|||||||
import net.minecraft.client.font.TextRenderer;
|
import net.minecraft.client.font.TextRenderer;
|
||||||
import net.minecraft.client.gui.Click;
|
import net.minecraft.client.gui.Click;
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
|
import net.minecraft.client.gui.cursor.StandardCursors;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
|
||||||
@@ -105,6 +106,17 @@ public class RGBAColorWidgetSetting extends WidgetSettingOption {
|
|||||||
case 4 -> a = col;
|
case 4 -> a = col;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (
|
||||||
|
(mouseY > this.getY() + 5 && mouseY < this.getY() + 20)
|
||||||
|
|| (mouseY > this.getY() + 25 && mouseY < this.getY() + 40)
|
||||||
|
|| (mouseY > this.getY() + 45 && mouseY < this.getY() + 60)
|
||||||
|
|| (mouseY > this.getY() + 65 && mouseY < this.getY() + 80)
|
||||||
|
&& mouseX > getX() + 5 + 7 && mouseX < getX() + getWidth()
|
||||||
|
) {
|
||||||
|
context.setCursor(StandardCursors.RESIZE_EW);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import de.shiewk.widgets.WidgetSettingOption;
|
|||||||
import de.shiewk.widgets.utils.WidgetUtils;
|
import de.shiewk.widgets.utils.WidgetUtils;
|
||||||
import net.minecraft.client.gui.Click;
|
import net.minecraft.client.gui.Click;
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
|
import net.minecraft.client.gui.cursor.StandardCursors;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
import net.minecraft.util.Util;
|
import net.minecraft.util.Util;
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
@@ -54,6 +55,17 @@ public class ToggleWidgetSetting extends WidgetSettingOption {
|
|||||||
: value ? getX() + getWidth() - 4 - 12 : getX() + 4;
|
: value ? getX() + getWidth() - 4 - 12 : getX() + 4;
|
||||||
context.fill(getX() + 2, getY() + 2, getX() + getWidth() - 2, getY() + getHeight() - 2, col);
|
context.fill(getX() + 2, getY() + 2, getX() + getWidth() - 2, getY() + getHeight() - 2, col);
|
||||||
context.fill(thumbLoc, getY() + 4, thumbLoc + 12, getY() + getHeight() - 4, thumb);
|
context.fill(thumbLoc, getY() + 4, thumbLoc + 12, getY() + getHeight() - 4, thumb);
|
||||||
|
|
||||||
|
if (isHovering(mouseX, mouseY)){
|
||||||
|
context.setCursor(StandardCursors.POINTING_HAND);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isHovering(int mouseX, int mouseY) {
|
||||||
|
return mouseX >= this.getX()
|
||||||
|
&& mouseY >= this.getY()
|
||||||
|
&& getY() + getHeight() > mouseY
|
||||||
|
&& getX() + getWidth() > mouseX;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user