Exemplo n.º 1
0
        public Text(PointF location, SizeF size, IPrimitiveProvider primitiveProvider)
        {
            if (primitiveProvider == null)
            {
                throw new ArgumentNullException(nameof(primitiveProvider));
            }
            var c = primitiveProvider.GetPrimitive <AbstractText>();

            __location   = location;
            c.Location   = Point.Ceiling(location);
            c.StringSize = size;
            var bound = primitiveProvider.GetPrimitive <AbstractRectangle>(location, size);


            c.Visible     = true;
            bound.Visible = false;

            Styles.TextStyles.ApplyDefaultPatternTo(c);
            Styles.RectStyles.ApplySelectedPatternTo(bound);
            InitializePrimaryPrimitiveAndBound(c, bound);

            var b = c.GetBounds();

            InitializeDefaultAnchor(b, primitiveProvider);
            InitializeResizeHandle(primitiveProvider);
            CanSelect = true;
        }
Exemplo n.º 2
0
        public Ellipse(PointF location, SizeF sz, IPrimitiveProvider primitiveProvider)
        {
            if (primitiveProvider == null)
            {
                throw new ArgumentNullException(nameof(primitiveProvider));
            }
            __location = location;
            var ellipse = primitiveProvider.GetPrimitive <AbstractEllipse>(location, sz);
            var bound   = primitiveProvider.GetPrimitive <AbstractRectangle>(location, sz);


            ellipse.Visible = true;
            bound.Visible   = false;

            Styles.CircleStyles.ApplyDefaultPatternTo(ellipse);
            Styles.RectStyles.ApplySelectedPatternTo(bound);

            InitializePrimaryPrimitiveAndBound(ellipse, bound);

            var b = bound.GetBounds();

            InitializeDefaultAnchor(b, primitiveProvider);
            InitializeResizeHandle(primitiveProvider);

            CanSelect = true;
        }
Exemplo n.º 3
0
        public Line(IPrimitiveProvider primitiveProvider)
        {
            this.provider = primitiveProvider ?? throw new ArgumentNullException(nameof(primitiveProvider));
            var line = primitiveProvider.GetPrimitive <AbstractLine>();

            line.Visible = true;
            Styles.LineStyles.ApplyDefaultPatternTo(line);
            InitializePrimaryPrimitiveAndBound(line, null);
            PointChanged += Line_PointChanged;
            CanSelect     = true;
        }
Exemplo n.º 4
0
 public OperationLayer(ILayer <IPrimitive> layer, IPrimitiveProvider primitiveProvider)
     : base(layer)
 {
     if (primitiveProvider == null)
     {
         throw new ArgumentNullException(nameof(primitiveProvider));
     }
     __selection = new Rect(primitiveProvider);
     Styles.RectStyles.ApplySelectionPatternTo(__selection);
     __selection.AddToLayer(__layer);
     Add(__selection);
 }
Exemplo n.º 5
0
        protected override void InitializeResizeHandle(IPrimitiveProvider provider)
        {
            var list = Enum.GetValues(typeof(CornerType))
                       .Cast <CornerType>().Where(t => t != CornerType.Center);
            var rect = __bound.GetBounds();

            foreach (var item in list)
            {
                var r = new RectResizeHandle(rect.GetCornerPoint(item), this, item, provider);
                ResizeHandles.Add(r);
            }
        }
Exemplo n.º 6
0
        protected void InitializeDefaultAnchor(RectangleF rect, IPrimitiveProvider provider)
        {
            var a = new AnchorHandle(rect.GetCornerPoint(CornerType.Top), this, TOP_ANCHOR, provider);

            Anchors.Add(a);
            a = new AnchorHandle(rect.GetCornerPoint(CornerType.LeftMiddle), this, LEFT_ANCHOR, provider);
            Anchors.Add(a);
            a = new AnchorHandle(rect.GetCornerPoint(CornerType.RightMiddle), this, RIGHT_ANCHOR, provider);
            Anchors.Add(a);
            a = new AnchorHandle(rect.GetCornerPoint(CornerType.Bottom), this, BOTTOM_ANCHOR, provider);
            Anchors.Add(a);
        }
Exemplo n.º 7
0
        /// <summary>
        /// 初始化Line中的Handle
        /// </summary>
        protected override void InitializeResizeHandle(IPrimitiveProvider provider)
        {
            PointF        prePoint  = PointF.Empty;
            List <PointF> allPoints = __line.Points;

            foreach (PointF p in allPoints)
            {
                if (prePoint != PointF.Empty)
                {
                    float  x        = (p.X + prePoint.X) / 2;
                    float  y        = (p.Y + prePoint.Y) / 2;
                    PointF newPoint = new PointF(x, y);
                    ResizeHandles.Add(new LineResizeHandle(newPoint, this, LineResizeType.MiddlePoint, provider));
                }
                ResizeHandles.Add(new LineResizeHandle(p, this, LineResizeType.BreakPoint, provider));
                prePoint = p;
            }
        }
