示例#1
0
        internal void draw(Graphics g, RectangleF nodeRect, float angle,
                           MarkDrawArgs customDrawArgs, float markSize)
        {
            float cX = nodeRect.X + nodeRect.Width * x / 100;
            float cY = nodeRect.Y + nodeRect.Height * y / 100;
            float d  = markSize / 2;

            if (angle != 0)
            {
                PointF point = new PointF(cX, cY);
                point = Utilities.rotatePointAt(point,
                                                Utilities.getCenter(nodeRect), angle);
                cX = point.X;
                cY = point.Y;
            }

            switch (markStyle)
            {
            case MarkStyle.Cross:
            {
                System.Drawing.Pen pen = new System.Drawing.Pen(color, 0);
                g.DrawLine(pen, cX - d, cY, cX + d, cY);
                g.DrawLine(pen, cX, cY - d, cX, cY + d);
                pen.Dispose();
            }
            break;

            case MarkStyle.X:
            {
                System.Drawing.Pen pen = new System.Drawing.Pen(color, 0);
                g.DrawLine(pen, cX - d, cY - d, cX + d, cY + d);
                g.DrawLine(pen, cX + d, cY - d, cX - d, cY + d);
                pen.Dispose();
            }
            break;

            case MarkStyle.Circle:
            {
                System.Drawing.Pen pen = new System.Drawing.Pen(color, 0);
                g.DrawEllipse(pen, cX - d, cY - d, 2 * d, 2 * d);
                pen.Dispose();
            }
            break;

            case MarkStyle.Rectangle:
            {
                System.Drawing.Pen pen = new System.Drawing.Pen(color, 0);
                g.DrawRectangle(pen, cX - d, cY - d, 2 * d, 2 * d);
                pen.Dispose();
            }
            break;

            case MarkStyle.Custom:
            {
                customDrawArgs.location = new PointF(cX, cY);
                customDrawArgs.Node.drawMark(customDrawArgs);
            }
            break;
            }
        }
示例#2
0
		internal override void drawAnchors(Graphics g)
		{
			base.drawAnchors(g);

			for (int r = CurrentRow; r < rowsCount; r++)
			{
				Row row = rowsList[r];
				AnchorPattern pattern = row.AnchorPattern;

				if (pattern == null)
					pattern = this.RowAnchorPattern;

				if (pattern != null)
				{
					int i = 0;
					foreach (AnchorPoint point in pattern.Points)
					{
						RectangleF rect = RectangleF.Empty;

						if (point.Column == -1)
							rect = getRowRect(r);
						else
							rect = getSpannedCellRect(r, point.Column);

						if (rect.Bottom > this.rect.Bottom)
							break;

						MarkDrawArgs args = null;
						if (point.MarkStyle == MarkStyle.Custom)
							args = new MarkDrawArgs(g, new PointF(0, 0),
								this, pattern, i);
						i++;
						point.draw(g, rect, 0, args,
							Constants.getMarkSize(flowChart.MeasureUnit));
					}
				}
			}
		}
示例#3
0
		internal virtual void drawAnchors(Graphics g)
		{
			if (anchorPattern == null) return;
			for (int i = 0; i < anchorPattern.Points.Count; ++i)
			{
				AnchorPoint ap = anchorPattern.Points[i];
				MarkDrawArgs args = null;
				if (ap.MarkStyle == MarkStyle.Custom)
					args = new MarkDrawArgs(g, new PointF(0, 0), this, anchorPattern, i);
				ap.draw(g, getBoundingRect(), rotation(),
					args, Constants.getMarkSize(flowChart.MeasureUnit));
			}
		}
示例#4
0
		internal void drawMark(MarkDrawArgs args)
		{
			if (DrawMark != null)
				DrawMark(this, args);
		}
示例#5
0
    internal void draw(Graphics g, RectangleF nodeRect, float angle,
			MarkDrawArgs customDrawArgs, float markSize)
		{
			float cX = nodeRect.X + nodeRect.Width * x / 100;
			float cY = nodeRect.Y + nodeRect.Height * y / 100;
			float d = markSize / 2;

			if (angle != 0)
			{
				PointF point = new PointF(cX, cY);
				point = Utilities.rotatePointAt(point,
					Utilities.getCenter(nodeRect), angle);
				cX = point.X;
				cY = point.Y;
			}

			switch (markStyle)
			{
				case MarkStyle.Cross:
					{
						System.Drawing.Pen pen = new System.Drawing.Pen(color, 0);
						g.DrawLine(pen, cX - d, cY, cX + d, cY);
						g.DrawLine(pen, cX, cY - d, cX, cY + d);
						pen.Dispose();
						
					}
					break;
				case MarkStyle.X:
					{
						System.Drawing.Pen pen = new System.Drawing.Pen(color, 0);
						g.DrawLine(pen, cX - d, cY - d, cX + d, cY + d);
						g.DrawLine(pen, cX + d, cY - d, cX - d, cY + d);
						pen.Dispose();
						
					}
					break;
				case MarkStyle.Circle:
					{
						System.Drawing.Pen pen = new System.Drawing.Pen(color, 0);
						g.DrawEllipse(pen, cX - d, cY - d, 2*d, 2*d);
						pen.Dispose();
					}
					break;
				case MarkStyle.Rectangle:
					{
						System.Drawing.Pen pen = new System.Drawing.Pen(color, 0);
						g.DrawRectangle(pen, cX - d, cY - d, 2*d, 2*d);
						pen.Dispose();
					}
					break;
				case MarkStyle.Custom:
					{
						customDrawArgs.location = new PointF(cX, cY);
						customDrawArgs.Node.drawMark(customDrawArgs);
					}
					break;
			}
		}
示例#6
0
		internal void drawMark(MarkDrawArgs args)
		{
			flowChart.drawMark(args);
		}
示例#7
0
 internal void drawMark(MarkDrawArgs args)
 {
     flowChart.drawMark(args);
 }