Example #1
0
 public MarkerMenuItem(DMarker marker, EventHandler onClick)
     : base()
 {
     DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;
     Text = "XXXXXXX";
     Click += onClick;
     this.value = marker;
 }
Example #2
0
 public DAuthorProperties()
 {
     fill = DColor.White;
     stroke = DColor.Black;
     strokeWidth = 1;
     strokeStyle = DStrokeStyle.Solid;
     startMarker = DMarker.None;
     endMarker = DMarker.None;
     alpha = 1;
     fontName = "Arial";
     fontSize = 14;
     bold = false;
     italics = false;
     underline = false;
     strikethrough = false;
 }
Example #3
0
 void btnMarker_MarkerChanged(object sender, DMarker marker)
 {
     if (sender == btnStartMarker)
     {
         if (de != null && de.HsmState == DHsmState.Select)
             UpdateSelectedFigures(btnStartMarker);
         else
             dap.StartMarker = btnStartMarker.Value;
     }
     else if (sender == btnEndMarker)
     {
         if (de != null && de.HsmState == DHsmState.Select)
             UpdateSelectedFigures(btnEndMarker);
         else
             dap.EndMarker = btnEndMarker.Value;
     }
 }
Example #4
0
 void MenuItem_OnClick(object sender, EventArgs e)
 {
     Value = ((MarkerMenuItem)sender).Value;
     if (MarkerChanged != null)
         MarkerChanged(this, ((MarkerMenuItem)sender).Value);
 }
Example #5
0
 public static void DrawMarkerIcon(Graphics g, Rectangle r, Color color, DMarker marker, bool start)
 {
     const int sz = 8;
     const int hsz = sz / 2;
     int mid = r.Height / 2 + 1;
     Pen p = new Pen(color, sz / 2);
     Brush b = new SolidBrush(color);
     switch (marker)
     {
         case DMarker.None:
             break;
         case DMarker.Arrow:
             if (start)
                 g.FillPolygon(b, new Point[3] { new Point(r.Left, mid), new Point(r.Left + sz, mid - hsz),
                                                 new Point(r.Left + sz, mid + hsz)});
             else
                 g.FillPolygon(b, new Point[3] { new Point(r.Right, mid), new Point(r.Right - sz, mid - hsz),
                                                 new Point(r.Right - sz, mid + hsz)});
         break;
         case DMarker.Dot:
             if (start)
                 g.FillEllipse(b, new Rectangle(r.Left, mid - hsz, sz, sz));
             else
                 g.FillEllipse(b, new Rectangle(r.Right - sz, mid - hsz, sz, sz));
             break;
         case DMarker.Square:
             if (start)
                 g.FillRectangle(b, new Rectangle(r.Left, mid - hsz, sz, sz));
             else
                 g.FillRectangle(b, new Rectangle(r.Right - sz, mid - hsz, sz, sz));
             break;
         case DMarker.Diamond:
             if (start)
                 g.FillPolygon(b, new Point[4] { new Point(r.Left + hsz, mid - hsz), new Point(r.Left + sz, mid),
                                                 new Point(r.Left + hsz, mid + hsz), new Point(r.Left, mid)});
             else
                 g.FillPolygon(b, new Point[4] { new Point(r.Right - hsz, mid - hsz), new Point(r.Right - sz, mid),
                                                 new Point(r.Right - hsz, mid + hsz), new Point(r.Right, mid)});
             break;
     }
     PointF pt1, pt2;
     if (start)
     {
         pt1 = new PointF(r.X + hsz, mid);
         pt2 = new PointF(r.Right, mid);
     }
     else
     {
         pt1 = new PointF(r.Right - hsz, mid);
         pt2 = new PointF(r.Left, mid);
     }
     g.DrawLine(p, pt1, pt2);
 }
Example #6
0
 public void SetProperties(Type figureClass, DAuthorProperties dap)
 {
     if (typeof(IFillable).IsAssignableFrom(figureClass))
         this.fill = dap.Fill;
     if (typeof(IStrokeable).IsAssignableFrom(figureClass))
     {
         this.stroke = dap.Stroke;
         this.strokeWidth = dap.StrokeWidth;
         this.strokeStyle = dap.StrokeStyle;
     }
     if (typeof(IMarkable).IsAssignableFrom(figureClass))
     {
         this.startMarker = dap.StartMarker;
         this.endMarker = dap.EndMarker;
     }
     if (typeof(IAlphaBlendable).IsAssignableFrom(figureClass))
         this.alpha = dap.Alpha;
     if (typeof(ITextable).IsAssignableFrom(figureClass))
     {
         this.fontName = dap.FontName;
         this.fontSize = dap.FontSize;
         this.bold = dap.Bold;
         this.italics = dap.Italics;
         this.underline = dap.Underline;
         this.strikethrough = dap.Strikethrough;
     }
     DoPropertyChanged();
 }
