Aurimas Fischer : gdiplus: Implement GdipSetStringFormatFlags with tests.

Alexandre Julliard julliard at winehq.org
Mon Feb 2 09:01:26 CST 2009


Module: wine
Branch: master
Commit: 2489e76b5955d5794f6aed58513b6c69494ce951
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2489e76b5955d5794f6aed58513b6c69494ce951

Author: Aurimas Fischer <aurimas at gmail.com>
Date:   Sun Feb  1 17:15:57 2009 +0200

gdiplus: Implement GdipSetStringFormatFlags with tests.

---

 dlls/gdiplus/stringformat.c       |    5 ++-
 dlls/gdiplus/tests/stringformat.c |   62 +++++++++++++++++++++++++++++++++++++
 2 files changed, 66 insertions(+), 1 deletions(-)

diff --git a/dlls/gdiplus/stringformat.c b/dlls/gdiplus/stringformat.c
index a28f014..21053b7 100644
--- a/dlls/gdiplus/stringformat.c
+++ b/dlls/gdiplus/stringformat.c
@@ -286,7 +286,10 @@ GpStatus WINGDIPAPI GdipSetStringFormatTrimming(GpStringFormat *format,
 
 GpStatus WINGDIPAPI GdipSetStringFormatFlags(GpStringFormat *format, INT flags)
 {
-    FIXME("format (%p) flags (%d)\n", format, flags);
+    if(!format)
+        return InvalidParameter;
+
+    format->attr = flags;
 
     return Ok;
 }
diff --git a/dlls/gdiplus/tests/stringformat.c b/dlls/gdiplus/tests/stringformat.c
index 9331912..b28dbc6 100644
--- a/dlls/gdiplus/tests/stringformat.c
+++ b/dlls/gdiplus/tests/stringformat.c
@@ -318,6 +318,67 @@ static void test_getgenericdefault(void)
     expect(Ok, stat);
 }
 
+static void test_stringformatflags(void)
+{
+    GpStringFormat *format;
+    GpStatus stat;
+
+    INT flags;
+
+    stat = GdipCreateStringFormat(0, LANG_NEUTRAL, &format);
+    expect(Ok, stat);
+
+    /* NULL args */
+    stat = GdipSetStringFormatFlags(NULL, 0);
+    expect(InvalidParameter, stat);
+
+    stat = GdipSetStringFormatFlags(format, 0);
+    expect(Ok, stat);
+    stat = GdipGetStringFormatFlags(format, &flags);
+    expect(Ok, stat);
+    expect(0, flags);
+
+    /* Check some valid flags */
+    stat = GdipSetStringFormatFlags(format, StringFormatFlagsDirectionRightToLeft);
+    expect(Ok, stat);
+    stat = GdipGetStringFormatFlags(format, &flags);
+    expect(Ok, stat);
+    expect(StringFormatFlagsDirectionRightToLeft, flags);
+
+    stat = GdipSetStringFormatFlags(format, StringFormatFlagsNoFontFallback);
+    expect(Ok, stat);
+    stat = GdipGetStringFormatFlags(format, &flags);
+    expect(Ok, stat);
+    expect(StringFormatFlagsNoFontFallback, flags);
+
+    /* Check some flag combinations */
+    stat = GdipSetStringFormatFlags(format, StringFormatFlagsDirectionVertical
+        | StringFormatFlagsNoFitBlackBox);
+    expect(Ok, stat);
+    stat = GdipGetStringFormatFlags(format, &flags);
+    expect(Ok, stat);
+    expect((StringFormatFlagsDirectionVertical
+        | StringFormatFlagsNoFitBlackBox), flags);
+
+    stat = GdipSetStringFormatFlags(format, StringFormatFlagsDisplayFormatControl
+        | StringFormatFlagsMeasureTrailingSpaces);
+    expect(Ok, stat);
+    stat = GdipGetStringFormatFlags(format, &flags);
+    expect(Ok, stat);
+    expect((StringFormatFlagsDisplayFormatControl
+        | StringFormatFlagsMeasureTrailingSpaces), flags);
+
+    /* Check invalid flags */
+    stat = GdipSetStringFormatFlags(format, 0xdeadbeef);
+    expect(Ok, stat);
+    stat = GdipGetStringFormatFlags(format, &flags);
+    expect(Ok, stat);
+    expect(0xdeadbeef, flags);
+
+    stat = GdipDeleteStringFormat(format);
+    expect(Ok, stat);
+}
+
 START_TEST(stringformat)
 {
     struct GdiplusStartupInput gdiplusStartupInput;
@@ -336,6 +397,7 @@ START_TEST(stringformat)
     test_getgenerictypographic();
     test_tabstops();
     test_getgenericdefault();
+    test_stringformatflags();
 
     GdiplusShutdown(gdiplusToken);
 }




More information about the wine-cvs mailing list