diff options
author | Kangho Hur <kangho.hur@samsung.com> | 2016-12-16 11:00:07 +0900 |
---|---|---|
committer | Kangho Hur <kangho.hur@samsung.com> | 2017-10-23 13:34:24 +0900 |
commit | a2e67107402bc5a49d73cee9062bcd7dbe4069e7 (patch) | |
tree | ea6c6606567e8440397de192d47195194c0266dd /Xamarin.Forms.Platform.Tizen/Renderers/SliderRenderer.cs | |
parent | 509954d0a013acdf7508644c1fb394bea626e587 (diff) | |
download | xamarin-forms-a2e67107402bc5a49d73cee9062bcd7dbe4069e7.tar.gz xamarin-forms-a2e67107402bc5a49d73cee9062bcd7dbe4069e7.tar.bz2 xamarin-forms-a2e67107402bc5a49d73cee9062bcd7dbe4069e7.zip |
Add Tizen backend renderer
- Xamarin.Forms.Platform.Tizen has been added
- Xamarin.Forms.Maps.Tizen has been added
- RPM build spec has been added
Change-Id: I0021e0f040d97345affc87512ee0f6ce437f4e6d
Diffstat (limited to 'Xamarin.Forms.Platform.Tizen/Renderers/SliderRenderer.cs')
-rw-r--r-- | Xamarin.Forms.Platform.Tizen/Renderers/SliderRenderer.cs | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Xamarin.Forms.Platform.Tizen/Renderers/SliderRenderer.cs b/Xamarin.Forms.Platform.Tizen/Renderers/SliderRenderer.cs new file mode 100644 index 00000000..93cc6e84 --- /dev/null +++ b/Xamarin.Forms.Platform.Tizen/Renderers/SliderRenderer.cs @@ -0,0 +1,63 @@ +using System; +using ESlider = ElmSharp.Slider; +using ESize = ElmSharp.Size; + +namespace Xamarin.Forms.Platform.Tizen +{ + public class SliderRenderer : ViewRenderer<Slider, ESlider> + { + + public SliderRenderer() + { + RegisterPropertyHandler(Slider.ValueProperty, UpdateValue); + RegisterPropertyHandler(Slider.MinimumProperty, UpdateMinMax); + RegisterPropertyHandler(Slider.MaximumProperty, UpdateMinMax); + } + + protected override void OnElementChanged(ElementChangedEventArgs<Slider> e) + { + if (Control == null) + { + var slider = new ESlider(Forms.Context.MainWindow) + { + PropagateEvents = false, + }; + SetNativeControl(slider); + } + + if (e.OldElement != null) + { + Control.ValueChanged -= SliderValueChangedHandler; + } + + if (e.NewElement != null) + { + Control.ValueChanged += SliderValueChangedHandler; + } + + base.OnElementChanged(e); + } + + protected override ESize Measure(int availableWidth, int availableHeight) + { + return new ESize(Math.Min(200, availableWidth), 50); + } + + void SliderValueChangedHandler(object sender, EventArgs e) + { + Element.Value = Control.Value; + } + + protected void UpdateValue() + { + Control.Value = Element.Value; + } + + protected void UpdateMinMax() + { + Control.Minimum = Element.Minimum; + Control.Maximum = Element.Maximum; + UpdateValue(); + } + } +} |