gdiplus: Add stub for GdipSetPenCompoundArray.
authorVincent Povirk <vincent@codeweavers.com>
Thu, 4 Dec 2008 20:30:47 +0000 (14:30 -0600)
committerAlexandre Julliard <julliard@winehq.org>
Fri, 5 Dec 2008 10:59:15 +0000 (11:59 +0100)
dlls/gdiplus/gdiplus.spec
dlls/gdiplus/pen.c
dlls/gdiplus/tests/pen.c
include/gdiplusflat.h

index b5a5aabfa9a62684070527f8c88802a6e40ca3f1..1b3f307f417823ef05056f79ca3fe85ff8d51bdb 100644 (file)
 @ stdcall GdipSetPathMarker(ptr)
 @ stdcall GdipSetPenBrushFill(ptr ptr)
 @ stdcall GdipSetPenColor(ptr long)
-@ stub GdipSetPenCompoundArray
+@ stdcall GdipSetPenCompoundArray(ptr ptr long)
 @ stdcall GdipSetPenCustomEndCap(ptr ptr)
 @ stdcall GdipSetPenCustomStartCap(ptr ptr)
 @ stdcall GdipSetPenDashArray(ptr ptr long)
index 2804b141fe0f0b7a93f4c522c20a346e23c32056..f41185a68876d3f71170ec7c36500ac6a5557043 100644 (file)
@@ -409,6 +409,17 @@ GpStatus WINGDIPAPI GdipSetPenColor(GpPen *pen, ARGB argb)
     return GdipSetSolidFillColor(((GpSolidFill*)pen->brush), argb);
 }
 
+GpStatus WINGDIPAPI GdipSetPenCompoundArray(GpPen *pen, GDIPCONST REAL *dash,
+    INT count)
+{
+    FIXME("(%p, %p, %i): stub", pen, dash, count);
+
+    if (!pen || !dash || count < 2 || count%2 == 1)
+        return InvalidParameter;
+
+    return NotImplemented;
+}
+
 GpStatus WINGDIPAPI GdipSetPenCustomEndCap(GpPen *pen, GpCustomLineCap* customCap)
 {
     GpCustomLineCap * cap;
index 263d0a711e2b29a92f873c68d2a8a63ee689e1ee..d2f33f0f4adadf0229be16f68132b71fc0f45969 100644 (file)
@@ -325,6 +325,33 @@ static void test_penfilltype(void)
     GdipDeleteBrush((GpBrush*)line);
 }
 
+static void test_compoundarray(void)
+{
+    GpStatus status;
+    GpPen *pen;
+    static const REAL testvalues[] = {0.2, 0.4, 0.6, 0.8};
+
+    status = GdipSetPenCompoundArray(NULL, testvalues, 4);
+    expect(InvalidParameter, status);
+
+    status = GdipCreatePen1((ARGB)0xffff00ff, 10.0f, UnitPixel, &pen);
+    expect(Ok, status);
+
+    status = GdipSetPenCompoundArray(pen, NULL, 4);
+    expect(InvalidParameter, status);
+    status = GdipSetPenCompoundArray(pen, testvalues, 3);
+    expect(InvalidParameter, status);
+    status = GdipSetPenCompoundArray(pen, testvalues, 0);
+    expect(InvalidParameter, status);
+    status = GdipSetPenCompoundArray(pen, testvalues, -2);
+    expect(InvalidParameter, status);
+
+    status = GdipSetPenCompoundArray(pen, testvalues, 4);
+    todo_wine expect(Ok, status);
+
+    GdipDeletePen(pen);
+}
+
 START_TEST(pen)
 {
     struct GdiplusStartupInput gdiplusStartupInput;
@@ -345,6 +372,7 @@ START_TEST(pen)
     test_dasharray();
     test_customcap();
     test_penfilltype();
+    test_compoundarray();
 
     GdiplusShutdown(gdiplusToken);
 }
index 3219cb0ae764ecb7c2a06f3774c4104db637dbc6..1f93258fe2914af337f1bde7e483ede6c03ae1e3 100644 (file)
@@ -480,6 +480,7 @@ GpStatus WINGDIPAPI GdipGetPenDashStyle(GpPen*,GpDashStyle*);
 GpStatus WINGDIPAPI GdipGetPenMode(GpPen*,GpPenAlignment*);
 GpStatus WINGDIPAPI GdipSetPenBrushFill(GpPen*,GpBrush*);
 GpStatus WINGDIPAPI GdipSetPenColor(GpPen*,ARGB);
+GpStatus WINGDIPAPI GdipSetPenCompoundArray(GpPen*,GDIPCONST REAL*,INT);
 GpStatus WINGDIPAPI GdipSetPenCustomEndCap(GpPen*,GpCustomLineCap*);
 GpStatus WINGDIPAPI GdipSetPenCustomStartCap(GpPen*,GpCustomLineCap*);
 GpStatus WINGDIPAPI GdipSetPenDashArray(GpPen*,GDIPCONST REAL*,INT);