Module: wine Branch: master Commit: ce40fde689d4a5caed079b18d8712513e8b26611 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ce40fde689d4a5caed079b18d8...
Author: Adam Petaccia adam@tpetaccia.com Date: Wed Aug 27 17:22:00 2008 -0400
gdiplus: Implement GdipGetFontStyle.
---
dlls/gdiplus/font.c | 31 +++++++++++++++++++++++++++++-- dlls/gdiplus/tests/font.c | 3 --- 2 files changed, 29 insertions(+), 5 deletions(-)
diff --git a/dlls/gdiplus/font.c b/dlls/gdiplus/font.c index f7638e7..9839a45 100644 --- a/dlls/gdiplus/font.c +++ b/dlls/gdiplus/font.c @@ -298,11 +298,38 @@ GpStatus WINGDIPAPI GdipGetFontSize(GpFont *font, REAL *size) return Ok; }
+/******************************************************************************* + * GdipGetFontStyle [GDIPLUS.@] + * + * Gets the font's style, returned in bitwise OR of FontStyle enumeration + * + * PARAMS + * font [I] font to request from + * style [O] resulting pointer to a FontStyle enumeration + * + * RETURNS + * SUCCESS: Ok + * FAILURE: InvalidParameter + */ GpStatus WINGDIPAPI GdipGetFontStyle(GpFont *font, INT *style) { - FIXME("stub: %p %p\n", font, style); + TRACE("%p %p\n", font, style);
- return NotImplemented; + if (!(font && style)) + return InvalidParameter; + + if (font->lfw.lfWeight > 400) + *style = FontStyleBold; + else + *style = 0; + if (font->lfw.lfItalic) + *style |= FontStyleItalic; + if (font->lfw.lfUnderline) + *style |= FontStyleUnderline; + if (font->lfw.lfStrikeOut) + *style |= FontStyleStrikeout; + + return Ok; }
/******************************************************************************* diff --git a/dlls/gdiplus/tests/font.c b/dlls/gdiplus/tests/font.c index c0658c2..b396141 100644 --- a/dlls/gdiplus/tests/font.c +++ b/dlls/gdiplus/tests/font.c @@ -172,13 +172,10 @@ todo_wine { expect(0, lfw2.lfQuality); expect(0, lfw2.lfPitchAndFamily);
-todo_wine -{ stat = GdipGetFontStyle(font, &style); expect(Ok, stat); ok (style == (FontStyleItalic | FontStyleUnderline | FontStyleStrikeout), "Expected , got %d\n", style); -}
GdipDeleteFont(font);