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;
}
}
}