Esempio n. 1
0
 public abstract void DrawPolyline(DPoints pts, DColor color, double alpha, double strokeWidth, DStrokeStyle strokeStyle, DStrokeJoin strokeJoin, DStrokeCap strokeCap);
Esempio n. 2
0
 void WmfSelectGdiObject(int idx)
 {
     // this should not be happening but sometimes does?
     if (idx == WmfGdiObjects.Count)
         idx--;
     // select object and apply properties to our graphics primatives
     object o = WmfGdiObjects[idx];
     if (o is WmfGdiBrush)
         fill = ((WmfGdiBrush)o).Fill;
     else if (o is WmfGdiPen)
     {
         stroke = ((WmfGdiPen)o).Stroke;
         strokeWidth = ((WmfGdiPen)o).StrokeWidth;
         strokeStyle = ((WmfGdiPen)o).StrokeStyle;
         strokeCap = ((WmfGdiPen)o).StrokeCap;
         strokeJoin = ((WmfGdiPen)o).StrokeJoin;
     }
 }
Esempio n. 3
0
 public override void DrawLine(DPoint pt1, DPoint pt2, DColor color, double alpha, DStrokeStyle strokeStyle, double strokeWidth, DStrokeCap strokeCap)
 {
     CreatePenIndirect(strokeWidth, color, strokeStyle, DStrokeJoin.Round, strokeCap);
     SelectObject(0);
     CreateBrushIndirect();
     SelectObject(1);
     MoveTo(pt1);
     LineTo(pt2);
     DeleteObject(1);
     DeleteObject(0);
 }
Esempio n. 4
0
 public abstract void DrawLine(DPoint pt1, DPoint pt2, DColor color, double alpha, DStrokeStyle strokeStyle, double strokeWidth, DStrokeCap strokeCap);
Esempio n. 5
0
 public override void DrawPolyline(DPoints pts, DColor color, double alpha, double strokeWidth, DStrokeStyle strokeStyle, DStrokeJoin strokeJoin, DStrokeCap strokeCap)
 {
     if (pts.Count > 1)
         g.DrawLines(MakePen(WFHelper.MakeColor(color, alpha), strokeWidth, strokeStyle, strokeJoin, strokeCap), MakePoints(pts));
 }
Esempio n. 6
0
 uint StrokePenStyle(DStrokeStyle ss, DStrokeJoin sj, DStrokeCap sc)
 {
     Emf.PenStyle _ss = 0;
     switch (ss)
     {
         case DStrokeStyle.Dash:
             _ss = Emf.PenStyle.PS_DASH;
             break;
         case DStrokeStyle.DashDot:
             _ss = Emf.PenStyle.PS_DASHDOT;
             break;
         case DStrokeStyle.DashDotDot:
             _ss = Emf.PenStyle.PS_DASHDOTDOT;
             break;
         case DStrokeStyle.Dot:
             _ss = Emf.PenStyle.PS_DOT;
             break;
         case DStrokeStyle.Solid:
             _ss = Emf.PenStyle.PS_SOLID;
             break;
     }
     Emf.PenStyle _sj = 0;
     switch (sj)
     {
         case DStrokeJoin.Bevel:
             _sj = Emf.PenStyle.PS_JOIN_BEVEL;
             break;
         case DStrokeJoin.Mitre:
             _sj = Emf.PenStyle.PS_JOIN_MITER;
             break;
         case DStrokeJoin.Round:
             _sj = Emf.PenStyle.PS_JOIN_ROUND;
             break;
     }
     Emf.PenStyle _sc = 0;
     switch (sc)
     {
         case DStrokeCap.Butt:
             _sc = Emf.PenStyle.PS_ENDCAP_FLAT;
             break;
         case DStrokeCap.Round:
             _sc = Emf.PenStyle.PS_ENDCAP_ROUND;
             break;
         case DStrokeCap.Square:
             _sc = Emf.PenStyle.PS_ENDCAP_SQUARE;
             break;
     }
     return (uint)(_ss | _sj | _sc);
 }
Esempio n. 7
0
 public override void DrawPolyline(DPoints pts, DColor color, double alpha, double strokeWidth, DStrokeStyle strokeStyle, DStrokeJoin strokeJoin, DStrokeCap strokeCap)
 {
     UpdateMaxNumOfObjects(1);
     CreatePen(1, strokeWidth, color, strokeStyle, strokeJoin, strokeCap);
     SelectObject(1);
     SelectObject((uint)Emf.StockObject.NULL_BRUSH);
     Polyline(pts);
     DeleteObject(1);
 }
Esempio n. 8
0
 public override void DrawPolyline(DPoints pts, DColor color, double alpha, double strokeWidth, DStrokeStyle strokeStyle, DStrokeJoin strokeJoin, DStrokeCap strokeCap)
 {
     if (pts.Count > 1)
     {
         cr.SetSource(MakeColor(color, alpha));
         CairoStrokeStyle(cr, strokeStyle, strokeWidth);
         cr.LineWidth = strokeWidth;
         cr.LineJoin = MakeLineJoin(strokeJoin);
         cr.LineCap = MakeLineCap(strokeCap);
         cr.MoveTo(pts[0].X, pts[0].Y);
         for (int i = 1; i < pts.Count; i++)
             cr.LineTo(pts[i].X, pts[i].Y);
         cr.Stroke();
     }
 }
Esempio n. 9
0
 void CreatePenIndirect(double sw, DColor col, DStrokeStyle ss, DStrokeJoin sj, DStrokeCap sc)
 {
     WriteFuncHeader(8, Wmf.CreatePenIndirect);
     WriteUShort(StrokePenStyle(ss, sj, sc));
     WriteUShort((ushort)sw);
     WriteUShort((ushort)sw);
     WriteColor(col);
     // need this for Wmf.Header
     numOfObjects++;
 }
