private void DrawLinkBound(Graphics graphics, LinksArrows inArrow, Brush inBrush, Point inPoint, int inArrowSize, int inSign) { Point ArrowUp = new Point(inPoint.X + (inArrowSize * inSign), inPoint.Y + Math.Max(1, inArrowSize / 2)); Point ArrowDown = new Point(inPoint.X + (inArrowSize * inSign), inPoint.Y - Math.Max(1, inArrowSize / 2)); Point ArrowCenter = new Point(inPoint.X + (int)Math.Max(1, (double)inArrowSize * .7) * inSign, inPoint.Y); switch (inArrow) { case LinksArrows.Lock: graphics.FillRectangle(inBrush, inPoint.X + (inSign * 3 * (inArrowSize / 4)) - (inArrowSize / 4), inPoint.Y - (inArrowSize / 2), inArrowSize / 2, inArrowSize); //graphics.FillClosedCurve(inBrush, new Point[] { ArrowUp, ArrowCenter, ArrowDown }); break; case LinksArrows.SolidArrow: graphics.FillPolygon(inBrush, new Point[] { ArrowUp, ArrowCenter, ArrowDown }); break; case LinksArrows.Scaling: graphics.FillRectangle(inBrush, inPoint.X + (inSign * 4 * (inArrowSize / 4)) - (inArrowSize / 6), inPoint.Y - (inArrowSize / 2), inArrowSize / 3, inArrowSize / 3); graphics.FillRectangle(inBrush, inPoint.X + (inSign * 4 * (inArrowSize / 3)) - (inArrowSize / 4), inPoint.Y - inArrowSize, inArrowSize / 2, inArrowSize / 2); break; default: graphics.FillPolygon(inBrush, new Point[] { inPoint, ArrowUp, ArrowCenter, ArrowDown }); break; } }
public LinkState(string inName, LinksArrows inStartArrow, LinksArrows inEndArrow) { mName = inName; mStartArrow = inStartArrow; mEndArrow = inEndArrow; }