Rebar fixes from CW

Dimitrie O. Paun dimi at cs.toronto.edu
Sat Jan 26 01:45:15 CST 2002


Extracted from office1.diff

ChangeLog
  Text/Bkgnd color fixes for the rebar (by Codeweavers).

--
Dimi.
-------------- next part --------------
Index: dlls/comctl32/rebar.c
===================================================================
RCS file: /var/cvs/wine/dlls/comctl32/rebar.c,v
retrieving revision 1.51
diff -u -r1.51 rebar.c
--- dlls/comctl32/rebar.c	14 Jan 2002 18:32:42 -0000	1.51
+++ dlls/comctl32/rebar.c	26 Jan 2002 06:32:22 -0000
@@ -569,13 +569,18 @@
 	/* need to handle CDRF_NEWFONT here */
 	INT oldBkMode = SetBkMode (hdc, TRANSPARENT);
 	COLORREF oldcolor = CLR_NONE;
-	oldcolor = SetTextColor (hdc, (lpBand->clrFore != CLR_NONE) ?
-				 lpBand->clrFore : infoPtr->clrBtnText);
+	COLORREF new;
+	if (lpBand->clrFore != CLR_NONE) {
+	    new = (lpBand->clrFore == CLR_DEFAULT) ? infoPtr->clrBtnText :
+		    lpBand->clrFore;
+	    oldcolor = SetTextColor (hdc, new);
+	}
 	DrawTextW (hdc, lpBand->lpText, -1, &lpBand->rcCapText,
 		   DT_CENTER | DT_VCENTER | DT_SINGLELINE);
 	if (oldBkMode != TRANSPARENT)
 	    SetBkMode (hdc, oldBkMode);
-	SetTextColor (hdc, oldcolor);
+	if (lpBand->clrFore != CLR_NONE) 
+	    SetTextColor (hdc, oldcolor);
 	SelectObject (hdc, hOldFont);
     }
 
@@ -2078,7 +2083,7 @@
     INT i, oldrow;
     HDC hdc = (HDC)wParam;
     RECT rect;
-    COLORREF old, new;
+    COLORREF old = CLR_NONE, new;
 
     oldrow = -1;
     for(i=0; i<infoPtr->uNumBands; i++) {
@@ -2124,25 +2129,28 @@
 	}
 
 	/* draw the actual background */
-	if (lpBand->clrBack != CLR_NONE)
-	    new = lpBand->clrBack;
-	else
-	    new = infoPtr->clrBtnFace;
-	rect = lpBand->rcBand;
+	if (lpBand->clrBack != CLR_NONE) {
+	    new = (lpBand->clrBack == CLR_DEFAULT) ? infoPtr->clrBtnFace :
+		    lpBand->clrBack;
 #if GLATESTING
-	/* testing only - make background green to see it */
-	new = RGB(0,128,0);
+	    /* testing only - make background green to see it */
+	    new = RGB(0,128,0);
 #endif
-	old = SetBkColor (hdc, new);
+	    old = SetBkColor (hdc, new);
+	}
+
+	rect = lpBand->rcBand;
 	TRACE("%s background color=0x%06lx, band (%d,%d)-(%d,%d), clip (%d,%d)-(%d,%d)\n",
-	      (lpBand->clrBack == CLR_NONE) ? "std" : "",
-	      new,
+	      (lpBand->clrBack == CLR_NONE) ? "none" : 
+	        ((lpBand->clrBack == CLR_DEFAULT) ? "dft" : ""),
+	      GetBkColor(hdc),
 	      lpBand->rcBand.left,lpBand->rcBand.top,
 	      lpBand->rcBand.right,lpBand->rcBand.bottom,
 	      clip->left, clip->top,
 	      clip->right, clip->bottom);
 	ExtTextOutA (hdc, 0, 0, ETO_OPAQUE, &rect, NULL, 0, 0);
-	SetBkColor (hdc, old);
+	if (lpBand->clrBack != CLR_NONE)
+	    SetBkColor (hdc, old);
     }
     return TRUE;
 }
@@ -2589,7 +2597,7 @@
     if (lprbbi->fMask & RBBIM_COLORS) {
 	lprbbi->clrFore = lpBand->clrFore;
 	lprbbi->clrBack = lpBand->clrBack;
-	if (lprbbi->clrBack == CLR_NONE)
+	if (lprbbi->clrBack == CLR_DEFAULT)
 	    lprbbi->clrBack = infoPtr->clrBtnFace;
     }
 
@@ -2675,7 +2683,7 @@
     if (lprbbi->fMask & RBBIM_COLORS) {
 	lprbbi->clrFore = lpBand->clrFore;
 	lprbbi->clrBack = lpBand->clrBack;
-	if (lprbbi->clrBack == CLR_NONE)
+	if (lprbbi->clrBack == CLR_DEFAULT)
 	    lprbbi->clrBack = infoPtr->clrBtnFace;
     }
 
@@ -2773,7 +2781,7 @@
 {
     COLORREF clr = infoPtr->clrBk;
 
-    if (clr == CLR_NONE)
+    if (clr == CLR_DEFAULT)
       clr = infoPtr->clrBtnFace;
 
     TRACE("background color 0x%06lx!\n", clr);


More information about the wine-patches mailing list