[PATCH 1/2] Implement GdipGetLogFontA (try3)
Vincent Povirk
madewokherd+8cd9 at gmail.com
Mon Nov 17 20:47:24 CST 2008
I can't say for sure, but I think you should share code with
GdipGetLogFontW somehow (probably either calling it or adding a helper
for both functions to call).
Vincent Povirk
On Mon, Nov 17, 2008 at 6:47 PM, Adam Petaccia <adam at tpetaccia.com> wrote:
> Was there something wrong with this patch series?
>
> On Tue, 2008-11-11 at 11:24 -0500, Adam Petaccia wrote:
>> Changelog:
>> try3:
>> Only copy the bytes we'll use
>> Toss out bytesWritten
>> try2:
>> Fix memcpy() use
>> Add documentation
>> Add testcase
>> ---
>> dlls/gdiplus/font.c | 27 +++++++++++++++++++++++++++
>> dlls/gdiplus/gdiplus.spec | 2 +-
>> include/gdiplusflat.h | 1 +
>> 3 files changed, 29 insertions(+), 1 deletions(-)
>>
>> diff --git a/dlls/gdiplus/font.c b/dlls/gdiplus/font.c
>> index 32713c7..7f815b6 100644
>> --- a/dlls/gdiplus/font.c
>> +++ b/dlls/gdiplus/font.c
>> @@ -368,6 +368,33 @@ GpStatus WINGDIPAPI GdipGetFontUnit(GpFont *font, Unit *unit)
>> }
>>
>> /*******************************************************************************
>> + * GdipGetLogFontA [GDIPLUS.@]
>> + *
>> + * Converts a font into a LOGFONTA
>> + *
>> + * PARAMS
>> + * font [I] GpFont to create LOGFONTA object
>> + * graphics [I] Current graphics context
>> + * lfa [O] Resulting LOGFONTA object
>> + * RETURNS
>> + * InvalidParameter: font, graphics, or lfa was NULL.
>> + * Ok: otherwise
>> + */
>> +GpStatus WINGDIPAPI GdipGetLogFontA(GpFont *font, GpGraphics *graphics,
>> + LOGFONTA *lfa)
>> +{
>> + /* FIXME: use graphics */
>> + if(!(font && graphics && lfa))
>> + return InvalidParameter;
>> +
>> + memcpy(lfa, &font->lfw, FIELD_OFFSET(LOGFONTA, lfFaceName));
>> + WideCharToMultiByte(CP_ACP, 0, font->lfw.lfFaceName, -1,
>> + lfa->lfFaceName, LF_FACESIZE, NULL, NULL);
>> +
>> + return Ok;
>> +}
>> +
>> +/*******************************************************************************
>> * GdipGetLogFontW [GDIPLUS.@]
>> */
>> GpStatus WINGDIPAPI GdipGetLogFontW(GpFont *font, GpGraphics *graphics,
>> diff --git a/dlls/gdiplus/gdiplus.spec b/dlls/gdiplus/gdiplus.spec
>> index c25d4b7..dce558c 100644
>> --- a/dlls/gdiplus/gdiplus.spec
>> +++ b/dlls/gdiplus/gdiplus.spec
>> @@ -311,7 +311,7 @@
>> @ stdcall GdipGetLineSpacing(ptr long ptr)
>> @ stub GdipGetLineTransform
>> @ stdcall GdipGetLineWrapMode(ptr ptr)
>> -@ stub GdipGetLogFontA
>> +@ stdcall GdipGetLogFontA(ptr ptr ptr)
>> @ stdcall GdipGetLogFontW(ptr ptr ptr)
>> @ stdcall GdipGetMatrixElements(ptr ptr)
>> @ stub GdipGetMetafileDownLevelRasterizationLimit
>> diff --git a/include/gdiplusflat.h b/include/gdiplusflat.h
>> index ea4bec5..a2c6fc9 100644
>> --- a/include/gdiplusflat.h
>> +++ b/include/gdiplusflat.h
>> @@ -81,6 +81,7 @@ GpStatus WINGDIPAPI GdipCreateFontFromDC(HDC,GpFont**);
>> GpStatus WINGDIPAPI GdipCreateFontFromLogfontA(HDC,GDIPCONST LOGFONTA*,GpFont**);
>> GpStatus WINGDIPAPI GdipCreateFontFromLogfontW(HDC,GDIPCONST LOGFONTW*,GpFont**);
>> GpStatus WINGDIPAPI GdipDeleteFont(GpFont*);
>> +GpStatus WINGDIPAPI GdipGetLogFontA(GpFont*,GpGraphics*,LOGFONTA*);
>> GpStatus WINGDIPAPI GdipGetLogFontW(GpFont*,GpGraphics*,LOGFONTW*);
>> GpStatus WINGDIPAPI GdipGetFamily(GpFont*, GpFontFamily**);
>> GpStatus WINGDIPAPI GdipGetFontUnit(GpFont*, Unit*);
>
>
>
>
More information about the wine-devel
mailing list