/*
© 2017 Altavant Technologies Inc.
Web: http://www.altavant.com
*/

namespace Altavant.Fusion.UI.Lite
{
	using Fusion.UI;
	using Fusion.Graphics;
	using Fusion.UI.Lite.Behaviors;

	public interface IPlane : IVisual
	{
		bool Active { get; set; }
		bool Touchable { get; set; }
		bool PropagatesTouch { get; set; }
		bool InterceptsTouch { get; set; }
		IBehavior Behavior { get; set; }
		IVisualCollection Visuals { get; }
		IVisual AddVisual();
		IVisual AddVisual(IDrawing drawing);
		IPlane AddPlane();
		IPlane AddPlane(IDrawing drawing);
		IVisual InsertVisual(int index);
		IVisual InsertVisual(IDrawing drawing, int index);
		IPlane InsertPlane(int index);
		IPlane InsertPlane(IDrawing drawing, int index);
		void Remove(IVisual visual);
		void RemoveAllVisuals();
		void BringToFront(IVisual visual);
		void SendToBack(IVisual visual);
		IVisual FindVisual(string id);
		IPlane HitTest(Point pt);
		void TouchBegan(Touch touch);
		void TouchMoved(Touch touch);
		void TouchEnded(Touch touch);
		void TouchCancelled(Touch touch);
		void TouchExpired(Touch touch);
	}
}