aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/isxander/yacl/gui/controllers/slider
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/dev/isxander/yacl/gui/controllers/slider')
-rw-r--r--src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java b/src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java
index dd977f7..4a0061b 100644
--- a/src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java
+++ b/src/main/java/dev/isxander/yacl/gui/controllers/slider/SliderControllerElement.java
@@ -119,19 +119,22 @@ public class SliderControllerElement extends ControllerWidget<ISliderController<
return super.isMouseOver(mouseX, mouseY) || mouseDown;
}
- private void setValueFromMouse(double mouseX) {
+ protected void setValueFromMouse(double mouseX) {
double value = (mouseX - sliderBounds.x()) / sliderBounds.width() * control.range();
- double roundedValue = MathHelper.clamp(min + (interval * Math.round(value / interval)), min, max); // extremely imprecise, requires clamping
- control.setPendingValue(roundedValue);
+ control.setPendingValue(roundToInterval(value));
calculateInterpolation();
}
+ protected double roundToInterval(double value) {
+ return MathHelper.clamp(min + (interval * Math.round(value / interval)), min, max); // extremely imprecise, requires clamping
+ }
+
@Override
protected int getHoveredControlWidth() {
return sliderBounds.width() + getUnhoveredControlWidth() + 6 + getThumbWidth() / 2;
}
- private void calculateInterpolation() {
+ protected void calculateInterpolation() {
interpolation = (float) ((control.pendingValue() - control.min()) * 1 / control.range());
}
@@ -141,11 +144,11 @@ public class SliderControllerElement extends ControllerWidget<ISliderController<
sliderBounds = Dimension.ofInt(dim.xLimit() - getXPadding() - getThumbWidth() / 2 - dim.width() / 3, dim.centerY() - 5, dim.width() / 3, 10);
}
- private int getThumbX() {
+ protected int getThumbX() {
return (int) (sliderBounds.x() + sliderBounds.width() * interpolation);
}
- private int getThumbWidth() {
+ protected int getThumbWidth() {
return 4;
}