property sheet patch #2
Dmitry Timoshkov
dmitry at codeweavers.com
Fri May 5 08:58:55 CDT 2006
Hello,
please apply after the property sheet patch #1.
Changelog:
Add support for PSP_USEHEADERTITLE, PSP_USEHEADERSUBTITLE and
PSP_HIDEHEADER in CreatePropertySheetPageA/W, handle resource ids.
--- cvs/hq/wine/dlls/comctl32/propsheet.c 2006-05-05 22:35:13.000000000 +0900
+++ wine/dlls/comctl32/propsheet.c 2006-05-05 22:36:22.000000000 +0900
@@ -2925,26 +2925,69 @@ HPROPSHEETPAGE WINAPI CreatePropertyShee
memcpy(ppsp,lpPropSheetPage,min(lpPropSheetPage->dwSize,sizeof(PROPSHEETPAGEA)));
ppsp->dwFlags &= ~ PSP_INTERNAL_UNICODE;
- if ( !(ppsp->dwFlags & PSP_DLGINDIRECT) && HIWORD( ppsp->u.pszTemplate ) )
- {
- int len = strlen(lpPropSheetPage->u.pszTemplate);
- ppsp->u.pszTemplate = Alloc( len+1 );
- strcpy( (LPSTR)ppsp->u.pszTemplate, lpPropSheetPage->u.pszTemplate );
- }
- if ( (ppsp->dwFlags & PSP_USEICONID) && HIWORD( ppsp->u2.pszIcon ) )
- {
- PROPSHEET_AtoW(&ppsp->u2.pszIcon, lpPropSheetPage->u2.pszIcon);
- }
+ if ( !(ppsp->dwFlags & PSP_DLGINDIRECT) )
+ {
+ if (HIWORD( ppsp->u.pszTemplate ))
+ {
+ int len = strlen(lpPropSheetPage->u.pszTemplate) + 1;
+ ppsp->u.pszTemplate = Alloc( len );
+ strcpy( (LPSTR)ppsp->u.pszTemplate, lpPropSheetPage->u.pszTemplate );
+ }
+ }
- if ((ppsp->dwFlags & PSP_USETITLE) && HIWORD( ppsp->pszTitle ))
- {
- PROPSHEET_AtoW(&ppsp->pszTitle, lpPropSheetPage->pszTitle);
- }
- else if ( !(ppsp->dwFlags & PSP_USETITLE) )
- ppsp->pszTitle = NULL;
+ if (ppsp->dwFlags & PSP_USEICONID)
+ {
+ if (HIWORD( ppsp->u2.pszIcon ))
+ PROPSHEET_AtoW(&ppsp->u2.pszIcon, lpPropSheetPage->u2.pszIcon);
+ }
+
+ if (ppsp->dwFlags & PSP_USETITLE)
+ {
+ if (HIWORD( ppsp->pszTitle ))
+ PROPSHEET_AtoW( &ppsp->pszTitle, lpPropSheetPage->pszTitle );
+ else
+ {
+ int len = LoadStringW( ppsp->hInstance, LOWORD(ppsp->pszTitle), NULL, 0 ) + 1;
+ ppsp->pszTitle = Alloc( len );
+ LoadStringW( ppsp->hInstance, LOWORD(ppsp->pszTitle), (LPWSTR)ppsp->pszTitle, len );
+ }
+ }
+ else
+ ppsp->pszTitle = NULL;
- return (HPROPSHEETPAGE)ppsp;
+ if (ppsp->dwFlags & PSP_HIDEHEADER)
+ ppsp->dwFlags &= ~(PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE);
+
+ if (ppsp->dwFlags & PSP_USEHEADERTITLE)
+ {
+ if (HIWORD( ppsp->pszHeaderTitle ))
+ PROPSHEET_AtoW(&ppsp->pszHeaderTitle, lpPropSheetPage->pszHeaderTitle);
+ else
+ {
+ int len = LoadStringW( ppsp->hInstance, LOWORD(ppsp->pszHeaderTitle), NULL, 0 ) + 1;
+ ppsp->pszHeaderTitle = Alloc( len );
+ LoadStringW( ppsp->hInstance, LOWORD(ppsp->pszHeaderTitle), (LPWSTR)ppsp->pszHeaderTitle, len );
+ }
+ }
+ else
+ ppsp->pszHeaderTitle = NULL;
+
+ if (ppsp->dwFlags & PSP_USEHEADERSUBTITLE)
+ {
+ if (HIWORD( ppsp->pszHeaderSubTitle ))
+ PROPSHEET_AtoW(&ppsp->pszHeaderSubTitle, lpPropSheetPage->pszHeaderSubTitle);
+ else
+ {
+ int len = LoadStringW( ppsp->hInstance, LOWORD(ppsp->pszHeaderSubTitle), NULL, 0 ) + 1;
+ ppsp->pszHeaderSubTitle = Alloc( len );
+ LoadStringW( ppsp->hInstance, LOWORD(ppsp->pszHeaderSubTitle), (LPWSTR)ppsp->pszHeaderSubTitle, len );
+ }
+ }
+ else
+ ppsp->pszHeaderSubTitle = NULL;
+
+ return (HPROPSHEETPAGE)ppsp;
}
/******************************************************************************
@@ -2960,30 +3003,84 @@ HPROPSHEETPAGE WINAPI CreatePropertyShee
ppsp->dwFlags |= PSP_INTERNAL_UNICODE;
- if ( !(ppsp->dwFlags & PSP_DLGINDIRECT) && HIWORD( ppsp->u.pszTemplate ) )
- {
- int len = strlenW(lpPropSheetPage->u.pszTemplate);
+ if ( !(ppsp->dwFlags & PSP_DLGINDIRECT) )
+ {
+ if (HIWORD( ppsp->u.pszTemplate ))
+ {
+ int len = strlenW(lpPropSheetPage->u.pszTemplate) + 1;
+ ppsp->u.pszTemplate = Alloc( len * sizeof (WCHAR) );
+ strcpyW( (WCHAR *)ppsp->u.pszTemplate, lpPropSheetPage->u.pszTemplate );
+ }
+ }
- ppsp->u.pszTemplate = Alloc( (len+1)*sizeof (WCHAR) );
- strcpyW( (WCHAR *)ppsp->u.pszTemplate, lpPropSheetPage->u.pszTemplate );
- }
- if ( (ppsp->dwFlags & PSP_USEICONID) && HIWORD( ppsp->u2.pszIcon ) )
- {
- int len = strlenW(lpPropSheetPage->u2.pszIcon);
- ppsp->u2.pszIcon = Alloc( (len+1)*sizeof (WCHAR) );
- strcpyW( (WCHAR *)ppsp->u2.pszIcon, lpPropSheetPage->u2.pszIcon );
- }
+ if ( ppsp->dwFlags & PSP_USEICONID )
+ {
+ if (HIWORD( ppsp->u2.pszIcon ))
+ {
+ int len = strlenW(lpPropSheetPage->u2.pszIcon) + 1;
+ ppsp->u2.pszIcon = Alloc( len * sizeof (WCHAR) );
+ strcpyW( (WCHAR *)ppsp->u2.pszIcon, lpPropSheetPage->u2.pszIcon );
+ }
+ }
- if ((ppsp->dwFlags & PSP_USETITLE) && HIWORD( ppsp->pszTitle ))
- {
- int len = strlenW(lpPropSheetPage->pszTitle);
- ppsp->pszTitle = Alloc( (len+1)*sizeof (WCHAR) );
- strcpyW( (WCHAR *)ppsp->pszTitle, lpPropSheetPage->pszTitle );
- }
- else if ( !(ppsp->dwFlags & PSP_USETITLE) )
- ppsp->pszTitle = NULL;
+ if (ppsp->dwFlags & PSP_USETITLE)
+ {
+ if (HIWORD( ppsp->pszTitle ))
+ {
+ int len = strlenW(lpPropSheetPage->pszTitle) + 1;
+ ppsp->pszTitle = Alloc( len * sizeof (WCHAR) );
+ strcpyW( (WCHAR *)ppsp->pszTitle, lpPropSheetPage->pszTitle );
+ }
+ else
+ {
+ int len = LoadStringW( ppsp->hInstance, LOWORD(ppsp->pszTitle), NULL, 0 ) + 1;
+ ppsp->pszTitle = Alloc( len );
+ LoadStringW( ppsp->hInstance, LOWORD(ppsp->pszTitle), (LPWSTR)ppsp->pszTitle, len );
+ }
+ }
+ else
+ ppsp->pszTitle = NULL;
+
+ if (ppsp->dwFlags & PSP_HIDEHEADER)
+ ppsp->dwFlags &= ~(PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE);
+
+ if (ppsp->dwFlags & PSP_USEHEADERTITLE)
+ {
+ if (HIWORD( ppsp->pszHeaderTitle ))
+ {
+ int len = strlenW(lpPropSheetPage->pszHeaderTitle) + 1;
+ ppsp->pszHeaderTitle = Alloc( len * sizeof (WCHAR) );
+ strcpyW( (WCHAR *)ppsp->pszHeaderTitle, lpPropSheetPage->pszHeaderTitle );
+ }
+ else
+ {
+ int len = LoadStringW( ppsp->hInstance, LOWORD(ppsp->pszHeaderTitle), NULL, 0 ) + 1;
+ ppsp->pszHeaderTitle = Alloc( len );
+ LoadStringW( ppsp->hInstance, LOWORD(ppsp->pszHeaderTitle), (LPWSTR)ppsp->pszHeaderTitle, len );
+ }
+ }
+ else
+ ppsp->pszHeaderTitle = NULL;
+
+ if (ppsp->dwFlags & PSP_USEHEADERSUBTITLE)
+ {
+ if (HIWORD( ppsp->pszHeaderSubTitle ))
+ {
+ int len = strlenW(lpPropSheetPage->pszHeaderSubTitle) + 1;
+ ppsp->pszHeaderSubTitle = Alloc( len * sizeof (WCHAR) );
+ strcpyW( (WCHAR *)ppsp->pszHeaderSubTitle, lpPropSheetPage->pszHeaderSubTitle );
+ }
+ else
+ {
+ int len = LoadStringW( ppsp->hInstance, LOWORD(ppsp->pszHeaderSubTitle), NULL, 0 ) + 1;
+ ppsp->pszHeaderSubTitle = Alloc( len );
+ LoadStringW( ppsp->hInstance, LOWORD(ppsp->pszHeaderSubTitle), (LPWSTR)ppsp->pszHeaderSubTitle, len );
+ }
+ }
+ else
+ ppsp->pszHeaderSubTitle = NULL;
- return (HPROPSHEETPAGE)ppsp;
+ return (HPROPSHEETPAGE)ppsp;
}
/******************************************************************************
More information about the wine-patches
mailing list