From c2f41b90566264411a8c4b13904a056b0fea69d2 Mon Sep 17 00:00:00 2001 From: Fain <25233821+jcfain@users.noreply.github.com> Date: Wed, 9 Apr 2025 10:09:05 -0400 Subject: [PATCH 1/2] Make L0 range slider follow the val of its min/max counterpart instead of modifying the min/max. --- src/Device/TCodeDevice.UI.cs | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/src/Device/TCodeDevice.UI.cs b/src/Device/TCodeDevice.UI.cs index d881a70..1baab43 100644 --- a/src/Device/TCodeDevice.UI.cs +++ b/src/Device/TCodeDevice.UI.cs @@ -150,10 +150,34 @@ private void CreateL0AxisUI(IUIBuilder builder) var group = new UIGroup(builder); var visible = false; L0AxisTitle = builder.CreateButton("Up/Down | L0", () => group.SetVisible(visible = !visible), Color.red * 0.8f, Color.white, true); - RangeMaxL0Slider = group.CreateSlider("Device:L0:RangeMax", "Range Max (%)", 1f, 0.01f, 1f, v => RangeMinL0Slider.max = v - 0.01f, true, true, true, "P0"); - RangeMinL0Slider = group.CreateSlider("Device:L0:RangeMin", "Range Min (%)", 0f, 0f, 0.99f, v => RangeMaxL0Slider.min = v + 0.01f, true, true, true, "P0"); - OutputMaxL0Slider = group.CreateSlider("Device:L0:OutputMax", "Output Max (%)", 1f, 0f, 1f, v => OutputMinL0Slider.max = v, true, true, true, "P0"); - OutputMinL0Slider = group.CreateSlider("Device:L0:OutputMin", "Output Min (%)", 0, 0f, 1f, v => OutputMaxL0Slider.min = v, true, true, true, "P0"); + RangeMaxL0Slider = group.CreateSlider("Device:L0:RangeMax", "Range Max (%)", 1f, 0.01f, 1f, v => + { + if(RangeMinL0Slider.val >= v) + { + RangeMinL0Slider.val = v - 0.01f; + } + }, true, true, true, "P0"); + RangeMinL0Slider = group.CreateSlider("Device:L0:RangeMin", "Range Min (%)", 0f, 0f, 0.99f, v => + { + if(RangeMaxL0Slider.val <= v) + { + RangeMaxL0Slider.val = v + 0.01f; + } + }, true, true, true, "P0"); + OutputMaxL0Slider = group.CreateSlider("Device:L0:OutputMax", "Output Max (%)", 1f, 0.01f, 1f, v => + { + if(OutputMinL0Slider.val >= v) + { + OutputMinL0Slider.val = v - 0.01f; + } + }, true, true, true, "P0"); + OutputMinL0Slider = group.CreateSlider("Device:L0:OutputMin", "Output Min (%)", 0f, 0f, 0.99f, v => + { + if(OutputMaxL0Slider.val <= v) + { + OutputMaxL0Slider.val = v + 0.01f; + } + }, true, true, true, "P0"); InvertL0Toggle = group.CreateToggle("Device:L0:Invert", "Invert", true, true); EnableOverrideL0Toggle = group.CreateToggle("Device:L0:EnableOverride", "Enable Override", false, true); OverrideL0Slider = group.CreateSlider("Device:L0:Override", "Override Value (%)", 0.5f, 0f, 1f, true, true, true, "P0"); From 6edb61080e30bce228079a4e9cc65c5a23cec5ee Mon Sep 17 00:00:00 2001 From: Yoooi Date: Thu, 1 Jan 2026 18:17:59 +0100 Subject: [PATCH 2/2] Cleanup --- src/Device/TCodeDevice.UI.cs | 32 ++++---------------------------- 1 file changed, 4 insertions(+), 28 deletions(-) diff --git a/src/Device/TCodeDevice.UI.cs b/src/Device/TCodeDevice.UI.cs index 1baab43..32df337 100644 --- a/src/Device/TCodeDevice.UI.cs +++ b/src/Device/TCodeDevice.UI.cs @@ -150,34 +150,10 @@ private void CreateL0AxisUI(IUIBuilder builder) var group = new UIGroup(builder); var visible = false; L0AxisTitle = builder.CreateButton("Up/Down | L0", () => group.SetVisible(visible = !visible), Color.red * 0.8f, Color.white, true); - RangeMaxL0Slider = group.CreateSlider("Device:L0:RangeMax", "Range Max (%)", 1f, 0.01f, 1f, v => - { - if(RangeMinL0Slider.val >= v) - { - RangeMinL0Slider.val = v - 0.01f; - } - }, true, true, true, "P0"); - RangeMinL0Slider = group.CreateSlider("Device:L0:RangeMin", "Range Min (%)", 0f, 0f, 0.99f, v => - { - if(RangeMaxL0Slider.val <= v) - { - RangeMaxL0Slider.val = v + 0.01f; - } - }, true, true, true, "P0"); - OutputMaxL0Slider = group.CreateSlider("Device:L0:OutputMax", "Output Max (%)", 1f, 0.01f, 1f, v => - { - if(OutputMinL0Slider.val >= v) - { - OutputMinL0Slider.val = v - 0.01f; - } - }, true, true, true, "P0"); - OutputMinL0Slider = group.CreateSlider("Device:L0:OutputMin", "Output Min (%)", 0f, 0f, 0.99f, v => - { - if(OutputMaxL0Slider.val <= v) - { - OutputMaxL0Slider.val = v + 0.01f; - } - }, true, true, true, "P0"); + RangeMaxL0Slider = group.CreateSlider("Device:L0:RangeMax", "Range Max (%)", 1f, 0.01f, 1f, v => RangeMinL0Slider.val = Mathf.Clamp(RangeMinL0Slider.val, 0f, v - 0.01f), true, true, true, "P0"); + RangeMinL0Slider = group.CreateSlider("Device:L0:RangeMin", "Range Min (%)", 0f, 0f, 0.99f, v => RangeMaxL0Slider.val = Mathf.Clamp(RangeMaxL0Slider.val, v + 0.01f, 1f), true, true, true, "P0"); + OutputMaxL0Slider = group.CreateSlider("Device:L0:OutputMax", "Output Max (%)", 1f, 0.01f, 1f, v => OutputMinL0Slider.val = Mathf.Clamp(OutputMinL0Slider.val, 0f, v - 0.01f), true, true, true, "P0"); + OutputMinL0Slider = group.CreateSlider("Device:L0:OutputMin", "Output Min (%)", 0f, 0f, 0.99f, v => OutputMaxL0Slider.val = Mathf.Clamp(OutputMaxL0Slider.val, v + 0.01f, 1f), true, true, true, "P0"); InvertL0Toggle = group.CreateToggle("Device:L0:Invert", "Invert", true, true); EnableOverrideL0Toggle = group.CreateToggle("Device:L0:EnableOverride", "Enable Override", false, true); OverrideL0Slider = group.CreateSlider("Device:L0:Override", "Override Value (%)", 0.5f, 0f, 1f, true, true, true, "P0");