From ce40fde689d4a5caed079b18d8712513e8b26611 Mon Sep 17 00:00:00 2001 From: Adam Petaccia Date: Wed, 27 Aug 2008 17:22:00 -0400 Subject: [PATCH] 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 f7638e76f98..9839a45a28a 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 c0658c2d5ed..b3961419f07 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); -- 2.11.4.GIT