Example #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);
        }
Example #2
0
        public Slider(ColorTimeLineDrawingConfig drawingConfig, TValue value, SKColor color, float radius, bool isSelected, bool isSelectable, ISliderBody <TValue> body)
        {
            _value      = value;
            _color      = color;
            _radius     = radius;
            _isSelected = isSelected;
            _body       = body;

            RecalculatePosition();

            _drawer       = new SliderDrawerComponent(drawingConfig, this);
            _touchHandler = new SliderTouchHandlerComponent(this, isSelectable);

            AddChild(_drawer);
            AddChild(_touchHandler);
        }
Example #3
0
        public ThreeSlidersColorPicker(ColorTimeLineDrawingConfig drawingConfig)
        {
            _drawingConfig = drawingConfig;

            _colorComponentSliders = new[]
            {
                new ColorComponentSlider(_drawingConfig, ColorComponentType.R),
                new ColorComponentSlider(_drawingConfig, ColorComponentType.G),
                new ColorComponentSlider(_drawingConfig, ColorComponentType.B),
            };

            foreach (var ccs in _colorComponentSliders)
            {
                ccs.ColorChanged += ColorComponentSlider_ColorChanged;
                AddChild(ccs);
            }
        }
Example #4
0
        public ColorTimePointSlider(ColorTimeLineDrawingConfig drawingConfig, byte id, SKColor color, float time, IColorPicker colorPicker, IPhotonLedControllerCommunicator photonLedControllerCommunicator)
        {
            _drawingConfig   = drawingConfig;
            _worldDimensions = _drawingConfig.WorldDimensions();
            _id = id;
            var sliderBody = new CircularSliderBody(_worldDimensions.Center, _worldDimensions.ColorsCircleRadius);

            _slider = new Slider <float>(_drawingConfig, time, color, _worldDimensions.ColorsCircleWidth, false, true, sliderBody);
            AddChild(_slider);
            _colorPicker = colorPicker;
            _photonLedControllerCommunicator = photonLedControllerCommunicator;

            _slider.ValueChanged      += _slider_ValueChanged;
            _slider.IsSelectedChanged += _slider_IsSelectedChanged;

            _colorPicker.ColorChanged += ColorComponent_ColorChanged;
        }
Example #5
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);
        }
Example #6
0
        public CycleTimeSlider(ColorTimeLineDrawingConfig drawingConfig, IPhotonLedControllerCommunicator photonLedControllerCommunicator)
        {
            _drawingConfig   = drawingConfig;
            _worldDimensions = _drawingConfig.WorldDimensions();
            _photonLedControllerCommunicator = photonLedControllerCommunicator;

            _x0 = _worldDimensions.InnerHorizontalSlidersX0;
            _x1 = _worldDimensions.InnerHorizontalSlidersX1;
            _y  = _worldDimensions.InnerHorizontalSlidersY0of1;
            _p0 = new SKPoint(_x0, _y);
            _p1 = new SKPoint(_x1, _y);

            _track = new LinearTrack(_p0, _p1, _worldDimensions.InnerHorizontalSliderBarWidth, _drawingConfig.SliderTrackBackgroundColor);
            AddChild(_track);

            var sliderBody = new LinearSliderBody(_p0, _p1);

            _slider = new Slider <float>(_drawingConfig, 0, SKColors.Black, _worldDimensions.InnerHorizontalSliderBarWidth, false, false, sliderBody);
            _slider.ValueChanged += _slider_ValueChanged;
            AddChild(_slider);
        }
        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);
        }
        public ColorComponentSlider(ColorTimeLineDrawingConfig drawingConfig, ColorComponentType colorComponentType)
        {
            _drawingConfig      = drawingConfig;
            _worldDimensions    = _drawingConfig.WorldDimensions();
            _colorComponentType = colorComponentType;

            _x0 = _worldDimensions.InnerHorizontalSlidersX0;
            _x1 = _worldDimensions.InnerHorizontalSlidersX1;

            switch (_colorComponentType)
            {
            case ColorComponentType.R:
                _y = _worldDimensions.InnerHorizontalSlidersY0of3;
                break;

            case ColorComponentType.G:
                _y = _worldDimensions.InnerHorizontalSlidersY1of3;
                break;

            case ColorComponentType.B:
                _y = _worldDimensions.InnerHorizontalSlidersY2of3;
                break;
            }

            _p0 = new SKPoint(_x0, _y);
            _p1 = new SKPoint(_x1, _y);

            //_track = new LinearTrack(_p0, _p1, _worldDimensions.InnerHorizontalSliderBarWidth, new[] { new ColorPositionPair(SKColors.Black, 0f), new ColorPositionPair(ToColor(1f), 1f) });
            _track = new LinearTrack(_p0, _p1, _worldDimensions.InnerHorizontalSliderBarWidth, _drawingConfig.SliderTrackBackgroundColor);
            AddChild(_track);

            var sliderBody = new LinearSliderBody(_p0, _p1);

            _slider = new Slider <float>(_drawingConfig, 0, SKColors.Black, _worldDimensions.InnerHorizontalSliderBarWidth, false, false, sliderBody);
            _slider.ValueChanged += _slider_ValueChanged;
            AddChild(_slider);
        }
Example #9
0
 public HsTrack(ColorTimeLineDrawingConfig drawingConfig)
 {
     _drawingConfig   = drawingConfig;
     _worldDimensions = _drawingConfig.WorldDimensions();
     _brightnessColor = SKColors.Black;
 }
Example #10
0
 public SliderDrawerComponent(ColorTimeLineDrawingConfig drawingConfig, ISlider slider)
 {
     _drawingConfig = drawingConfig;
     _slider        = slider;
 }