Nikolay Sivov : comctl32/comboex: Use cached colors for ComboEx.

Alexandre Julliard julliard at winehq.org
Tue May 19 09:23:09 CDT 2009


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

Author: Nikolay Sivov <bunglehead at gmail.com>
Date:   Mon May 18 19:52:50 2009 +0400

comctl32/comboex: Use cached colors for ComboEx.

---

 dlls/comctl32/comboex.c |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/dlls/comctl32/comboex.c b/dlls/comctl32/comboex.c
index 25c2dbf..04464fd 100644
--- a/dlls/comctl32/comboex.c
+++ b/dlls/comctl32/comboex.c
@@ -1535,11 +1535,11 @@ static LRESULT COMBOEX_DrawItem (COMBOEX_INFO *infoPtr, DRAWITEMSTRUCT const *di
 
 	/* now draw the text */
 	if (!IsWindowVisible (infoPtr->hwndEdit)) {
-	    nbkc = GetSysColor ((dis->itemState & ODS_SELECTED) ?
-				COLOR_HIGHLIGHT : COLOR_WINDOW);
+	    nbkc = (dis->itemState & ODS_SELECTED) ?
+	            comctl32_color.clrHighlight : comctl32_color.clrWindow;
 	    bkc = SetBkColor (dis->hDC, nbkc);
-	    ntxc = GetSysColor ((dis->itemState & ODS_SELECTED) ?
-				COLOR_HIGHLIGHTTEXT : COLOR_WINDOWTEXT);
+	    ntxc = (dis->itemState & ODS_SELECTED) ?
+	            comctl32_color.clrHighlightText : comctl32_color.clrWindowText;
 	    txc = SetTextColor (dis->hDC, ntxc);
 	    x = xbase + xioff;
 	    y = dis->rcItem.top +
@@ -1750,7 +1750,7 @@ COMBOEX_EditWndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 	     * The following was determined by traces of the native
 	     */
             hDC = (HDC) wParam;
-	    obkc = SetBkColor (hDC, GetSysColor (COLOR_WINDOW));
+	    obkc = SetBkColor (hDC, comctl32_color.clrWindow);
             GetClientRect (hwnd, &rect);
             TRACE("erasing (%s)\n", wine_dbgstr_rect(&rect));
 	    ExtTextOutW (hDC, 0, 0, ETO_OPAQUE, &rect, 0, 0, 0);
@@ -1953,7 +1953,7 @@ COMBOEX_ComboWndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 	     * The following was determined by traces of the native
 	     */
             hDC = (HDC) wParam;
-	    obkc = SetBkColor (hDC, GetSysColor (COLOR_WINDOW));
+	    obkc = SetBkColor (hDC, comctl32_color.clrWindow);
             GetClientRect (hwnd, &rect);
             TRACE("erasing (%s)\n", wine_dbgstr_rect(&rect));
 	    ExtTextOutW (hDC, 0, 0, ETO_OPAQUE, &rect, 0, 0, 0);
@@ -2320,6 +2320,10 @@ COMBOEX_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
             SetFocus(infoPtr->hwndCombo);
             return 0;
 
+        case WM_SYSCOLORCHANGE:
+            COMCTL32_RefreshSysColors();
+            return 0;
+
 	default:
 	    if ((uMsg >= WM_USER) && (uMsg < WM_APP) && !COMCTL32_IsReflectedMessage(uMsg))
 		ERR("unknown msg %04x wp=%08lx lp=%08lx\n",uMsg,wParam,lParam);




More information about the wine-cvs mailing list