summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Tizen/Renderers/SliderRenderer.cs
diff options
context:
space:
mode:
authorPiotr Szydelko <p.szydelko@samsung.com>2016-09-30 12:54:39 +0200
committerPiotr Szydelko <p.szydelko@samsung.com>2016-09-30 14:08:29 +0200
commit6dbf844155597042a0d90a5f419ea5a3646faece (patch)
treee484a4609e31eb570abbd83b620f84b713e6ab77 /Xamarin.Forms.Platform.Tizen/Renderers/SliderRenderer.cs
parent408cd5a4097fceac1660482b39f0e7dbc3d6c461 (diff)
downloadxamarin-forms-6dbf844155597042a0d90a5f419ea5a3646faece.tar.gz
xamarin-forms-6dbf844155597042a0d90a5f419ea5a3646faece.tar.bz2
xamarin-forms-6dbf844155597042a0d90a5f419ea5a3646faece.zip
Remove nesting of Xamarin.Forms.Platform.Tizen directory
Directory structure of Xamarin.Forms.Platform.Tizen is more flat now: Xamarin.Forms.Platform.Tizen Xamarin.Forms.Platform.Tizen ├── InputGenerators ├── InputGenerators ├── Properties ├── Log ├── Xamarin.Forms ----> ├── Native └── Xamarin.Forms.Platform.Tizen ├── Properties ├── Log └── Renderers └── Native Change-Id: Id8fecfdc48edef3f3d5a5c0bb02e6fd38ccb7f63 Signed-off-by: Piotr Szydelko <p.szydelko@samsung.com>
Diffstat (limited to 'Xamarin.Forms.Platform.Tizen/Renderers/SliderRenderer.cs')
-rw-r--r--Xamarin.Forms.Platform.Tizen/Renderers/SliderRenderer.cs62
1 files changed, 62 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..5c4798af
--- /dev/null
+++ b/Xamarin.Forms.Platform.Tizen/Renderers/SliderRenderer.cs
@@ -0,0 +1,62 @@
+using System;
+using System.ComponentModel;
+using UI = Xamarin.Forms.Platform.Tizen.Native;
+
+namespace Xamarin.Forms.Platform.Tizen
+{
+ public class SliderRenderer :
+ ViewRenderer<Slider, ElmSharp.Slider>,
+ IDisposable
+ {
+
+ 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 ElmSharp.Slider(Forms.Context.MainWindow);
+ SetNativeControl(slider);
+ }
+
+ if (e.OldElement != null)
+ {
+ Control.ValueChanged -= SliderValueChangedHandler;
+ }
+
+ if (e.NewElement != null)
+ {
+ Control.ValueChanged += SliderValueChangedHandler;
+ }
+
+ base.OnElementChanged(e);
+ }
+
+ protected override ElmSharp.Size Measure(int availableWidth, int availableHeight)
+ {
+ return new ElmSharp.Size(Math.Min(200, availableWidth), 50);
+ }
+
+ private 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();
+ }
+ }
+}