public override void OnDoubleClick(ShapeMouseEventArgs args) { if (args.BoundingBox.Data == TextIdentifier) { BeginEditText(args.Sender); } }
public override void OnMouseDown(ShapeMouseEventArgs args) { args.Sender.ClearSelection(); Selected = true; if (args.BoundingBox.Data == RightResizeIdentifier) { mouseDownPos = new Point(args.X, args.Y); SelectedObject = null; args.Redraw = true; } else if (args.BoundingBox.Data == LeftResizeIdentifier) { mouseDownPos = new Point(args.X, args.Y); SelectedObject = null; args.Redraw = true; } else { mouseDownPos = new Point(args.X, args.Y); mouseDownShapePos = Bounds.Location; SelectedObject = null; args.Redraw = true; } }
private static void MovePort(ShapeMouseEventArgs args, Rectangle bounds, ref int offset, ref UmlPortSide side, int oppositeOffset, UmlPortSide oppositeSide) { int x = args.X; int y = args.Y; int half = bounds.Width/2; int center = bounds.X + half; int xd = Math.Abs(x - center); int top = bounds.Top + half - xd; int bottom = bounds.Bottom - half + xd; if (x < center) { //left of side = UmlPortSide.Left; } else { //right of side = UmlPortSide.Right; } if (y < top) side = UmlPortSide.Top; if (y > bottom) side = UmlPortSide.Bottom; if (side == UmlPortSide.Top || side == UmlPortSide.Bottom) { offset = args.X - bounds.Left; if (args.X < bounds.Left) offset = 0; if (args.X > bounds.Right) offset = bounds.Width; } if (side == UmlPortSide.Left || side == UmlPortSide.Right) { offset = args.Y - bounds.Top; if (args.Y < bounds.Top) offset = 0; if (args.Y > bounds.Bottom) offset = bounds.Height; } if ((side == UmlPortSide.Left || side == UmlPortSide.Right) && (oppositeSide == UmlPortSide.Left || oppositeSide == UmlPortSide.Right)) { if (Math.Abs(offset - oppositeOffset) < 10) offset = oppositeOffset; } if ((side == UmlPortSide.Top || side == UmlPortSide.Bottom) && (oppositeSide == UmlPortSide.Top || oppositeSide == UmlPortSide.Bottom)) { if (Math.Abs(offset - oppositeOffset) < 10) offset = oppositeOffset; } }
public override void OnMouseUp(ShapeMouseEventArgs args) { args.Redraw = true; }
public virtual void OnDoubleClick(ShapeMouseEventArgs args) { }
private void MainCanvas_DoubleClick(object sender, EventArgs e) { var x = (int) ((mouseDownPoint.X - MainCanvas.AutoScrollPosition.X)/Zoom); var y = (int) ((mouseDownPoint.Y - MainCanvas.AutoScrollPosition.Y)/Zoom); for (int i = BoundingBoxes.Count - 1; i >= 0; i--) { BoundingBox bbox = BoundingBoxes[i]; if (bbox.Bounds.Contains(x, y)) { if (bbox.Target is Shape) { currentBoundingBox = bbox; var shape = (Shape) bbox.Target; var args = new ShapeMouseEventArgs(); args.BoundingBox = bbox; args.X = x; args.Y = y; args.Button = MouseButtons.Left; args.Sender = this; shape.OnDoubleClick(args); if (args.Redraw) Refresh(); } return; } } }
private void MainCanvas_MouseDown(object sender, MouseEventArgs e) { EndInput(); var x = (int) ((e.X - MainCanvas.AutoScrollPosition.X)/Zoom); var y = (int) ((e.Y - MainCanvas.AutoScrollPosition.Y)/Zoom); if (EditMode == EditMode.BeginDrawRelation) { mouseDownPoint = new Point(e.X, e.Y); EditMode = EditMode.DrawRelation; relationStart = null; for (int i = BoundingItemes.Count - 1; i >= 0; i--) { BoundingItem bitem = BoundingItemes[i]; if (bitem.HitTest(x, y)) { if (bitem.Target is Shape) { relationStart = bitem.Target as Shape; } } } } else if (EditMode == EditMode.Normal) { mouseDownPoint = new Point(e.X, e.Y); mouseDownAutoscrollPoint = new Point(-MainCanvas.AutoScrollPosition.X, -MainCanvas.AutoScrollPosition.Y); for (int i = BoundingItemes.Count - 1; i >= 0; i--) { BoundingItem bitem = BoundingItemes[i]; if (bitem.HitTest(x, y)) { if (bitem.Target is Shape) { currentBoundingItem = bitem; var shape = (Shape) bitem.Target; currentShape = shape; var args = new ShapeMouseEventArgs { BoundingItem = bitem, X = x, Y = y, Button = e.Button, Sender = this, GridSize = GridSize, SnapToGrid = SnapToGrid }; shape.OnMouseDown(args); if (args.Redraw) Refresh(); } return; } } isPanning = true; } }
public override void OnMouseUp(ShapeMouseEventArgs args) { foreach (UmlTypeMemberSection section in TypeMemberSections) { if (args.BoundingBox.Data == section.AddNewIdentifier) { UmlTypeMember newMember = TypedDataSource.CreateTypeMember(section.Name); SelectedObject = newMember; BeginRenameProperty(args.Sender, newMember); args.Redraw = true; } } //if (args.BoundingBox.Data == AddNewPropertyIdentifier) //{ // UmlTypeMember newProperty = TypedDataSource.CreateTypeMember("Property"); // this.SelectedObject = newProperty; // BeginRenameProperty(args.Sender, newProperty); // args.Redraw = true; //} if (args.BoundingBox.Data == TypeExpanderIdentifier) { Expanded = !Expanded; } args.Redraw = true; }
private void MainCanvas_DoubleClick(object sender, EventArgs e) { var x = (int) ((mouseDownPoint.X - MainCanvas.AutoScrollPosition.X)/Zoom); var y = (int) ((mouseDownPoint.Y - MainCanvas.AutoScrollPosition.Y)/Zoom); for (int i = BoundingItemes.Count - 1; i >= 0; i--) { BoundingItem bitem = BoundingItemes[i]; if (bitem.HitTest(x,y)) { if (bitem.Target is Shape) { currentBoundingItem = bitem; var shape = (Shape) bitem.Target; var args = new ShapeMouseEventArgs {BoundingItem = bitem, X = x, Y = y, Button = MouseButtons.Left, Sender = this}; shape.OnDoubleClick(args); if (args.Redraw) Refresh(); } return; } } }
private void MainCanvas_MouseUp(object sender, MouseEventArgs e) { var x = (int) ((e.X - MainCanvas.AutoScrollPosition.X)/Zoom); var y = (int) ((e.Y - MainCanvas.AutoScrollPosition.Y)/Zoom); if (EditMode == EditMode.DrawRelation) { relationEnd = null; for (int i = BoundingItemes.Count - 1; i >= 0; i--) { BoundingItem bitem = BoundingItemes[i]; if (bitem.HitTest(x, y)) { if (bitem.Target is Shape) { relationEnd = bitem.Target as Shape; } } } endDrawRelation(relationStart, relationEnd); //end drawing EditMode = EditMode.Normal; MainCanvas.Refresh(); } else if (EditMode == EditMode.Normal) { Cursor = Cursors.Default; currentBoundingItem = null; isPanning = false; for (int i = BoundingItemes.Count - 1; i >= 0; i--) { BoundingItem bitem = BoundingItemes[i]; if (bitem.HitTest(x, y)) { if (bitem.Target is Shape) { var shape = (Shape) bitem.Target; var args = new ShapeMouseEventArgs { BoundingItem = bitem, X = x, Y = y, Button = e.Button, Sender = this, GridSize = GridSize, SnapToGrid = SnapToGrid }; shape.OnMouseUp(args); if (args.Redraw) Refresh(); } return; } } } }
private void MainCanvas_MouseUp(object sender, MouseEventArgs e) { var x = (int) ((e.X - MainCanvas.AutoScrollPosition.X)/Zoom); var y = (int) ((e.Y - MainCanvas.AutoScrollPosition.Y)/Zoom); if (EditMode == EditMode.DrawRelation) { relationEnd = null; for (int i = BoundingBoxes.Count - 1; i >= 0; i--) { BoundingBox bbox = BoundingBoxes[i]; if (bbox.Bounds.Contains(x, y)) { if (bbox.Target is Shape) { relationEnd = bbox.Target as Shape; } } } endDrawRelation(relationStart, relationEnd); //end drawing EditMode = EditMode.Normal; MainCanvas.Refresh(); } else if (EditMode == EditMode.Normal) { Cursor = Cursors.Default; currentBoundingBox = null; isPanning = false; for (int i = BoundingBoxes.Count - 1; i >= 0; i--) { BoundingBox bbox = BoundingBoxes[i]; if (bbox.Bounds.Contains(x, y)) { if (bbox.Target is Shape) { var shape = (Shape) bbox.Target; var args = new ShapeMouseEventArgs(); args.BoundingBox = bbox; args.X = x; args.Y = y; args.Button = e.Button; args.Sender = this; args.GridSize = GridSize; args.SnapToGrid = SnapToGrid; shape.OnMouseUp(args); if (args.Redraw) Refresh(); } return; } } } }
private void MainCanvas_MouseMove(object sender, MouseEventArgs e) { if (EditMode == EditMode.DrawRelation) { mouseCurrentPoint = new Point(e.X, e.Y); MainCanvas.Refresh(); } else if (EditMode == EditMode.Normal) { var x = (int) ((e.X - MainCanvas.AutoScrollPosition.X)/Zoom); var y = (int) ((e.Y - MainCanvas.AutoScrollPosition.Y)/Zoom); if (e.Button != MouseButtons.None) { if (currentBoundingBox == null) { if (isPanning) { int dx = mouseDownPoint.X - e.X; int dy = mouseDownPoint.Y - e.Y; var newPos = new Point(mouseDownAutoscrollPoint.X + dx, mouseDownAutoscrollPoint.Y + dy); MainCanvas.AutoScrollPosition = newPos; Cursor = Cursors.SizeAll; } } else { var shape = (Shape) currentBoundingBox.Target; var args = new ShapeMouseEventArgs(); args.BoundingBox = currentBoundingBox; args.X = x; args.Y = y; args.Button = e.Button; args.Sender = this; args.GridSize = GridSize; args.SnapToGrid = SnapToGrid; shape.OnMouseMove(args); if (args.Redraw) MainCanvas.Refresh(); } } else { for (int i = BoundingBoxes.Count - 1; i >= 0; i--) { BoundingBox bbox = BoundingBoxes[i]; if (bbox.Bounds.Contains(x, y)) { if (bbox.Target is Shape) { var shape = (Shape) bbox.Target; var args = new ShapeMouseEventArgs(); args.BoundingBox = bbox; args.X = x; args.Y = y; args.Button = e.Button; args.Sender = this; shape.OnMouseMove(args); if (args.Redraw) MainCanvas.Refresh(); } return; } } } } }
private void MainCanvas_MouseDown(object sender, MouseEventArgs e) { EndInput(); var x = (int) ((e.X - MainCanvas.AutoScrollPosition.X)/Zoom); var y = (int) ((e.Y - MainCanvas.AutoScrollPosition.Y)/Zoom); if (EditMode == EditMode.BeginDrawRelation) { mouseDownPoint = new Point(e.X, e.Y); EditMode = EditMode.DrawRelation; relationStart = null; for (int i = BoundingBoxes.Count - 1; i >= 0; i--) { BoundingBox bbox = BoundingBoxes[i]; if (bbox.Bounds.Contains(x, y)) { if (bbox.Target is Shape) { relationStart = bbox.Target as Shape; } } } } else if (EditMode == EditMode.Normal) { mouseDownPoint = new Point(e.X, e.Y); mouseDownAutoscrollPoint = new Point(-MainCanvas.AutoScrollPosition.X, -MainCanvas.AutoScrollPosition.Y); for (int i = BoundingBoxes.Count - 1; i >= 0; i--) { BoundingBox bbox = BoundingBoxes[i]; if (bbox.Bounds.Contains(x, y)) { if (bbox.Target is Shape) { currentBoundingBox = bbox; var shape = (Shape) bbox.Target; currentShape = shape; var args = new ShapeMouseEventArgs(); args.BoundingBox = bbox; args.X = x; args.Y = y; args.Button = e.Button; args.Sender = this; args.GridSize = GridSize; args.SnapToGrid = SnapToGrid; shape.OnMouseDown(args); if (args.Redraw) Refresh(); } return; } } isPanning = true; } }
public override void OnMouseDown(ShapeMouseEventArgs args) { args.Sender.ClearSelection(); Selected = true; if (args.BoundingBox.Data == RightResizeIdentifier) { mouseDownPos = new Point(args.X, args.Y); SelectedObject = null; args.Redraw = true; } else if (args.BoundingBox.Data == LeftResizeIdentifier) { mouseDownPos = new Point(args.X, args.Y); SelectedObject = null; args.Redraw = true; } else if (args.BoundingBox.Data == PropertiesIdentifier) { SelectedObject = PropertiesIdentifier; args.Redraw = true; } else if (args.BoundingBox.Data is UmlTypeMember) { SelectedObject = args.BoundingBox.Data as UmlTypeMember; args.Redraw = true; } else if (args.BoundingBox.Data == CaptionIdentifier) { mouseDownPos = new Point(args.X, args.Y); mouseDownShapePos = Bounds.Location; SelectedObject = null; args.Redraw = true; } else { foreach (UmlTypeMemberSection section in TypeMemberSections) { if (args.BoundingBox.Data == section.CaptionIdentifier) { SelectedObject = section.CaptionIdentifier; args.Redraw = true; } if (args.BoundingBox.Data == section.ExpanderIdentifier) { SelectedObject = section.CaptionIdentifier; section.Expanded = !section.Expanded; args.Redraw = true; } } } }
private void MainCanvas_MouseMove(object sender, MouseEventArgs e) { if (EditMode == EditMode.DrawRelation) { mouseCurrentPoint = new Point(e.X, e.Y); MainCanvas.Refresh(); } else if (EditMode == EditMode.Normal) { var x = (int) ((e.X - MainCanvas.AutoScrollPosition.X)/Zoom); var y = (int) ((e.Y - MainCanvas.AutoScrollPosition.Y)/Zoom); if (e.Button != MouseButtons.None) { if (currentBoundingItem == null) { if (isPanning) { int dx = mouseDownPoint.X - e.X; int dy = mouseDownPoint.Y - e.Y; var newPos = new Point(mouseDownAutoscrollPoint.X + dx, mouseDownAutoscrollPoint.Y + dy); MainCanvas.AutoScrollPosition = newPos; Cursor = Cursors.SizeAll; } } else { var shape = (Shape) currentBoundingItem.Target; var args = new ShapeMouseEventArgs { BoundingItem = currentBoundingItem, X = x, Y = y, Button = e.Button, Sender = this, GridSize = GridSize, SnapToGrid = SnapToGrid }; shape.OnMouseMove(args); if (args.Redraw) MainCanvas.Refresh(); } } else { for (int i = BoundingItemes.Count - 1; i >= 0; i--) { BoundingItem bitem = BoundingItemes[i]; if (bitem.HitTest(x, y)) { if (bitem.Target is Shape) { var shape = (Shape) bitem.Target; var args = new ShapeMouseEventArgs {BoundingItem = bitem, X = x, Y = y, Button = e.Button, Sender = this}; shape.OnMouseMove(args); if (args.Redraw) MainCanvas.Refresh(); } return; } } } } }
public override void OnMouseMove(ShapeMouseEventArgs args) { if (args.BoundingBox.Data == RightResizeIdentifier && args.Button == MouseButtons.Left) { int diff = args.X - Bounds.Left; if (diff < 100) diff = 100; Bounds = new Rectangle(Bounds.X, Bounds.Y, diff, Bounds.Height); args.Redraw = true; } if (args.BoundingBox.Data == LeftResizeIdentifier && args.Button == MouseButtons.Left) { int diff = Bounds.Right - args.X; if (diff < 100) diff = 100; if (diff + args.X > Bounds.Right) { Bounds = new Rectangle(Bounds.Right - 100, Bounds.Y, 100, Bounds.Height); args.Redraw = true; } else { Bounds = new Rectangle(args.X, Bounds.Y, diff, Bounds.Height); args.Redraw = true; } } if (args.BoundingBox.Data == CaptionIdentifier && args.Button == MouseButtons.Left) { int dx = args.X - mouseDownPos.X; int dy = args.Y - mouseDownPos.Y; int shapeX = mouseDownShapePos.X + dx; int shapeY = mouseDownShapePos.Y + dy; if (args.SnapToGrid) { shapeX = shapeX - shapeX%args.GridSize; shapeY = shapeY - shapeY%args.GridSize; } if (shapeX < 0) shapeX = 0; if (shapeY < 0) shapeY = 0; Bounds = new Rectangle(shapeX, shapeY, Bounds.Width, Bounds.Height); args.Redraw = true; } }
public override void OnMouseDown(ShapeMouseEventArgs args) { args.Sender.ClearSelection(); Selected = true; args.Redraw = true; }
public override void OnDoubleClick(ShapeMouseEventArgs args) { foreach (UmlTypeMemberSection section in TypeMemberSections) { if (args.BoundingBox.Data == section.CaptionIdentifier) { section.Expanded = !section.Expanded; args.Redraw = true; } } if (args.BoundingBox.Data == CaptionIdentifier) { BeginRenameType(args.Sender); } if (args.BoundingBox.Data is UmlTypeMember) { BeginRenameProperty(args.Sender, args.BoundingBox.Data as UmlTypeMember); args.Redraw = true; } }
public override void OnMouseMove(ShapeMouseEventArgs args) { if (args.BoundingItem.Data == StartPortIdentifier && args.Button == MouseButtons.Left) { Rectangle bounds = DataSource.Start.Bounds; int offset = 0; UmlPortSide side = DataSource.StartPortSide; int oppositeOffset = DataSource.EndPortOffset; UmlPortSide oppositeSide = DataSource.EndPortSide; MovePort(args, bounds, ref offset, ref side, oppositeOffset, oppositeSide); DataSource.StartPortSide = side; DataSource.StartPortOffset = offset; args.Redraw = true; } if (args.BoundingItem.Data == EndPortIdentifier && args.Button == MouseButtons.Left) { Rectangle bounds = DataSource.End.Bounds; int offset = 0; UmlPortSide side = DataSource.EndPortSide; int oppositeOffset = DataSource.StartPortOffset; UmlPortSide oppositeSide = DataSource.StartPortSide; MovePort(args, bounds, ref offset, ref side, oppositeOffset, oppositeSide); DataSource.EndPortSide = side; DataSource.EndPortOffset = offset; args.Redraw = true; } }
public virtual void OnMouseUp(ShapeMouseEventArgs args) { }
public override void OnMouseDown(ShapeMouseEventArgs args) { args.Sender.ClearSelection(); Selected = true; args.Redraw = true; mouseDownPoint = new Point(args.X, args.Y); }