riched20: Add a helper to find a font in the font table.
Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
074fafab65
commit
48c0c6648b
|
@ -237,6 +237,31 @@ static void add_font_to_fonttbl( ME_OutStream *stream, ME_Style *style )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static BOOL find_font_in_fonttbl( ME_OutStream *stream, CHARFORMAT2W *fmt, unsigned int *idx )
|
||||||
|
{
|
||||||
|
WCHAR *facename;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
*idx = 0;
|
||||||
|
if (fmt->dwMask & CFM_FACE)
|
||||||
|
facename = fmt->szFaceName;
|
||||||
|
else
|
||||||
|
facename = stream->fonttbl[0].szFaceName;
|
||||||
|
for (i = 0; i < stream->nFontTblLen; i++)
|
||||||
|
{
|
||||||
|
if (facename == stream->fonttbl[i].szFaceName
|
||||||
|
|| !lstrcmpW(facename, stream->fonttbl[i].szFaceName))
|
||||||
|
if (!(fmt->dwMask & CFM_CHARSET)
|
||||||
|
|| fmt->bCharSet == stream->fonttbl[i].bCharSet)
|
||||||
|
{
|
||||||
|
*idx = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return i < stream->nFontTblLen;
|
||||||
|
}
|
||||||
|
|
||||||
static void add_color_to_colortbl( ME_OutStream *stream, COLORREF color )
|
static void add_color_to_colortbl( ME_OutStream *stream, COLORREF color )
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -713,21 +738,9 @@ ME_StreamOutRTFCharProps(ME_OutStream *pStream, CHARFORMAT2W *fmt)
|
||||||
}
|
}
|
||||||
/* FIXME: How to emit CFM_WEIGHT? */
|
/* FIXME: How to emit CFM_WEIGHT? */
|
||||||
|
|
||||||
if (fmt->dwMask & CFM_FACE || fmt->dwMask & CFM_CHARSET) {
|
if (fmt->dwMask & CFM_FACE || fmt->dwMask & CFM_CHARSET)
|
||||||
WCHAR *szFaceName;
|
{
|
||||||
|
if (find_font_in_fonttbl( pStream, fmt, &i ))
|
||||||
if (fmt->dwMask & CFM_FACE)
|
|
||||||
szFaceName = fmt->szFaceName;
|
|
||||||
else
|
|
||||||
szFaceName = pStream->fonttbl[0].szFaceName;
|
|
||||||
for (i = 0; i < pStream->nFontTblLen; i++) {
|
|
||||||
if (szFaceName == pStream->fonttbl[i].szFaceName
|
|
||||||
|| !lstrcmpW(szFaceName, pStream->fonttbl[i].szFaceName))
|
|
||||||
if (!(fmt->dwMask & CFM_CHARSET)
|
|
||||||
|| fmt->bCharSet == pStream->fonttbl[i].bCharSet)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (i < pStream->nFontTblLen)
|
|
||||||
{
|
{
|
||||||
if (i != pStream->nDefaultFont)
|
if (i != pStream->nDefaultFont)
|
||||||
sprintf(props + strlen(props), "\\f%u", i);
|
sprintf(props + strlen(props), "\\f%u", i);
|
||||||
|
|
Loading…
Reference in New Issue