diff options
author | Piotr Szydelko <p.szydelko@samsung.com> | 2016-09-30 12:54:39 +0200 |
---|---|---|
committer | Piotr Szydelko <p.szydelko@samsung.com> | 2016-09-30 14:08:29 +0200 |
commit | 6dbf844155597042a0d90a5f419ea5a3646faece (patch) | |
tree | e484a4609e31eb570abbd83b620f84b713e6ab77 /Xamarin.Forms.Platform.Tizen/Renderers/SliderRenderer.cs | |
parent | 408cd5a4097fceac1660482b39f0e7dbc3d6c461 (diff) | |
download | xamarin-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.cs | 62 |
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(); + } + } +} |