[3/5] gdiplus: Implemented GdipSetCustomLineCapStrokeJoin + tests

Nikolay Sivov bunglehead at gmail.com
Sat Jul 26 03:48:05 CDT 2008


Changelog:
    - Implemented GdipSetCustomLineCapStrokeJoin + tests

---
 dlls/gdiplus/customlinecap.c       |    9 +++++----
 dlls/gdiplus/tests/customlinecap.c |   19 +++++++++++++++++++
 include/gdiplusflat.h              |    1 +
 3 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/dlls/gdiplus/customlinecap.c b/dlls/gdiplus/customlinecap.c
index 429b144..721a4f5 100644
--- a/dlls/gdiplus/customlinecap.c
+++ b/dlls/gdiplus/customlinecap.c
@@ -175,15 +175,16 @@ GpStatus WINGDIPAPI GdipSetCustomLineCapBaseInset(GpCustomLineCap* custom,
     return NotImplemented;
 }
 
+/*FIXME: LineJoin completely ignored now */
 GpStatus WINGDIPAPI GdipSetCustomLineCapStrokeJoin(GpCustomLineCap* custom,
     GpLineJoin join)
 {
-    static int calls;
+    if(!custom)
+        return InvalidParameter;
 
-    if(!(calls++))
-        FIXME("not implemented\n");
+    custom->join = join;
 
-    return NotImplemented;
+    return Ok;
 }
 
 GpStatus WINGDIPAPI GdipSetCustomLineCapWidthScale(GpCustomLineCap* custom,
diff --git a/dlls/gdiplus/tests/customlinecap.c b/dlls/gdiplus/tests/customlinecap.c
index c33ec6f..9f3e6f0 100644
--- a/dlls/gdiplus/tests/customlinecap.c
+++ b/dlls/gdiplus/tests/customlinecap.c
@@ -87,12 +87,31 @@ static void test_linejoin(void)
     expect(InvalidParameter, stat);
     stat = GdipGetCustomLineCapStrokeJoin(NULL, &join);
     expect(InvalidParameter, stat);
+    stat = GdipSetCustomLineCapStrokeJoin(NULL, LineJoinBevel);
+    expect(InvalidParameter, stat);
 
     /* LineJoinMiter is default */
     stat = GdipGetCustomLineCapStrokeJoin(custom, &join);
     expect(Ok, stat);
     expect(LineJoinMiter, join);
 
+    /* set/get */
+    stat = GdipSetCustomLineCapStrokeJoin(custom, LineJoinBevel);
+    expect(Ok, stat);
+    stat = GdipGetCustomLineCapStrokeJoin(custom, &join);
+    expect(Ok, stat);
+    expect(LineJoinBevel, join);
+    stat = GdipSetCustomLineCapStrokeJoin(custom, LineJoinRound);
+    expect(Ok, stat);
+    stat = GdipGetCustomLineCapStrokeJoin(custom, &join);
+    expect(Ok, stat);
+    expect(LineJoinRound, join);
+    stat = GdipSetCustomLineCapStrokeJoin(custom, LineJoinMiterClipped);
+    expect(Ok, stat);
+    stat = GdipGetCustomLineCapStrokeJoin(custom, &join);
+    expect(Ok, stat);
+    expect(LineJoinMiterClipped, join);
+
     GdipDeleteCustomLineCap(custom);
     GdipDeletePath(path);
 }
diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
index d9cebe8..37ef6e0 100644
--- a/include/gdiplusflat.h
+++ b/include/gdiplusflat.h
@@ -327,6 +327,7 @@ GpStatus WINGDIPAPI GdipSetCustomLineCapStrokeCaps(GpCustomLineCap*,GpLineCap,
     GpLineCap);
 GpStatus WINGDIPAPI GdipGetCustomLineCapBaseCap(GpCustomLineCap*,GpLineCap*);
 GpStatus WINGDIPAPI GdipGetCustomLineCapStrokeJoin(GpCustomLineCap*,GpLineJoin*);
+GpStatus WINGDIPAPI GdipSetCustomLineCapStrokeJoin(GpCustomLineCap*,GpLineJoin);
 
 GpStatus WINGDIPAPI GdipBitmapGetPixel(GpBitmap*,INT,INT,ARGB*);
 GpStatus WINGDIPAPI GdipBitmapSetPixel(GpBitmap*,INT,INT,ARGB);
-- 
1.4.4.4






More information about the wine-patches mailing list