[PATCH] comctl32: reduce duplicate code between PropertySheetA/W
Lei Zhang
thestig at google.com
Tue Jun 26 02:28:24 CDT 2007
Hi,
I fixed the modal dialog for PropertySheetA but not PropertySheetW.
Since there's quite a bit of common code at the end of the two
functions, I merged them together in the process.
-------------- next part --------------
From 2430a02c1f26e09e6f516573332774795716b673 Mon Sep 17 00:00:00 2001
From: Lei Zhang <thestig at google.com>
Date: Mon, 25 Jun 2007 23:56:24 -0700
Subject: [PATCH] comctl32: reduce duplicate code between PropertySheetA/W
---
dlls/comctl32/propsheet.c | 56 ++++++++++++++++++++++-----------------------
1 files changed, 27 insertions(+), 29 deletions(-)
diff --git a/dlls/comctl32/propsheet.c b/dlls/comctl32/propsheet.c
index 04929c5..6a60e19 100644
--- a/dlls/comctl32/propsheet.c
+++ b/dlls/comctl32/propsheet.c
@@ -2780,6 +2780,31 @@ static INT do_loop(const PropSheetInfo *
}
/******************************************************************************
+ * PROPSHEET_PropertySheet
+ *
+ * Common code between PropertySheetA/W
+ */
+static INT_PTR PROPSHEET_PropertySheet(PropSheetInfo* psInfo, BOOL unicode)
+{
+ INT_PTR bRet = 0;
+ if (psInfo->active_page >= psInfo->nPages) psInfo->active_page = 0;
+ TRACE("startpage: %d of %d pages\n", psInfo->active_page, psInfo->nPages);
+
+ psInfo->unicode = unicode;
+ psInfo->ended = FALSE;
+
+ bRet = PROPSHEET_CreateDialog(psInfo);
+ if(!psInfo->isModeless)
+ {
+ HWND parent = GetParent(psInfo->hwnd);
+ if (parent) EnableWindow(parent, FALSE);
+ bRet = do_loop(psInfo);
+ if (parent) EnableWindow(parent, TRUE);
+ }
+ return bRet;
+}
+
+/******************************************************************************
* PropertySheet (COMCTL32.@)
* PropertySheetA (COMCTL32.@)
*
@@ -2794,7 +2819,6 @@ static INT do_loop(const PropSheetInfo *
*/
INT_PTR WINAPI PropertySheetA(LPCPROPSHEETHEADERA lppsh)
{
- INT_PTR bRet = 0;
PropSheetInfo* psInfo = (PropSheetInfo*) GlobalAlloc(GPTR,
sizeof(PropSheetInfo));
UINT i, n;
@@ -2828,22 +2852,7 @@ INT_PTR WINAPI PropertySheetA(LPCPROPSHE
}
}
- if (psInfo->active_page >= psInfo->nPages) psInfo->active_page = 0;
- TRACE("startpage: %d of %d pages\n", psInfo->active_page, psInfo->nPages);
-
- psInfo->unicode = FALSE;
- psInfo->ended = FALSE;
-
- bRet = PROPSHEET_CreateDialog(psInfo);
- if(!psInfo->isModeless)
- {
- HWND parent = GetParent(psInfo->hwnd);
- if (parent) EnableWindow(parent, FALSE);
- bRet = do_loop(psInfo);
- if (parent) EnableWindow(parent, TRUE);
- }
-
- return bRet;
+ return PROPSHEET_PropertySheet(psInfo, FALSE);
}
/******************************************************************************
@@ -2853,7 +2862,6 @@ INT_PTR WINAPI PropertySheetA(LPCPROPSHE
*/
INT_PTR WINAPI PropertySheetW(LPCPROPSHEETHEADERW lppsh)
{
- INT_PTR bRet = 0;
PropSheetInfo* psInfo = (PropSheetInfo*) GlobalAlloc(GPTR,
sizeof(PropSheetInfo));
UINT i, n;
@@ -2887,17 +2895,7 @@ INT_PTR WINAPI PropertySheetW(LPCPROPSHE
}
}
- if (psInfo->active_page >= psInfo->nPages) psInfo->active_page = 0;
- TRACE("startpage: %d of %d pages\n", psInfo->active_page, psInfo->nPages);
-
- psInfo->unicode = TRUE;
- psInfo->ended = FALSE;
-
- bRet = PROPSHEET_CreateDialog(psInfo);
- if(!psInfo->isModeless)
- bRet = do_loop(psInfo);
-
- return bRet;
+ return PROPSHEET_PropertySheet(psInfo, TRUE);
}
static LPWSTR load_string( HINSTANCE instance, LPCWSTR str )
--
1.4.1
More information about the wine-patches
mailing list