Nikolay Sivov : comctl32/header: Add support for HDS_FLAT style.

Alexandre Julliard julliard at winehq.org
Mon Jun 22 09:04:15 CDT 2009


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

Author: Nikolay Sivov <bunglehead at gmail.com>
Date:   Sun Jun 21 01:25:03 2009 +0400

comctl32/header: Add support for HDS_FLAT style.

---

 dlls/comctl32/header.c |   30 +++++++++++++++++++-----------
 1 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/dlls/comctl32/header.c b/dlls/comctl32/header.c
index fed582d..1486a8a 100644
--- a/dlls/comctl32/header.c
+++ b/dlls/comctl32/header.c
@@ -329,18 +329,21 @@ HEADER_DrawItem (HEADER_INFO *infoPtr, HDC hdc, INT iItem, BOOL bHotTrack, LRESU
     }
     else {
         HBRUSH hbr;
-    
-        if (infoPtr->dwStyle & HDS_BUTTONS) {
-            if (phdi->bDown) {
-                DrawEdge (hdc, &r, BDR_RAISEDOUTER,
-                            BF_RECT | BF_FLAT | BF_MIDDLE | BF_ADJUST);
+
+        if (!(infoPtr->dwStyle & HDS_FLAT))
+        {
+            if (infoPtr->dwStyle & HDS_BUTTONS) {
+                if (phdi->bDown) {
+                    DrawEdge (hdc, &r, BDR_RAISEDOUTER,
+                                BF_RECT | BF_FLAT | BF_MIDDLE | BF_ADJUST);
+                }
+                else
+                    DrawEdge (hdc, &r, EDGE_RAISED,
+                                BF_RECT | BF_SOFT | BF_MIDDLE | BF_ADJUST);
             }
             else
-                DrawEdge (hdc, &r, EDGE_RAISED,
-                            BF_RECT | BF_SOFT | BF_MIDDLE | BF_ADJUST);
+                DrawEdge (hdc, &r, EDGE_ETCHED, BF_BOTTOM | BF_RIGHT | BF_ADJUST);
         }
-        else
-            DrawEdge (hdc, &r, EDGE_ETCHED, BF_BOTTOM | BF_RIGHT | BF_ADJUST);
 
         hbr = CreateSolidBrush(GetBkColor(hdc));
         FillRect(hdc, &r, hbr);
@@ -547,14 +550,19 @@ HEADER_Refresh (HEADER_INFO *infoPtr, HDC hdc)
         if (theme != NULL) {
             DrawThemeBackground(theme, hdc, HP_HEADERITEM, HIS_NORMAL, &rcRest, NULL);
         }
-        else {
+        else if (infoPtr->dwStyle & HDS_FLAT) {
+            hbrBk = GetSysColorBrush(COLOR_3DFACE);
+            FillRect(hdc, &rcRest, hbrBk);
+        }
+        else
+        {
             if (infoPtr->dwStyle & HDS_BUTTONS)
                 DrawEdge (hdc, &rcRest, EDGE_RAISED, BF_TOP|BF_LEFT|BF_BOTTOM|BF_SOFT|BF_MIDDLE);
             else
                 DrawEdge (hdc, &rcRest, EDGE_ETCHED, BF_BOTTOM|BF_MIDDLE);
         }
     }
-    
+
     if (infoPtr->iHotDivider != -1)
         HEADER_DrawHotDivider(infoPtr, hdc);
 




More information about the wine-cvs mailing list