Skip to content

Commit

Permalink
Merge pull request #557 from Shallowmallow/Slider
Browse files Browse the repository at this point in the history
update slider ticks when slider range changes
  • Loading branch information
ianharrigan authored Dec 24, 2023
2 parents ad7f527 + 3dbf580 commit ae76b99
Showing 1 changed file with 39 additions and 11 deletions.
50 changes: 39 additions & 11 deletions haxe/ui/components/Slider.hx
Original file line number Diff line number Diff line change
Expand Up @@ -216,10 +216,19 @@ private class MinBehaviour extends DataBehaviour {
if (range == null) {
return;
}
if (cast(_component, Slider).start == null) {
var slider = cast(_component, Slider);
if (slider.start == null) {
range.start = _value;
}
range.min = _value;
if (slider.minorTicks != null) {
--slider.minorTicks;
++slider.minorTicks;
}
if (slider.majorTicks != null) {
--slider.majorTicks;
++slider.majorTicks;
}
_component.invalidateComponentLayout();
}
}
Expand All @@ -231,7 +240,16 @@ private class MaxBehaviour extends DataBehaviour {
if (range == null) {
return;
}
var slider = cast(_component, Slider);
range.max = _value;
if (slider.minorTicks != null) {
--slider.minorTicks;
++slider.minorTicks;
}
if (slider.majorTicks != null) {
--slider.majorTicks;
++slider.majorTicks;
}
_component.invalidateComponentLayout();
}
}
Expand Down Expand Up @@ -288,17 +306,22 @@ private class MinorTicks extends DataBehaviour {
if (_value != null && _value.isNull == false) {
var slider:Slider = cast(_component, Slider);
var ticks = slider.findComponents("minor-tick", 1);
if (ticks == null || ticks.length == 0) {
var m:Float = slider.max - slider.min;
var v:Float = _value;
var n:Int = Std.int(m / v);
var v:Float = _value;
var m:Float = slider.max - slider.min;
var n:Int = Std.int(m / v) + 1;
if (ticks == null || ticks.length != n) {
var index = slider.getComponentIndex(slider.findComponent(Range));
for (_ in 0...n + 1) {
var addN = Std.int(n - ticks.length);
for (_ in 0...addN) {
var tick = new Component();
tick.addClass("minor-tick");
tick.scriptAccess = false;
slider.addComponentAt(tick, index + 1);
}
var removeN = Std.int(ticks.length - n);
for (_ in 0...removeN) {
slider.removeComponentAt(index + 1);
}
}
} else {
}
Expand All @@ -310,17 +333,22 @@ private class MajorTicks extends DataBehaviour {
if (_value != null && _value.isNull == false) {
var slider:Slider = cast(_component, Slider);
var ticks = slider.findComponents("major-tick", 1);
if (ticks == null || ticks.length == 0) {
var m:Float = slider.max - slider.min;
var v:Float = _value;
var n:Int = Std.int(m / v);
var v:Float = _value;
var m:Float = slider.max - slider.min;
var n:Int = Std.int(m / v) + 1;
if (ticks == null || ticks.length != n) {
var index = slider.getComponentIndex(slider.findComponent(Range));
for (_ in 0...n + 1) {
var addN = Std.int(n - ticks.length);
for (_ in 0...addN) {
var tick = new Component();
tick.addClass("major-tick");
tick.scriptAccess = false;
slider.addComponentAt(tick, index + 1);
}
var removeN = Std.int(ticks.length - n);
for (_ in 0...removeN) {
slider.removeComponentAt(index + 1);
}
}
} else {
}
Expand Down

0 comments on commit ae76b99

Please sign in to comment.