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; }
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; }
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; }
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); }
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); } }
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); }
/// <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; } }
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; }
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); }
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; }
protected override void InitializeResizeHandle(IPrimitiveProvider provider) { throw new NotImplementedException(); }
public LineResizeHandle(PointF location, AbstractShape parent, LineResizeType type, IPrimitiveProvider primitiveProvider) : base(location, parent, primitiveProvider) { Type = type; }
public AnchorHandle(PointF location, AbstractShape parent, string name, IPrimitiveProvider primitiveProvider) : base(location, parent, primitiveProvider) { __lines = new List <Line>(); Name = name; }
protected abstract void InitializeResizeHandle(IPrimitiveProvider provider);
public Rect(IPrimitiveProvider primitiveProvider) : this(new PointF(0, 0), new SizeF(1, 1), primitiveProvider) { }
public RectResizeHandle(PointF location, AbstractShape parent, CornerType type, IPrimitiveProvider provider) : base(location, parent, provider) { Type = type; }
/// <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; }