Esempio n. 10
0
 public override void DrawLine(DPoint pt1, DPoint pt2, DColor color, double alpha, DStrokeStyle strokeStyle, double strokeWidth, DStrokeCap strokeCap)
 {
     UpdateMaxNumOfObjects(1);
     CreatePen(1, strokeWidth, color, strokeStyle, DStrokeJoin.Round, strokeCap);
     SelectObject(1);
     SelectObject((uint)Emf.StockObject.NULL_BRUSH);
     MoveTo(pt1);
     LineTo(pt2);
     DeleteObject(1);
 }
Esempio n. 11
0
 public override void DrawPolyline(DPoints pts, DColor color, double alpha, double strokeWidth, DStrokeStyle strokeStyle, DStrokeJoin strokeJoin, DStrokeCap strokeCap)
 {
     CreatePenIndirect(strokeWidth, color, strokeStyle, strokeJoin, strokeCap);
     SelectObject(0);
     CreateBrushIndirect();
     SelectObject(1);
     Polyline(pts);
     DeleteObject(1);
     DeleteObject(0);
 }
Esempio n. 12
0
 private Pen MakePen(Color color, double strokeWidth, DStrokeStyle strokeStyle, DStrokeJoin strokeJoin, DStrokeCap strokeCap)
 {
     Pen p = new Pen(color, (float)strokeWidth);
     p.DashStyle = MakeDashStyle(strokeStyle);
     p.LineJoin = MakeLineJoin(strokeJoin);
     p.SetLineCap(MakeLineCap(strokeCap), MakeLineCap(strokeCap), DashCap.Flat);
     return p;
 }
Esempio n. 13
0
 private DashCap MakeDashCap(DStrokeCap strokeCap)
 {
     switch (strokeCap)
     {
         case DStrokeCap.Butt:
             return DashCap.Flat;
         case DStrokeCap.Round:
             return DashCap.Round;
         case DStrokeCap.Square:
             return DashCap.Flat;
     }
     return DashCap.Flat;
 }
Esempio n. 14
0
 public WmfGdiPen(DColor stroke, double strokeWidth, DStrokeStyle strokeStyle, DStrokeCap strokeCap, DStrokeJoin strokeJoin)
 {
     Stroke = stroke;
     StrokeWidth = strokeWidth;
     StrokeStyle = strokeStyle;
     StrokeCap = strokeCap;
     StrokeJoin = strokeJoin;
 }
Esempio n. 15
0
 void CreatePen(uint objectIndex, double sw, DColor col, DStrokeStyle ss, DStrokeJoin sj, DStrokeCap sc)
 {
     WriteRecordHeader(Emf.RecordType.EMR_CREATEPEN, 28);
     WriteUInt(objectIndex);
     WriteUInt(StrokePenStyle(ss, sj, sc));
     WriteUInt((uint)sw);
     WriteUInt((uint)sw);
     WriteColor(col);
 }
Esempio n. 16
0
 public override void DrawLine(DPoint pt1, DPoint pt2, DColor color, double alpha, DStrokeStyle strokeStyle, double strokeWidth, DStrokeCap strokeCap)
 {
     cr.SetSource(MakeColor(color, alpha));
     cr.LineWidth = strokeWidth;
     CairoStrokeStyle(cr, strokeStyle, strokeWidth);
     cr.LineCap = MakeLineCap(strokeCap);
     cr.MoveTo(pt1.X, pt1.Y);
     cr.LineTo(pt2.X, pt2.Y);
     cr.Stroke();
 }
Esempio n. 17
0
 void ExtCreatePen(uint objectIndex, double sw, DColor col, DStrokeStyle ss, DStrokeJoin sj, DStrokeCap sc)
 {
     WriteRecordHeader(Emf.RecordType.EMR_EXTCREATEPEN, 52);
     WriteUInt(objectIndex);
     WriteUInt(0);
     WriteUInt(0);
     WriteUInt(0);
     WriteUInt(0);
     // LogPenEx
     WriteUInt(StrokePenStyle(ss, sj, sc));
     WriteUInt((uint)sw);
     WriteUInt(Wmf.BS_SOLID);
     WriteColor(col);
     WriteUInt(0);
     WriteUInt(0);
 }
Esempio n. 18
0
 LineCap MakeLineCap(DStrokeCap strokeCap)
 {
     switch (strokeCap)
     {
         case DStrokeCap.Butt:
             return LineCap.Butt;
         case DStrokeCap.Round:
             return LineCap.Round;
         case DStrokeCap.Square:
             return LineCap.Square;
     }
     return LineCap.Butt;
 }
Esempio n. 19
0
 public override void DrawLine(DPoint pt1, DPoint pt2, DColor color, double alpha, DStrokeStyle strokeStyle, double strokeWidth, DStrokeCap strokeCap)
 {
     // see:
     // http://groups.google.com/group/microsoft.public.dotnet.framework.drawing/browse_thread/thread/c52a43702fccaab8/838a26535bf6e2e6?lnk=st&q=drawline+outofmemoryexception#838a26535bf6e2e6
     // http://www.codeprof.com/dev-archive/123/2-8-1234065.shtm
     try
     {
         g.DrawLine(MakePen(WFHelper.MakeColor(color, alpha), strokeWidth, strokeStyle, DStrokeJoin.Mitre, strokeCap), (float)pt1.X, (float)pt1.Y, (float)pt2.X, (float)pt2.Y);
     }
     catch { }
 }