Mikołaj Zalewski : comctl32: header: Move common code from SetItemT/InsertItemT into a new function.

Alexandre Julliard julliard at wine.codeweavers.com
Mon May 15 09:42:28 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: e3467de964aae8a503997b109ee5f35b5ea89509
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=e3467de964aae8a503997b109ee5f35b5ea89509

Author: Mikołaj Zalewski <mikolaj at zalewski.pl>
Date:   Sat May 13 21:11:21 2006 +0200

comctl32: header: Move common code from SetItemT/InsertItemT into a new function.

---

 dlls/comctl32/header.c |  123 +++++++++++++++++++-----------------------------
 1 files changed, 48 insertions(+), 75 deletions(-)

diff --git a/dlls/comctl32/header.c b/dlls/comctl32/header.c
index bf8581d..99c19d0 100644
--- a/dlls/comctl32/header.c
+++ b/dlls/comctl32/header.c
@@ -110,6 +110,51 @@ static void HEADER_DisposeItem(HEADER_IT
     }
 }
 
+static void HEADER_StoreHDItemInHeader(HEADER_ITEM *lpItem, HDITEMW *phdi, BOOL fUnicode)
+{
+    if (phdi->mask & HDI_BITMAP)
+        lpItem->hbm = phdi->hbm;
+
+    if (phdi->mask & HDI_FORMAT)
+        lpItem->fmt = phdi->fmt;
+
+    if (phdi->mask & HDI_LPARAM)
+        lpItem->lParam = phdi->lParam;
+
+    if (phdi->mask & HDI_WIDTH)
+        lpItem->cxy = phdi->cxy;
+
+    if (phdi->mask & HDI_IMAGE) 
+    {
+        lpItem->iImage = phdi->iImage;
+    }
+
+    if (phdi->mask & HDI_TEXT)
+    {
+        if (!phdi->pszText) phdi->pszText = emptyString; /* null pointer check */
+        if (phdi->pszText != LPSTR_TEXTCALLBACKW) /* covers != TEXTCALLBACKA too */
+        {
+            if (lpItem->pszText)
+            {
+                if (lpItem->pszText != emptyString && lpItem->pszText != LPSTR_TEXTCALLBACKW)
+                    Free(lpItem->pszText);
+                lpItem->pszText = NULL;
+            }
+            if (phdi->pszText)
+            {
+                if (fUnicode)
+                    Str_SetPtrW(&lpItem->pszText, phdi->pszText);
+                else
+                    Str_SetPtrAtoW(&lpItem->pszText, (LPSTR)phdi->pszText);
+            }
+        }
+        else
+        {
+            lpItem->pszText = phdi->pszText;
+        }  
+    }
+}
+
 inline static LRESULT
 HEADER_IndexToOrder (HWND hwnd, INT iItem)
 {
@@ -1085,44 +1130,11 @@ HEADER_InsertItemT (HWND hwnd, INT nItem
     }
 
     lpItem = &infoPtr->items[nItem];
-    lpItem->bDown = FALSE;
-
-    if (phdi->mask & HDI_WIDTH)
-	lpItem->cxy = phdi->cxy;
-
-    if (phdi->mask & HDI_FORMAT)
-	lpItem->fmt = phdi->fmt;
-
-    if (lpItem->fmt == 0)
-	lpItem->fmt = HDF_LEFT;
-
-    if (phdi->mask & HDI_BITMAP)
-        lpItem->hbm = phdi->hbm;
-
-    if (phdi->mask & HDI_LPARAM)
-        lpItem->lParam = phdi->lParam;
-
-    if (phdi->mask & HDI_IMAGE) 
-    {
-        lpItem->iImage = phdi->iImage;
-    }
+    ZeroMemory(lpItem, sizeof(HEADER_ITEM));
+    HEADER_StoreHDItemInHeader(lpItem, phdi, bUnicode);
 
     if (phdi->mask & HDI_TEXT)
-    {
-        if (!phdi->pszText) phdi->pszText = emptyString; /* null pointer check */
-        if (phdi->pszText != LPSTR_TEXTCALLBACKW) /* covers != TEXTCALLBACKA too */
-        {
-            if (bUnicode)
-                Str_SetPtrW(&lpItem->pszText, phdi->pszText);
-            else
-                Str_SetPtrAtoW(&lpItem->pszText, (LPSTR)phdi->pszText);
-        }
-        else 
-        {
-            lpItem->pszText = phdi->pszText;
-        }
         lpItem->fmt |= HDF_STRING;
-    }
 
     lpItem->iOrder = iOrder;
 
@@ -1221,46 +1233,7 @@ HEADER_SetItemT (HWND hwnd, INT nItem, L
     }
 
     lpItem = &infoPtr->items[nItem];
-    if (phdi->mask & HDI_BITMAP)
-	lpItem->hbm = phdi->hbm;
-
-    if (phdi->mask & HDI_FORMAT)
-	lpItem->fmt = phdi->fmt;
-
-    if (phdi->mask & HDI_LPARAM)
-	lpItem->lParam = phdi->lParam;
-
-    if (phdi->mask & HDI_WIDTH)
-	lpItem->cxy = phdi->cxy;
-
-    if (phdi->mask & HDI_IMAGE) 
-    {
-        lpItem->iImage = phdi->iImage;
-    }
-
-    if (phdi->mask & HDI_TEXT)
-    {
-        if (phdi->pszText != LPSTR_TEXTCALLBACKW) /* covers != TEXTCALLBACKA too */
-        {
-            if (lpItem->pszText)
-            {
-                if (lpItem->pszText != emptyString && lpItem->pszText != LPSTR_TEXTCALLBACKW)
-                    Free(lpItem->pszText);
-                lpItem->pszText = NULL;
-            }
-            if (phdi->pszText)
-            {
-                if (bUnicode)
-                    Str_SetPtrW(&lpItem->pszText, phdi->pszText);
-                else
-                    Str_SetPtrAtoW(&lpItem->pszText, (LPSTR)phdi->pszText);
-            }
-	}
-	else 
-	{
-            lpItem->pszText = phdi->pszText;
-        }  
-    }
+    HEADER_StoreHDItemInHeader(lpItem, phdi, bUnicode);
 
     if (phdi->mask & HDI_ORDER)
       {




More information about the wine-cvs mailing list