From 0cbee494b34354b533346eece60e03f6cdaf9cab Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Mon, 25 Jun 2007 23:56:24 -0700 Subject: [PATCH] comctl32: Reduce duplicate code between PropertySheetA/W. --- dlls/comctl32/propsheet.c | 56 +++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/dlls/comctl32/propsheet.c b/dlls/comctl32/propsheet.c index 04929c569c9..6a60e193526 100644 --- a/dlls/comctl32/propsheet.c +++ b/dlls/comctl32/propsheet.c @@ -2780,6 +2780,31 @@ static INT do_loop(const PropSheetInfo *psInfo) } /****************************************************************************** + * 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 *psInfo) */ 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(LPCPROPSHEETHEADERA lppsh) } } - 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(LPCPROPSHEETHEADERA lppsh) */ 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(LPCPROPSHEETHEADERW lppsh) } } - 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 ) -- 2.11.4.GIT