Exemplo n.º 8
0
        private void Initialize(SizeF initialSize, IPrimitiveProvider provider)
        {
            if (Renderer.Configuration.ClientSize != initialSize)
            {
                Renderer.Configuration.ChangeSize(initialSize);
            }
            Renderer.MessageListener += AllMessageListener;
            __trans   = new TransformManager(Renderer.Configuration);
            __bgLayer = new BackgroundLayer(Renderer.GetNewLayer(0, BackgroundLayer.NAME), initialSize);
            __mp      = new MessagePipe(this);
            var ul = new List <UserLayer>
            {
                new UserLayer(Renderer.GetNewLayer(1, UserLayer.DEFAULT_NAME))
            };
            var ol = new OperationLayer(Renderer.GetNewLayer(99, OperationLayer.NAME), provider);

            __mouse = new MouseManager(ul, ol);
            __mouse.MessageListener += AllMessageListener;
            //__mouse.CursorChanged += Mouse_CursorChanged;
        }
Exemplo n.º 9
0
        protected AbstractHandle(PointF location, AbstractShape parent, IPrimitiveProvider primitiveProvider)
        {
            if (primitiveProvider == null)
            {
                throw new ArgumentNullException(nameof(primitiveProvider));
            }
            __location    = location;
            __parentShape = parent;


            var rect = primitiveProvider.GetPrimitive <AbstractRectangle>(
                new PointF(location.X - HANDLE_SIZE, location.Y - HANDLE_SIZE),
                new SizeF(HANDLE_SIZE * 2 + 1, HANDLE_SIZE * 2 + 1));

            rect.DrawModel = DrawModel.Center;

            InitializePrimaryPrimitiveAndBound(rect, null);

            CanSelect = false;
            Visible   = false;
            Styles.HandleStyles.ApplyDefaultPatternTo(rect);
        }
Exemplo n.º 10
0
        protected Rect(PointF location, SizeF size, IPrimitiveProvider primitiveProvider)
        {
            if (primitiveProvider == null)
            {
                throw new ArgumentNullException(nameof(primitiveProvider));
            }

            __location = location;

            var rect  = primitiveProvider.GetPrimitive <AbstractRectangle>(location, size);
            var bound = primitiveProvider.GetPrimitive <AbstractRectangle>(location, size);

            rect.Visible  = true;
            bound.Visible = false;
            Styles.RectStyles.ApplyDefaultPatternTo(rect);
            Styles.RectStyles.ApplySelectedPatternTo(bound);

            InitializePrimaryPrimitiveAndBound(rect, bound);
            var b = rect.GetBounds();

            InitializeDefaultAnchor(b, primitiveProvider);
            InitializeResizeHandle(primitiveProvider);
            CanSelect = true;
        }
Exemplo n.º 11
0
 protected override void InitializeResizeHandle(IPrimitiveProvider provider)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 12
0
 public LineResizeHandle(PointF location, AbstractShape parent, LineResizeType type, IPrimitiveProvider primitiveProvider)
     : base(location, parent, primitiveProvider)
 {
     Type = type;
 }
Exemplo n.º 13
0
 public AnchorHandle(PointF location, AbstractShape parent, string name, IPrimitiveProvider primitiveProvider)
     : base(location, parent, primitiveProvider)
 {
     __lines = new List <Line>();
     Name    = name;
 }
Exemplo n.º 14
0
 protected abstract void InitializeResizeHandle(IPrimitiveProvider provider);
Exemplo n.º 15
0
 public Rect(IPrimitiveProvider primitiveProvider)
     : this(new PointF(0, 0), new SizeF(1, 1), primitiveProvider)
 {
 }
Exemplo n.º 16
0
 public RectResizeHandle(PointF location, AbstractShape parent, CornerType type, IPrimitiveProvider provider)
     : base(location, parent, provider)
 {
     Type = type;
 }
Exemplo n.º 17
0
 /// <summary>
 /// 通过控件指针和大小初始化画布
 /// </summary>
 /// <param name="handle"></param>
 /// <param name="initialSize"></param>
 public Canvas(IRenderer renderer, IPrimitiveProvider provider)
 {
     primitiveProvider = provider ?? throw new ArgumentNullException(nameof(provider));
     Renderer          = renderer;
 }