Huw Davies : riched20: Move underline drawing to a common function.

Alexandre Julliard julliard at winehq.org
Fri Feb 15 11:19:17 CST 2013


Module: wine
Branch: master
Commit: 79278497d3095c4a0a6710c6065c169fefec067e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=79278497d3095c4a0a6710c6065c169fefec067e

Author: Huw Davies <huw at codeweavers.com>
Date:   Fri Feb 15 16:13:38 2013 +0000

riched20: Move underline drawing to a common function.

---

 dlls/riched20/paint.c |   38 ++++++++++++++++++--------------------
 1 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/dlls/riched20/paint.c b/dlls/riched20/paint.c
index e4bd9e6..06026df 100644
--- a/dlls/riched20/paint.c
+++ b/dlls/riched20/paint.c
@@ -228,6 +228,22 @@ static void get_underline_pen( ME_Style *style, COLORREF color, HPEN *pen )
     return;
 }
 
+static void draw_underline( ME_Context *c, ME_Run *run, int x, int y, COLORREF color )
+{
+    HPEN pen;
+
+    get_underline_pen( run->style, color, &pen );
+    if (pen)
+    {
+        HPEN old_pen = SelectObject( c->hDC, pen );
+        MoveToEx( c->hDC, x, y + 1, NULL );
+        LineTo( c->hDC, x + run->nWidth, y + 1 );
+        SelectObject( c->hDC, old_pen );
+        DeleteObject( pen );
+    }
+    return;
+}
+
 /*********************************************************************
  *  draw_space
  *
@@ -260,7 +276,6 @@ static void draw_space( ME_Context *c, ME_Run *run, int x, int y,
         COLORREF text_color = get_text_color( c, run->style, selected );
         COLORREF old_text, old_back;
         HFONT old_font = NULL;
-        HPEN pen = NULL;
         int y_offset = calc_y_offset( c, run->style );
         static const WCHAR space[1] = {' '};
 
@@ -274,15 +289,7 @@ static void draw_space( ME_Context *c, ME_Run *run, int x, int y,
         SetTextColor( hdc, old_text );
         ME_UnselectStyleFont( c, run->style, old_font );
 
-        get_underline_pen( run->style, text_color, &pen );
-        if (pen)
-        {
-            HPEN old_pen = SelectObject( hdc, pen );
-            MoveToEx( hdc, x, y - y_offset + 1, NULL );
-            LineTo( hdc, x + run->nWidth, y - y_offset + 1 );
-            SelectObject( hdc, old_pen );
-            DeleteObject( pen );
-        }
+        draw_underline( c, run, x, y - y_offset, text_color );
     }
     else if (selected)
     {
@@ -311,7 +318,6 @@ static void draw_text( ME_Context *c, ME_Run *run, int x, int y, const WCHAR *te
     COLORREF text_color = get_text_color( c, run->style, selected );
     COLORREF back_color = selected ? ITextHost_TxGetSysColor( c->editor->texthost, COLOR_HIGHLIGHT ) : 0;
     COLORREF old_text, old_back;
-    HPEN pen;
 
     old_text = SetTextColor( c->hDC, text_color );
     if (selected) old_back = SetBkColor( c->hDC, back_color );
@@ -321,15 +327,7 @@ static void draw_text( ME_Context *c, ME_Run *run, int x, int y, const WCHAR *te
     if (selected) SetBkColor( c->hDC, old_back );
     SetTextColor( c->hDC, old_text );
 
-    get_underline_pen( run->style, text_color, &pen );
-    if (pen)
-    {
-        HPEN old_pen = SelectObject( c->hDC, pen );
-        MoveToEx( c->hDC, x, y + 1, NULL );
-        LineTo( c->hDC, x + run->nWidth, y + 1 );
-        SelectObject( c->hDC, old_pen );
-        DeleteObject( pen );
-    }
+    draw_underline( c, run, x, y, text_color );
 
     return;
 }




More information about the wine-cvs mailing list