diff options
| author | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2022-04-24 10:28:31 +0300 |
|---|---|---|
| committer | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2022-04-24 10:28:31 +0300 |
| commit | 6369d6df7d61d6ba21403372deb78ee2a11c38bf (patch) | |
| tree | f7e32ad6a329ce18d78abdac5853ea108983207b /Software | |
| parent | 99ff096ba2b427e72620c9bb91022db49bfc3557 (diff) | |
| download | Tango-6369d6df7d61d6ba21403372deb78ee2a11c38bf.tar.gz Tango-6369d6df7d61d6ba21403372deb78ee2a11c38bf.zip | |
Changes in GUI - slider offset text bugMarginOffsetSliderConverter.
Related Work Items: #6335
Diffstat (limited to 'Software')
4 files changed, 44 insertions, 53 deletions
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 @@ <DockPanel Margin="0 50 0 0" HorizontalAlignment="Stretch"> <TextBlock HorizontalAlignment="Left" Margin="0 10 0 0" Text="Job Name" FontSize="{StaticResource TangoDialogFontSize}" Width="155"/> <Border Margin="49 0 0 0" BorderThickness="1" Height="44" CornerRadius="22" BorderBrush="{StaticResource TangoMidAccentBrush}"> - <touch:TouchTextBox Margin="20 10 0 10" FontSize="{StaticResource TangoComboBoxItemFontSize}" Text="{Binding JobName}" IsEnabled="True" HorizontalAlignment="Left" MinWidth="250" VerticalAlignment="Center" FocusSelectionMode="SelectAll" KeyboardMode="AlphaNumeric" KeyboardAction="Next" KeyboardNavigation.TabIndex="1" keyboard:KeyboardView.Container="{Binding ElementName=Container}"></touch:TouchTextBox> + <touch:TouchTextBox Margin="20 0 0 10" FontSize="{StaticResource TangoComboBoxItemFontSize}" Text="{Binding JobName}" IsEnabled="True" HorizontalAlignment="Left" MinWidth="250" VerticalAlignment="Center" FocusSelectionMode="SelectAll" KeyboardMode="AlphaNumeric" KeyboardAction="Next" KeyboardNavigation.TabIndex="1" keyboard:KeyboardView.Container="{Binding ElementName=Container}"></touch:TouchTextBox> </Border> </DockPanel > <DockPanel HorizontalAlignment="Stretch" Margin="0 50 0 0"> 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 @@ </DockPanel> <Grid Grid.Row="1" x:Name="displayOffset" Margin="0 10 0 -11" Visibility="{Binding IsGradient, Converter={StaticResource BooleanToVisibilityConverter}}"> - <Border Visibility="{Binding IsGradient, Converter={StaticResource BooleanToVisibilityConverter}}"> + <Border x:Name="leftoffsetBorder" Visibility="{Binding IsGradient, Converter={StaticResource BooleanToVisibilityConverter}}"> <TextBlock x:Name="leftoffsetLabel" HorizontalAlignment="Left" MaxWidth="80" Margin="0 0 10 0" FontSize="{StaticResource TangoSmallFontSize}" Foreground="{StaticResource TangoNotificationBarMaskBrush}" Text="{Binding LeftOffsetLabel,Mode=OneWay}"/> <Border.Margin> <MultiBinding Converter="{StaticResource MarginOffsetSliderConverter}" ConverterParameter="1" Delay="200" Mode="OneWay"> <Binding ElementName="sliderOffset" Path="LowerValue" ></Binding> - <Binding ElementName="sliderOffset" Path="Maximum"></Binding> - <Binding ElementName="sliderOffset" Path="Minimum"></Binding> <Binding ElementName="sliderOffset" Path="ActualWidth"></Binding> <Binding ElementName="leftoffsetLabel" Path="ActualWidth"></Binding> + <Binding ElementName="middleoffsetBorder" Path="Margin.Left"></Binding> </MultiBinding> </Border.Margin> </Border> - <Border> + <Border x:Name="middleoffsetBorder"> <TextBlock x:Name="middleoffsetLabel" HorizontalAlignment="Left" MaxWidth="80" Margin="10 0 10 0" FontSize="{StaticResource TangoSmallFontSize}" Foreground="{StaticResource TangoNotificationBarMaskBrush}" Text="{Binding MiddleOffsetLabel,Mode=OneWay}"/> <Border.Margin> <MultiBinding Converter="{StaticResource MarginOffsetSliderConverter}" ConverterParameter="2" Delay="200" Mode="OneWay"> <Binding ElementName="sliderOffset" Path="MiddleValue"></Binding> - <Binding ElementName="sliderOffset" Path="Maximum"></Binding> - <Binding ElementName="sliderOffset" Path="Minimum"></Binding> <Binding ElementName="sliderOffset" Path="ActualWidth"></Binding> <Binding ElementName="middleoffsetLabel" Path="ActualWidth"></Binding> + <Binding ElementName="leftoffsetLabel" Path="ActualWidth"></Binding> + <Binding ElementName="upperoffsetLabel" Path="ActualWidth"></Binding> </MultiBinding> </Border.Margin> </Border> - <Border> + <Border x:Name="rightoffsetBorder"> <TextBlock x:Name="upperoffsetLabel" HorizontalAlignment="Left" MaxWidth="80" Margin="0 0 0 0" FontSize="{StaticResource TangoSmallFontSize}" Foreground="{StaticResource TangoNotificationBarMaskBrush}" Text="{Binding RightOffsetLabel,Mode=OneWay}"/> <Border.Margin> <MultiBinding Converter="{StaticResource MarginOffsetSliderConverter}" ConverterParameter="3" Delay="200" Mode="OneWay"> <Binding ElementName="sliderOffset" Path="UpperValue"></Binding> - <Binding ElementName="sliderOffset" Path="Maximum"></Binding> - <Binding ElementName="sliderOffset" Path="Minimum"></Binding> <Binding ElementName="sliderOffset" Path="ActualWidth"></Binding> <Binding ElementName="upperoffsetLabel" Path="ActualWidth"></Binding> + <Binding ElementName="middleoffsetBorder" Path="Margin.Left"></Binding> + <Binding ElementName="middleoffsetLabel" Path="ActualWidth"></Binding> </MultiBinding> </Border.Margin> </Border> 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; } |
