From 6369d6df7d61d6ba21403372deb78ee2a11c38bf Mon Sep 17 00:00:00 2001 From: Victoria Plitt Date: Sun, 24 Apr 2022 10:28:31 +0300 Subject: Changes in GUI - slider offset text bugMarginOffsetSliderConverter. Related Work Items: #6335 --- .../Converters/MarginOffsetSliderConverter .cs | 67 ++++++++++------------ .../Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml | 2 +- .../Modules/Tango.PPC.JobsV2/Views/JobView.xaml | 17 +++--- .../TouchColorPickerControls/MultiRangeSlider.cs | 11 ++-- 4 files changed, 44 insertions(+), 53 deletions(-) (limited to 'Software') diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/MarginOffsetSliderConverter .cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/MarginOffsetSliderConverter .cs index 2de366d3b..e71994e1d 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/MarginOffsetSliderConverter .cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/MarginOffsetSliderConverter .cs @@ -18,73 +18,66 @@ namespace Tango.PPC.Jobs.Converters Middle = 2, Right = 3 }; - private double _leftOffset; - private double _middleOffset; - private double _rightOffset; - + public MarginOffsetSliderConverter() { - _leftOffset = _middleOffset = _rightOffset = 0; + } public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { - if(values.Count() < 5) + if(values.Count() < 3 ) return new Thickness(0, 0, 0, 0); double sliderValue = System.Convert.ToDouble(values[0]); - double sliderMaximum = System.Convert.ToDouble(values[1]); - double sliderMinimum = System.Convert.ToDouble(values[2]); - if (sliderMaximum == sliderMinimum) - sliderMaximum = sliderMinimum + 1; + var slider_width = System.Convert.ToDouble(values[1]); + if(slider_width == 0) + return new Thickness(0, 0, 0, 0); + if (slider_width > 10) + slider_width -= 10;//thumb offset; - var slider_width = System.Convert.ToDouble(values[3]); - if (slider_width > 60) - slider_width -= 60; - - double xValRation = sliderValue / (sliderMaximum - sliderMinimum); - double thumbPos = Math.Round(xValRation * slider_width, 0, MidpointRounding.AwayFromZero); + double thumbPos = Math.Round((sliderValue * slider_width)/100, 0, MidpointRounding.AwayFromZero); SliderType type = (SliderType)Enum.Parse(typeof(SliderType), System.Convert.ToString(parameter)); - var widthOfText = System.Convert.ToDouble(values[4]); + var widthOfText = System.Convert.ToDouble(values[2]); switch (type) { case SliderType.Left: { - _leftOffset = Math.Min((slider_width - widthOfText), Math.Max(thumbPos, 0)); + var leftOffset = Math.Max( 0, thumbPos - widthOfText / 2); + var middleoffsetLeft = System.Convert.ToDouble(values[3]); - if(_middleOffset > widthOfText) - _leftOffset = Math.Min(_leftOffset, _middleOffset - widthOfText); - - - return new Thickness(_leftOffset, 0, 0, 0); + if (middleoffsetLeft > widthOfText) + leftOffset = Math.Min(leftOffset, (middleoffsetLeft - widthOfText - 5)); + + return new Thickness(leftOffset, 0, 0, 0); } case SliderType.Middle: { - _middleOffset = Math.Min((slider_width - widthOfText-5), Math.Max(thumbPos, 0)); + var leftoffsetTextWidth = System.Convert.ToDouble(values[3]); + var rightoffsetTextWidth = System.Convert.ToDouble(values[4]); + + var middleOffset = Math.Max(leftoffsetTextWidth + 5, thumbPos - widthOfText / 2); + var rightBorder = rightoffsetTextWidth > 0 ? (slider_width - (rightoffsetTextWidth + 12)) : slider_width - (widthOfText + 12); - _middleOffset = Math.Max(_middleOffset, _leftOffset + widthOfText); - if(_rightOffset > (widthOfText+5)) - _middleOffset = Math.Min(_middleOffset, (_rightOffset- widthOfText-5)); + middleOffset = Math.Min(middleOffset , (rightBorder - widthOfText)); + - return new Thickness(_middleOffset, 0, 0, 0); + return new Thickness(middleOffset, 0, 0, 0); } case SliderType.Right: { - _rightOffset = Math.Min((slider_width - widthOfText/2), Math.Max(thumbPos, 0)); - if(_rightOffset == 0 && slider_width > widthOfText) - { - _rightOffset = slider_width - widthOfText / 2; - } - - _rightOffset = Math.Max((_middleOffset + widthOfText), _rightOffset); - - return new Thickness(_rightOffset, 0, 0, 0); + var middleoffsetBorder = System.Convert.ToDouble(values[3]); + var middleoffsetBorderWidth = System.Convert.ToDouble(values[4]); + + var rightOffset = Math.Min((slider_width - widthOfText), thumbPos - widthOfText/2); + rightOffset = Math.Max(((middleoffsetBorder + middleoffsetBorderWidth) + 12), rightOffset); + return new Thickness(rightOffset, 0, 0, 0); } } return new Thickness(thumbPos, 0, 0, 0); diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml index 652e9e6d8..769fc97a5 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml @@ -66,7 +66,7 @@ - + diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml index 61cb6d643..1cdde69ac 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml @@ -244,44 +244,43 @@ - + - - + - + - - + + - + - - + + diff --git a/Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/MultiRangeSlider.cs b/Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/MultiRangeSlider.cs index 4ee029bbb..31342159d 100644 --- a/Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/MultiRangeSlider.cs +++ b/Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/MultiRangeSlider.cs @@ -228,13 +228,12 @@ namespace Tango.Touch.Controls private double ValidateValue(double value) { - if (value > MinimumValue + TickFrequency && value < MaximumValue - TickFrequency) + if (value >= MinimumValue && value <= MaximumValue ) return value; - if (Math.Abs(value - MaximumValue) < TickFrequency) - return IsLast ? MaximumValue : (MaximumValue - TickFrequency); - if (Math.Abs(value - MinimumValue) < TickFrequency) - return IsFirst ? MinimumValue : (MinimumValue + TickFrequency); - + if ((value ) > MaximumValue) + return MaximumValue; + if ((value ) < MinimumValue) + return MinimumValue ; return double.NaN; } -- cgit v1.3.1