public static RelMov Setup(PtzAxis ax, PtzView view) { RelMov res = null; var stepSlider = GetStepSliders(view)[ax]; var sppedSlider = GetSpeedSliders(view)[ax]; do { var range = GetValueRanges(view)[ax]; if (range == null) { break; } var min = range.min; var max = range.max; if (float.IsNaN(min) || float.IsNaN(max) || min > max) { break; } if (float.IsNegativeInfinity(min)) { min = float.MinValue; } if (float.IsPositiveInfinity(max)) { max = float.MaxValue; } if (stepSlider == null) { res = new RelMov(min, max, AbsRelSpeed.Create(ax, view, null)); break; } res = new RelMov(min, max, AbsRelSpeed.Create(ax, view, sppedSlider)); stepSlider.Minimum = 0d; stepSlider.Maximum = 100d; stepSlider.SmallChange = 1d; stepSlider.LargeChange = 10d; stepSlider.Value = res.step; stepSlider.Visibility = Visibility.Visible; if (min != max) { stepSlider.IsEnabled = true; stepSlider.ValueChanged += (s, a) => { res.step = (float)a.NewValue; }; } else { stepSlider.IsEnabled = false; } return res; } while(false); if (stepSlider != null) { stepSlider.Visibility = Visibility.Collapsed; } if (sppedSlider != null) { sppedSlider.Visibility = Visibility.Collapsed; } return res; }
void BindData() { //CommonData //valuePresetName.CreateBinding(TextBox.TextProperty, this, x => x.PresetName, (m, v) => { m.PresetName = v; }); //valuePresetsList.ItemsSource = Presets; //valuePresetsList.CreateBinding(ListBox.SelectedItemProperty, this, x => x.SelectedPreset, (m, v) => m.SelectedPreset = v); //ReloadPresets(); captionErrorMessage.CreateBinding(TextBlock.TextProperty, this, x => x.ErrorMessage); // setup controls for absolute movements //var absPanTiltPositon = model.status.IfNotNull(s => s.position.IfNotNull(p => p.panTilt)); //var absZoomPositon = model.status.IfNotNull(s => s.position.IfNotNull(p => p.zoom)); relMov = Ptz.Vec(ax => RelMov.Setup(ax, this)); contMov = Ptz.Vec(ax => ContMov.Setup(ax, this)); absMov = Ptz.Vec(ax => AbsMov.Setup(ax, this)); var hasRelativeMovements = relMov.ToSeq().Any(x => x.value != null); var hasContinuousMovements = contMov.ToSeq().Any(x => x.value != null); var hasAbsoluteMovements = absMov.ToSeq().Any(x => x.value != null); tglbtnAbsoluteMove.Visibility = hasAbsoluteMovements ? Visibility.Visible : Visibility.Collapsed; tglbtnRelativeMove.Visibility = hasRelativeMovements ? Visibility.Visible : Visibility.Collapsed; tglbtnContinuousMove.Visibility = hasContinuousMovements ? Visibility.Visible : Visibility.Collapsed; if (hasContinuousMovements) { SetMoveMode(PTZMoveModes.Continuous); } else if (hasRelativeMovements) { SetMoveMode(PTZMoveModes.Relative); } else if (hasAbsoluteMovements) { SetMoveMode(PTZMoveModes.Absolute); } //Buttons tglbtnAbsoluteMove.Checked += (s, e) => this.SetMoveMode(PTZMoveModes.Absolute, tglbtnAbsoluteMove.IsChecked == true); tglbtnRelativeMove.Checked += (s, e) => this.SetMoveMode(PTZMoveModes.Relative, tglbtnRelativeMove.IsChecked == true); tglbtnContinuousMove.Checked += (s, e) => this.SetMoveMode(PTZMoveModes.Continuous, tglbtnContinuousMove.IsChecked == true); btnContUp.PreviewMouseDown += ContinuousUp_MouseDown; btnContUp.PreviewMouseUp += ContinuousUp_MouseUp; btnContDown.PreviewMouseDown += ContinuousDown_MouseDown; btnContDown.PreviewMouseUp += ContinuousDown_MouseUp; btnContLeft.PreviewMouseDown += ContinuousLeft_MouseDown; btnContLeft.PreviewMouseUp += ContinuousLeft_MouseUp; btnContRight.PreviewMouseDown += ContinuousRight_MouseDown; btnContRight.PreviewMouseUp += ContinuousRight_MouseUp; btnContZoomMinus.PreviewMouseDown += ContinuousZoomMinus_MouseDown; btnContZoomMinus.PreviewMouseUp += ContinuousZoomMinus_MouseUp; btnContZoomPlus.PreviewMouseDown += ContinuousZoomPlus_MouseDown; btnContZoomPlus.PreviewMouseUp += ContinuousZoomPlus_MouseUp; btnRelUp.Click += RelUp_Click; btnRelRight.Click += RelRight_Click; btnRelDown.Click += RelDown_Click; btnRelLeft.Click += RelLeft_Click; btnRelZoomMinus.Click += RelZoomMinus_Click; btnRelZoomPlus.Click += RelZoomPlus_Click; btnAbsMove.Click += AbsoluteMove_Click; btnApplySettings.Click += new RoutedEventHandler(ApplySettings); btnDelete.Click += new RoutedEventHandler(Delete); btnGoHome.Click += new RoutedEventHandler(GoHome); btnGoTo.Click += new RoutedEventHandler(GoTo); btnSetHome.Click += new RoutedEventHandler(SetHome); btnSetPreset.Click += new RoutedEventHandler(SetPreset); }
public static RelMov Setup(PtzAxis ax, PtzView view) { RelMov res = null; var stepSlider = GetStepSliders(view)[ax]; var sppedSlider = GetSpeedSliders(view)[ax]; do { var range = GetValueRanges(view)[ax]; if (range == null) { break; } var min = range.min; var max = range.max; if (float.IsNaN(min) || float.IsNaN(max) || min > max) { break; } if (float.IsNegativeInfinity(min)) { min = float.MinValue; } if (float.IsPositiveInfinity(max)) { max = float.MaxValue; } if (stepSlider == null) { res = new RelMov(min, max, AbsRelSpeed.Create(ax, view, null)); break; } res = new RelMov(min, max, AbsRelSpeed.Create(ax, view, sppedSlider)); stepSlider.Minimum = 0d; stepSlider.Maximum = 100d; stepSlider.SmallChange = 1d; stepSlider.LargeChange = 10d; stepSlider.Value = res.step; stepSlider.Visibility = Visibility.Visible; if (min != max) { stepSlider.IsEnabled = true; stepSlider.ValueChanged += (s, a) => { res.step = (float)a.NewValue; }; } else { stepSlider.IsEnabled = false; } return(res); } while(false); if (stepSlider != null) { stepSlider.Visibility = Visibility.Collapsed; } if (sppedSlider != null) { sppedSlider.Visibility = Visibility.Collapsed; } return(res); }