예제 #1
0
        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;
            }
        }
예제 #2
0
 public LinkState(string inName, LinksArrows inStartArrow, LinksArrows inEndArrow)
 {
     mName       = inName;
     mStartArrow = inStartArrow;
     mEndArrow   = inEndArrow;
 }