Module: wine Branch: master Commit: 628c9a69c1ee6b2321d81866eab299aca03e95eb URL: http://source.winehq.org/git/wine.git/?a=commit;h=628c9a69c1ee6b2321d81866ea...
Author: Evan Stade estade@gmail.com Date: Tue Jul 17 19:30:50 2007 -0700
gdiplus: Added GdipClonePen.
---
dlls/gdiplus/gdiplus.spec | 2 +- dlls/gdiplus/pen.c | 22 ++++++++++++++++++++++ include/gdiplusflat.h | 1 + 3 files changed, 24 insertions(+), 1 deletions(-)
diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec index cc64b98..ee1a576 100644 --- a/dlls/gdiplus/gdiplus.spec +++ b/dlls/gdiplus/gdiplus.spec @@ -51,7 +51,7 @@ @ stub GdipCloneImageAttributes @ stub GdipCloneMatrix @ stub GdipClonePath -@ stub GdipClonePen +@ stdcall GdipClonePen(ptr ptr) @ stub GdipCloneRegion @ stub GdipCloneStringFormat @ stdcall GdipClosePathFigure(ptr) diff --git a/dlls/gdiplus/pen.c b/dlls/gdiplus/pen.c index 53559bd..a2cbff5 100644 --- a/dlls/gdiplus/pen.c +++ b/dlls/gdiplus/pen.c @@ -65,6 +65,28 @@ static DWORD gdip_to_gdi_join(GpLineJoin join) } }
+GpStatus WINGDIPAPI GdipClonePen(GpPen *pen, GpPen **clonepen) +{ + LOGBRUSH lb; + + if(!pen || !clonepen) + return InvalidParameter; + + *clonepen = GdipAlloc(sizeof(GpPen)); + if(!*clonepen) return OutOfMemory; + + memcpy(*clonepen, pen, sizeof(GpPen)); + + lb.lbStyle = BS_SOLID; + lb.lbColor = (*clonepen)->color; + lb.lbHatch = 0; + + (*clonepen)->gdipen = ExtCreatePen((*clonepen)->style, + roundr((*clonepen)->width), &lb, 0, NULL); + + return Ok; +} + GpStatus WINGDIPAPI GdipCreatePen1(ARGB color, FLOAT width, GpUnit unit, GpPen **pen) { diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h index fb760f0..8388f95 100644 --- a/include/gdiplusflat.h +++ b/include/gdiplusflat.h @@ -27,6 +27,7 @@ extern "C" { #endif
+GpStatus WINGDIPAPI GdipClonePen(GpPen*,GpPen**); GpStatus WINGDIPAPI GdipCreatePen1(ARGB,REAL,GpUnit,GpPen**); GpStatus WINGDIPAPI GdipDeletePen(GpPen*); GpStatus WINGDIPAPI GdipSetPenDashStyle(GpPen*,GpDashStyle);