aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Converters/MarginOffsetSliderConverter .cs67
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/JobCreationView.xaml2
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Views/JobView.xaml17
-rw-r--r--Software/Visual_Studio/Tango.Touch/TouchColorPickerControls/MultiRangeSlider.cs11
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;
}