[5/7] comctl32/header: Add support for HDS_FLAT style

Nikolay Sivov bunglehead at gmail.com
Sun Jun 21 17:50:19 CDT 2009


Changelog:
    - Add support for HDS_FLAT style

>From 56e3f4178f22386c6d816d34d01365a8dbff6a0c Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <bunglehead at gmail.com>
Date: Sun, 21 Jun 2009 01:25:03 +0400
Subject: 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);
 
-- 
1.5.6.5







More information about the wine-patches mailing list