using System.ComponentModel; using ElmSharp; namespace Xamarin.Forms.Platform.Tizen { /// /// Base class for view renderers. /// public abstract class ViewRenderer : VisualElementRenderer where TView : View where TNativeView : EvasObject { GestureDetector _gestureDetector; /// /// Default constructor. /// protected ViewRenderer() { } protected override void OnElementChanged(ElementChangedEventArgs e) { base.OnElementChanged(e); if (e.OldElement != null) { _gestureDetector.Clear(); _gestureDetector = null; } if (e.NewElement != null) { _gestureDetector = new GestureDetector(this); } } protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) { base.OnElementPropertyChanged(sender, e); if (e.PropertyName == VisualElement.IsEnabledProperty.PropertyName) { UpdateIsEnabled(); } } /// /// Native control associated with this renderer. /// public TNativeView Control { get { return (TNativeView)NativeView; } } void UpdateIsEnabled() { _gestureDetector.IsEnabled = Element.IsEnabled; } } }