Alexandre Julliard : comctl32/status: Use DrawFrameControl to draw the size grip.

Alexandre Julliard julliard at wine.codeweavers.com
Sat May 14 10:07:29 CDT 2016


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Sat May 14 12:38:18 2016 +0900

comctl32/status: Use DrawFrameControl to draw the size grip.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/comctl32/status.c | 48 +++++++-----------------------------------------
 1 file changed, 7 insertions(+), 41 deletions(-)

diff --git a/dlls/comctl32/status.c b/dlls/comctl32/status.c
index 4528e24..738c33b 100644
--- a/dlls/comctl32/status.c
+++ b/dlls/comctl32/status.c
@@ -143,60 +143,26 @@ STATUSBAR_ComputeHeight(STATUS_INFO *infoPtr)
 static void
 STATUSBAR_DrawSizeGrip (HTHEME theme, HDC hdc, LPRECT lpRect)
 {
-    HPEN hPenFace, hPenShadow, hPenHighlight, hOldPen;
-    POINT pt;
-    INT i;
+    RECT rc = *lpRect;
 
     TRACE("draw size grip %s\n", wine_dbgstr_rect(lpRect));
 
     if (theme)
     {
-        RECT gripperRect;
         SIZE gripperSize;
-        gripperRect = *lpRect;
         if (SUCCEEDED (GetThemePartSize (theme, hdc, SP_GRIPPER, 0, lpRect, 
             TS_DRAW, &gripperSize)))
         {
-            gripperRect.left = gripperRect.right - gripperSize.cx;
-            gripperRect.top = gripperRect.bottom - gripperSize.cy;
-            if (SUCCEEDED (DrawThemeBackground(theme, hdc, SP_GRIPPER, 0, &gripperRect, NULL)))
+            rc.left = rc.right - gripperSize.cx;
+            rc.top = rc.bottom - gripperSize.cy;
+            if (SUCCEEDED (DrawThemeBackground(theme, hdc, SP_GRIPPER, 0, &rc, NULL)))
                 return;
         }
     }
 
-    pt.x = lpRect->right - 1;
-    pt.y = lpRect->bottom - 1;
-
-    hPenFace = CreatePen( PS_SOLID, 1, comctl32_color.clr3dFace);
-    hOldPen = SelectObject( hdc, hPenFace );
-    MoveToEx (hdc, pt.x - 12, pt.y, NULL);
-    LineTo (hdc, pt.x, pt.y);
-    LineTo (hdc, pt.x, pt.y - 13);
-
-    pt.x--;
-    pt.y--;
-
-    hPenShadow = CreatePen( PS_SOLID, 1, comctl32_color.clr3dShadow);
-    SelectObject( hdc, hPenShadow );
-    for (i = 1; i < 11; i += 4) {
-	MoveToEx (hdc, pt.x - i, pt.y, NULL);
-	LineTo (hdc, pt.x + 1, pt.y - i - 1);
-
-	MoveToEx (hdc, pt.x - i - 1, pt.y, NULL);
-	LineTo (hdc, pt.x + 1, pt.y - i - 2);
-    }
-
-    hPenHighlight = CreatePen( PS_SOLID, 1, comctl32_color.clr3dHilight);
-    SelectObject( hdc, hPenHighlight );
-    for (i = 3; i < 13; i += 4) {
-	MoveToEx (hdc, pt.x - i, pt.y, NULL);
-	LineTo (hdc, pt.x + 1, pt.y - i - 1);
-    }
-
-    SelectObject (hdc, hOldPen);
-    DeleteObject( hPenFace );
-    DeleteObject( hPenShadow );
-    DeleteObject( hPenHighlight );
+    rc.left = max( rc.left, rc.right - GetSystemMetrics(SM_CXVSCROLL) - 1 );
+    rc.top  = max( rc.top, rc.bottom - GetSystemMetrics(SM_CYHSCROLL) - 1 );
+    DrawFrameControl( hdc, &rc, DFC_SCROLL, DFCS_SCROLLSIZEGRIP );
 }
 
 




More information about the wine-cvs mailing list