using System;
using System.ComponentModel;
using System.Drawing;
using static DH.Commons.Enums.EnumHelper;


namespace DH.Commons.Enums
{
    public interface IShapeElement : INotifyPropertyChanged, ICloneable
    {
        string ID { get; set; }

        int Index { get; set; }
        int GroupIndex { get; set; }

        string Name { get; set; }

        void OnMouseDown(PointF point);
        void OnMouseUp(PointF point);
        void OnMouseMove(PointF point);
        void OnMouseDoubleClick(PointF point);
        bool IsIntersect(RectangleF rect);

        bool IsEnabled { get; set; }
        void Draw(Graphics g);

        void Translate(float x, float y);

        /// <summary>
        /// WPF中标识该对象是否已经加入渲染,需要显示
        /// </summary>
        bool IsShowing { get; set; }

        void Initial();
        bool IsCreatedDone();

        ElementState State { get; set; }
    }
}