Пример #1
0
        public HsvColorPicker(ColorTimeLineDrawingConfig drawingConfig)
        {
            _drawingConfig   = drawingConfig;
            _worldDimensions = _drawingConfig.WorldDimensions();
            _hsAreaRadius    = _worldDimensions.HsvColorPickerHueSaturationCircleRadius;

            _hsvRgb = new HsvRgbConverter();

            _hsTrack = new HsTrack(_drawingConfig);
            AddChild(_hsTrack);

            _vTrackColorPositions = new ColorPositions(new[] { new ColorPosition(SKColors.Black, .25f), new ColorPosition(SKColors.White, .75f) });
            _vTrack = new CircularTrack(_worldDimensions.Center, _worldDimensions.HsvColorPickerValueCircleRadius, _worldDimensions.HsvColorPickerValueCircleWidth, 36, _vTrackColorPositions);
            AddChild(_vTrack);

            _hsSliderBody           = new HsSliderBody(_worldDimensions.Center, _hsAreaRadius);
            _hsSlider               = new Slider <HueSaturation>(_drawingConfig, new HueSaturation(0, 0), SKColors.Black, _worldDimensions.HsvColorPcikerHueSaturationSliderRadius, false, false, _hsSliderBody);
            _hsSlider.ValueChanged += _hsSlider_ValueChanged;
            AddChild(_hsSlider);

            _vSliderBody           = new CircularSliderBody(_worldDimensions.Center, _worldDimensions.HsvColorPickerValueCircleRadius, ConvertHSliderInputValue, ConvertHSliderOutputValue);
            _vSlider               = new Slider <float>(_drawingConfig, 0, SKColors.Black, _worldDimensions.HsvColorPickerValueCircleWidth / 2f, false, false, _vSliderBody);
            _vSlider.ValueChanged += _vSlider_ValueChanged;
            AddChild(_vSlider);
        }
Пример #2
0
        public TimeProgressSlider(ColorTimeLineDrawingConfig drawingConfig, SKColor initialColor, float initialTimeProgress, IPhotonLedControllerCommunicator photonLedControllerCommunicator)
        {
            _drawingConfig   = drawingConfig;
            _worldDimensions = _drawingConfig.WorldDimensions();
            _photonLedControllerCommunicator = photonLedControllerCommunicator;

            _track = new CircularTrack(_worldDimensions.Center, _worldDimensions.ProgressCircleRadius, _worldDimensions.ProgressCircleWidth, _drawingConfig.SliderTrackBackgroundColor);
            AddChild(_track);

            var sliderBody = new CircularSliderBody(_worldDimensions.Center, _worldDimensions.ProgressCircleRadius);

            _slider = new Slider <float>(_drawingConfig, initialTimeProgress, initialColor, _worldDimensions.ProgressCircleWidth, false, true, sliderBody);
            _slider.ValueChanged += _slider_ValueChanged;
            AddChild(_slider);

            _cycleTimeSlider           = new CycleTimeSlider(_drawingConfig, _photonLedControllerCommunicator);
            _cycleTimeSlider.IsEnabled = false;
            AddChild(_cycleTimeSlider);
        }
        public RootSurfaceComponent(IPhotonLedControllerCommunicator photonLedControllerCommunicator)
        {
            // Dependencies.

            _photonLedControllerCommunicator = photonLedControllerCommunicator;

            // Drawing configuration.

            _drawingConfig   = new ColorTimeLineDrawingConfig();
            _worldDimensions = _drawingConfig.WorldDimensions();

            // Initialize color positions.
            _colorPositions = new ColorPositions(new ColorPosition[0]);

            // Gradient circle component.

            _gradientCircularTrack = new CircularTrack(_worldDimensions.Center, _worldDimensions.GradientCircleRadius, _worldDimensions.GradientCircleWidth, 360, _colorPositions);
            AddChild(_gradientCircularTrack);

            // Track for color time points.

            _colorTimePointsTrack = new CircularTrack(_worldDimensions.Center, _worldDimensions.ColorsCircleRadius, _worldDimensions.ColorsCircleWidth, _drawingConfig.SliderTrackBackgroundColor);
            AddChild(_colorTimePointsTrack);

            // Container for color time point sliders - the only sliders which number is dynamic so generic list is used here.

            _colorTimePointSliders = new List <ColorTimePointSlider>();

            // Color picker.
            _colorPicker           = new HsvColorPicker(_drawingConfig);
            _colorPicker.IsEnabled = false;
            AddChild(_colorPicker);

            // Time progress slider with cycle time slider inside.

            _timeProgressSlider = new TimeProgressSlider(_drawingConfig, SKColors.Black, _timeProgress, _photonLedControllerCommunicator);
            _timeProgressSlider.Slider.IsSelectedChanged += Slider_IsSelectedChanged;
            AddChild(_timeProgressSlider);
        }