summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Tizen/Renderers/SliderRenderer.cs
diff options
context:
space:
mode:
authorKangho Hur <kangho.hur@samsung.com>2016-12-16 11:00:07 +0900
committerKangho Hur <kangho.hur@samsung.com>2017-10-23 13:34:24 +0900
commita2e67107402bc5a49d73cee9062bcd7dbe4069e7 (patch)
treeea6c6606567e8440397de192d47195194c0266dd /Xamarin.Forms.Platform.Tizen/Renderers/SliderRenderer.cs
parent509954d0a013acdf7508644c1fb394bea626e587 (diff)
downloadxamarin-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.cs63
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();
+ }
+ }
+}