[ros-diffs] [mkupfer] 41697: - continue "marletting" - scrollbar size grip with marlett - untested for DFCS_SIZEGRIPRIGHT, but should work too

mkupfer at svn.reactos.org mkupfer at svn.reactos.org
Mon Jun 29 22:18:23 CEST 2009


Author: mkupfer
Date: Tue Jun 30 00:18:21 2009
New Revision: 41697

URL: http://svn.reactos.org/svn/reactos?rev=41697&view=rev
Log:
- continue "marletting"
- scrollbar size grip with marlett
- untested for DFCS_SIZEGRIPRIGHT, but should work too

Modified:
    trunk/reactos/dll/win32/user32/windows/draw.c

Modified: trunk/reactos/dll/win32/user32/windows/draw.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/draw.c?rev=41697&r1=41696&r2=41697&view=diff
==============================================================================
--- trunk/reactos/dll/win32/user32/windows/draw.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/user32/windows/draw.c [iso-8859-1] Tue Jun 30 00:18:21 2009
@@ -890,15 +890,6 @@
     RECT myr;
     INT bkmode;
     TCHAR Symbol;
-    // for scrollgripsize
-    POINT Line[4];
-    int SmallDiam = UITOOLS_MakeSquareRect(r, &myr) - 2;
-    int i;
-    HBRUSH hbsave;
-    HPEN hpsave;
-    COLORREF crPen1, crPen2, crBrush1, crBrush2;
-    int d46, d93;
-    // end scrollgripsize
     switch(uFlags & 0xff)
     {
         case DFCS_SCROLLCOMBOBOX:
@@ -919,82 +910,39 @@
 		break;
 
 	case DFCS_SCROLLSIZEGRIP:
-	    // FIXME: needs to use marlett too, copied for compatibility only
-            /* This one breaks the flow... */
-            IntDrawRectEdge(dc, r, EDGE_BUMP, BF_MIDDLE | ((uFlags&(DFCS_MONO|DFCS_FLAT)) ? BF_MONO : 0));
-            hpsave = (HPEN)SelectObject(dc, GetStockObject(DC_PEN));
-            hbsave = (HBRUSH)SelectObject(dc, GetStockObject(DC_BRUSH));
-            if(uFlags & (DFCS_MONO|DFCS_FLAT))
-            {
-                crPen1 = crPen2 = GetSysColor(COLOR_WINDOWFRAME);
-                crBrush1 = crBrush2 = GetSysColor(COLOR_WINDOWFRAME);
-            }
-            else
-            {
-                crPen1 = GetSysColor(COLOR_BTNHIGHLIGHT);
-                crPen2 = GetSysColor(COLOR_BTNSHADOW);
-                crBrush1 = GetSysColor(COLOR_BTNHIGHLIGHT);
-                crBrush2 = GetSysColor(COLOR_BTNSHADOW);
-            }
-
-            Line[0].x = Line[1].x = r->right-1;
-            Line[2].y = Line[3].y = r->bottom-1;
-            d46 = 46*SmallDiam/750;
-            d93 = 93*SmallDiam/750;
-
-            i = 586*SmallDiam/750;
-            Line[0].y = r->bottom - i - 1;
-            Line[3].x = r->right - i - 1;
-            Line[1].y = Line[0].y + d46;
-            Line[2].x = Line[3].x + d46;
-            SetDCBrushColor(dc, crBrush1);
-            SetDCPenColor(dc, crPen1);
-            Polygon(dc, Line, 4);
-
-            Line[1].y++; Line[2].x++;
-            Line[0].y = Line[1].y + d93;
-            Line[3].x = Line[2].x + d93;
-            SetDCBrushColor(dc, crBrush2);
-            SetDCPenColor(dc, crPen2);
-            Polygon(dc, Line, 4);
-
-            i = 398*SmallDiam/750;
-            Line[0].y = r->bottom - i - 1;
-            Line[3].x = r->right - i - 1;
-            Line[1].y = Line[0].y + d46;
-            Line[2].x = Line[3].x + d46;
-            SetDCBrushColor(dc, crBrush1);
-            SetDCPenColor(dc, crPen1);
-            Polygon(dc, Line, 4);
-
-            Line[1].y++; Line[2].x++;
-            Line[0].y = Line[1].y + d93;
-            Line[3].x = Line[2].x + d93;
-            SetDCBrushColor(dc, crBrush2);
-            SetDCPenColor(dc, crPen2);
-            Polygon(dc, Line, 4);
-
-            i = 210*SmallDiam/750;
-            Line[0].y = r->bottom - i - 1;
-            Line[3].x = r->right - i - 1;
-            Line[1].y = Line[0].y + d46;
-            Line[2].x = Line[3].x + d46;
-            SetDCBrushColor(dc, crBrush1);
-            SetDCPenColor(dc, crPen1);
-            Polygon(dc, Line, 4);
-
-            Line[1].y++; Line[2].x++;
-            Line[0].y = Line[1].y + d93;
-            Line[3].x = Line[2].x + d93;
-            SetDCBrushColor(dc, crBrush2);
-            SetDCPenColor(dc, crPen2);
-            Polygon(dc, Line, 4);
-
-            SelectObject(dc, hpsave);
-            SelectObject(dc, hbsave);
+	case DFCS_SCROLLSIZEGRIPRIGHT:
+		ZeroMemory(&lf, sizeof(LOGFONT));
+		UITOOLS_MakeSquareRect(r, &myr);
+		lf.lfHeight = myr.bottom - myr.top;
+		lf.lfWidth = 0;
+		lf.lfWeight = FW_NORMAL;
+		lf.lfCharSet = DEFAULT_CHARSET;
+		lstrcpy(lf.lfFaceName, TEXT("Marlett"));
+		hFont = CreateFontIndirect(&lf);
+		/* save font and text color */
+		hOldFont = SelectObject(dc, hFont);
+		clrsave = GetTextColor(dc);
+		bkmode = GetBkMode(dc);
+		/* set color and drawing mode */
+		SetBkMode(dc, TRANSPARENT);
+		if (!(uFlags & (DFCS_MONO | DFCS_FLAT)))
+		{
+			SetTextColor(dc, GetSysColor(COLOR_BTNHIGHLIGHT));
+			/* draw selected symbol */
+			Symbol = ((uFlags & 0xff) == DFCS_SCROLLSIZEGRIP) ? 'o' : 'x';
+			TextOut(dc, myr.left, myr.top, &Symbol, 1);
+			SetTextColor(dc, GetSysColor(COLOR_BTNSHADOW));
+		} else
+			SetTextColor(dc, GetSysColor(COLOR_WINDOWFRAME));
+		/* draw selected symbol */
+		Symbol = ((uFlags & 0xff) == DFCS_SCROLLSIZEGRIP) ? 'p' : 'y';
+		TextOut(dc, myr.left, myr.top, &Symbol, 1);
+		/* restore previous settings */
+		SetTextColor(dc, clrsave);
+		SelectObject(dc, hOldFont);
+		SetBkMode(dc, bkmode);
+		DeleteObject(hFont);
             return TRUE;
-	case DFCS_SCROLLSIZEGRIPRIGHT:
-            return FALSE; // unimplemented yet
 	default:
             return FALSE;
     }



More information about the Ros-diffs mailing list