Recalculate property sheet sizes after adding/removing sheets.

svn path=/trunk/; revision=24319
This commit is contained in:
Thomas Bluemel 2006-09-30 16:31:35 +00:00
parent c25e3321b0
commit 41f18c74da
2 changed files with 14 additions and 2 deletions

View file

@ -593,6 +593,7 @@ UpdateDevInfo(IN HWND hwndDlg,
PSP_DEVINFO_DATA DeviceInfoData = NULL; PSP_DEVINFO_DATA DeviceInfoData = NULL;
PROPSHEETHEADER psh; PROPSHEETHEADER psh;
DWORD nDriverPages = 0; DWORD nDriverPages = 0;
BOOL RecalcPages = FALSE;
hPropSheetDlg = GetParent(hwndDlg); hPropSheetDlg = GetParent(hwndDlg);
@ -614,6 +615,7 @@ UpdateDevInfo(IN HWND hwndDlg,
PropSheet_RemovePage(hPropSheetDlg, PropSheet_RemovePage(hPropSheetDlg,
(WPARAM) -1, (WPARAM) -1,
dap->DevPropSheets[iPage]); dap->DevPropSheets[iPage]);
RecalcPages = TRUE;
} }
} }
} }
@ -1023,8 +1025,11 @@ GetParentNode:
iPage != nDriverPages; iPage != nDriverPages;
iPage++) iPage++)
{ {
PropSheet_AddPage(hPropSheetDlg, if (PropSheet_AddPage(hPropSheetDlg,
dap->DevPropSheets[iPage]); dap->DevPropSheets[iPage]))
{
RecalcPages = TRUE;
}
} }
dap->FreeDevPropSheets = TRUE; dap->FreeDevPropSheets = TRUE;
@ -1057,6 +1062,7 @@ GetParentNode:
dap->DevPropSheets[iPage])) dap->DevPropSheets[iPage]))
{ {
iPage++; iPage++;
RecalcPages = TRUE;
} }
else else
{ {
@ -1070,6 +1076,11 @@ GetParentNode:
dap->nDevPropSheets = 0; dap->nDevPropSheets = 0;
} }
if (RecalcPages)
{
PropSheet_RecalcPageSizes(hPropSheetDlg);
}
/* finally, disable the apply button */ /* finally, disable the apply button */
PropSheet_UnChanged(hPropSheetDlg, PropSheet_UnChanged(hPropSheetDlg,
hwndDlg); hwndDlg);

View file

@ -307,6 +307,7 @@ int WINAPI PropertySheetW(LPCPROPSHEETHEADERW);
#define PropSheet_SetTitle(d,w,s) SendMessage(d,PSM_SETTITLE,w,(LPARAM)s) #define PropSheet_SetTitle(d,w,s) SendMessage(d,PSM_SETTITLE,w,(LPARAM)s)
#define PropSheet_SetWizButtons(d,f) PostMessage(d,PSM_SETWIZBUTTONS,0,(LPARAM)f) #define PropSheet_SetWizButtons(d,f) PostMessage(d,PSM_SETWIZBUTTONS,0,(LPARAM)f)
#define PropSheet_UnChanged(d,w) SendMessage(d,PSM_UNCHANGED,(WPARAM)w,0) #define PropSheet_UnChanged(d,w) SendMessage(d,PSM_UNCHANGED,(WPARAM)w,0)
#define PropSheet_RecalcPageSizes(d) SendMessage(d,PSM_RECALCPAGESIZES,0,0)
#endif #endif
#define WC_PROPSHEETA "SysPropertySheet" #define WC_PROPSHEETA "SysPropertySheet"