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); }
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); }
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); } }
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; }
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 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); }
public HsTrack(ColorTimeLineDrawingConfig drawingConfig) { _drawingConfig = drawingConfig; _worldDimensions = _drawingConfig.WorldDimensions(); _brightnessColor = SKColors.Black; }
public SliderDrawerComponent(ColorTimeLineDrawingConfig drawingConfig, ISlider slider) { _drawingConfig = drawingConfig; _slider = slider; }