Huw Davies : riched20: Move underline pen creation to a helper function.
Alexandre Julliard
julliard at winehq.org
Thu Feb 14 15:01:32 CST 2013
Module: wine
Branch: master
Commit: c2c5121d193bcd8122f67d1c9961d4208b611cd3
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c2c5121d193bcd8122f67d1c9961d4208b611cd3
Author: Huw Davies <huw at codeweavers.com>
Date: Thu Feb 14 14:16:15 2013 +0000
riched20: Move underline pen creation to a helper function.
---
dlls/riched20/paint.c | 55 +++++++++++++++++++++++++-----------------------
1 files changed, 29 insertions(+), 26 deletions(-)
diff --git a/dlls/riched20/paint.c b/dlls/riched20/paint.c
index d29d185..d7792d4 100644
--- a/dlls/riched20/paint.c
+++ b/dlls/riched20/paint.c
@@ -166,6 +166,33 @@ int ME_twips2pointsY(const ME_Context *c, int y)
return y * c->dpi.cy * c->editor->nZoomNumerator / 1440 / c->editor->nZoomDenominator;
}
+static void get_underline_pen( ME_Style *style, COLORREF color, HPEN *pen )
+{
+ *pen = NULL;
+ /* Choose the pen type for underlining the text. */
+ if (style->fmt.dwMask & CFM_UNDERLINETYPE)
+ {
+ switch (style->fmt.bUnderlineType)
+ {
+ case CFU_UNDERLINE:
+ case CFU_UNDERLINEWORD: /* native seems to map it to simple underline (MSDN) */
+ case CFU_UNDERLINEDOUBLE: /* native seems to map it to simple underline (MSDN) */
+ *pen = CreatePen( PS_SOLID, 1, color );
+ break;
+ case CFU_UNDERLINEDOTTED:
+ *pen = CreatePen( PS_DOT, 1, color );
+ break;
+ default:
+ FIXME( "Unknown underline type (%u)\n", style->fmt.bUnderlineType );
+ /* fall through */
+ case CFU_CF1UNDERLINE: /* this type is supported in the font, do nothing */
+ case CFU_UNDERLINENONE:
+ break;
+ }
+ }
+ return;
+}
+
static void ME_HighlightSpace(ME_Context *c, int x, int y, LPCWSTR szText,
int nChars, ME_Style *s, int width,
int nSelFrom, int nSelTo, int ymin, int cy)
@@ -277,32 +304,8 @@ static void ME_DrawTextWithStyle(ME_Context *c, ME_Run *run, int x, int y, LPCWS
}
}
- /* Choose the pen type for underlining the text. */
- if (run->style->fmt.dwMask & CFM_UNDERLINETYPE)
- {
- switch (run->style->fmt.bUnderlineType)
- {
- case CFU_UNDERLINE:
- case CFU_UNDERLINEWORD: /* native seems to map it to simple underline (MSDN) */
- case CFU_UNDERLINEDOUBLE: /* native seems to map it to simple underline (MSDN) */
- hPen = CreatePen(PS_SOLID, 1, rgb);
- break;
- case CFU_UNDERLINEDOTTED:
- hPen = CreatePen(PS_DOT, 1, rgb);
- break;
- default:
- FIXME("Unknown underline type (%u)\n", run->style->fmt.bUnderlineType);
- /* fall through */
- case CFU_CF1UNDERLINE: /* this type is supported in the font, do nothing */
- case CFU_UNDERLINENONE:
- hPen = NULL;
- break;
- }
- if (hPen)
- {
- hOldPen = SelectObject(hDC, hPen);
- }
- }
+ get_underline_pen( run->style, rgb, &hPen );
+ if (hPen) hOldPen = SelectObject( hDC, hPen );
rgbOld = SetTextColor(hDC, rgb);
if (bHighlightedText && !c->editor->bEmulateVersion10)
More information about the wine-cvs
mailing list