Example #7
0
 public void SetProperties(DAuthorProperties dap)
 {
     this.fill = dap.Fill;
     this.stroke = dap.Stroke;
     this.strokeWidth = dap.StrokeWidth;
     this.strokeStyle = dap.StrokeStyle;
     this.startMarker = dap.StartMarker;
     this.endMarker = dap.EndMarker;
     this.alpha = dap.Alpha;
     this.fontName = dap.FontName;
     this.fontSize = dap.FontSize;
     this.bold = dap.Bold;
     this.italics = dap.Italics;
     this.underline = dap.Underline;
     this.strikethrough = dap.Strikethrough;
     DoPropertyChanged();
 }
Example #8
0
 public void SetProperties(DColor fill, DColor stroke, double strokeWidth, DStrokeStyle strokeStyle, 
     DMarker startMarker, DMarker endMarker, double alpha, string fontName, double fontSize, bool bold,
     bool italics, bool underline, bool strikethrough)
 {
     this.fill = fill;
     this.stroke = stroke;
     this.strokeWidth = strokeWidth;
     this.strokeStyle = strokeStyle;
     this.startMarker = startMarker;
     this.endMarker = endMarker;
     this.alpha = alpha;
     this.fontName = fontName;
     this.fontSize = fontSize;
     this.bold = bold;
     this.italics = italics;
     this.underline = underline;
     this.strikethrough = strikethrough;
     DoPropertyChanged();
 }
Example #9
0
 public static DPoints MarkerPoints(DMarker marker, DPoint center, DPoint fromPoint, double size)
 {
     return MarkerPoints(marker, center, DGeom.AngleBetweenPoints(fromPoint, center) - DGeom.HalfPi, size);
 }
Example #10
0
 public static DPoints MarkerPoints(DMarker marker, DPoint center, double angle, double size)
 {
     double hsz = size / 2;
     DPoints pts = new DPoints();
     DPoint pt;
     switch (marker)
     {
         case DMarker.Arrow:
             pt = DGeom.PointFromAngle(center, angle, hsz);
             pts.Add(pt);
             pt = DGeom.PointFromAngle(pt, angle + DGeom.HalfPi, hsz);
             pt = DGeom.PointFromAngle(pt, angle + Math.PI, size);
             pts.Add(pt);
             pt = DGeom.PointFromAngle(pt, angle - DGeom.HalfPi, size);
             pts.Add(pt);
             break;
         case DMarker.Dot:
             int n = (int)Math.Round(size);
             if (n < 4)
                 n = 4;
             double angleSegment = (Math.PI * 2) / n;
             for (int i = 0; i < n; i++)
                 pts.Add(DGeom.PointFromAngle(center, angle + angleSegment * i, hsz));
             break;
         case DMarker.Square:
             pt = DGeom.PointFromAngle(center, angle, hsz);
             pt = DGeom.PointFromAngle(pt, angle + DGeom.HalfPi, hsz);
             pts.Add(pt);
             pt = DGeom.PointFromAngle(pt, angle + Math.PI, size);
             pts.Add(pt);
             pt = DGeom.PointFromAngle(pt, angle - DGeom.HalfPi, size);
             pts.Add(pt);
             pt = DGeom.PointFromAngle(pt, angle, size);
             pts.Add(pt);
             break;
         case DMarker.Diamond:
             pt = DGeom.PointFromAngle(center, angle, hsz);
             pts.Add(pt); 
             pt = DGeom.PointFromAngle(pt, angle + DGeom.HalfPi, hsz);
             pt = DGeom.PointFromAngle(pt, angle + Math.PI, hsz);
             pts.Add(pt);
             pt = DGeom.PointFromAngle(pt, angle + Math.PI, hsz);
             pt = DGeom.PointFromAngle(pt, angle - DGeom.HalfPi, hsz);
             pts.Add(pt);
             pt = DGeom.PointFromAngle(pt, angle - DGeom.HalfPi, hsz);
             pt = DGeom.PointFromAngle(pt, angle, hsz);
             pts.Add(pt);
             break;
     }
     return pts;
 }