Recalculate property sheet sizes after adding/removing sheets.
authorThomas Bluemel <thomas@reactsoft.com>
Sat, 30 Sep 2006 16:31:35 +0000 (16:31 +0000)
committerThomas Bluemel <thomas@reactsoft.com>
Sat, 30 Sep 2006 16:31:35 +0000 (16:31 +0000)
svn path=/trunk/; revision=24319

reactos/dll/win32/devmgr/advprop.c
reactos/include/psdk/prsht.h

index e1bfad6..f4b667d 100644 (file)
@@ -593,6 +593,7 @@ UpdateDevInfo(IN HWND hwndDlg,
     PSP_DEVINFO_DATA DeviceInfoData = NULL;
     PROPSHEETHEADER psh;
     DWORD nDriverPages = 0;
+    BOOL RecalcPages = FALSE;
 
     hPropSheetDlg = GetParent(hwndDlg);
 
@@ -614,6 +615,7 @@ UpdateDevInfo(IN HWND hwndDlg,
                     PropSheet_RemovePage(hPropSheetDlg,
                                          (WPARAM) -1,
                                          dap->DevPropSheets[iPage]);
+                    RecalcPages = TRUE;
                 }
             }
         }
@@ -1023,8 +1025,11 @@ GetParentNode:
                          iPage != nDriverPages;
                          iPage++)
                     {
-                        PropSheet_AddPage(hPropSheetDlg,
-                                          dap->DevPropSheets[iPage]);
+                        if (PropSheet_AddPage(hPropSheetDlg,
+                                              dap->DevPropSheets[iPage]))
+                        {
+                            RecalcPages = TRUE;
+                        }
                     }
 
                     dap->FreeDevPropSheets = TRUE;
@@ -1057,6 +1062,7 @@ GetParentNode:
                                           dap->DevPropSheets[iPage]))
                     {
                         iPage++;
+                        RecalcPages = TRUE;
                     }
                     else
                     {
@@ -1070,6 +1076,11 @@ GetParentNode:
             dap->nDevPropSheets = 0;
     }
 
+    if (RecalcPages)
+    {
+        PropSheet_RecalcPageSizes(hPropSheetDlg);
+    }
+
     /* finally, disable the apply button */
     PropSheet_UnChanged(hPropSheetDlg,
                         hwndDlg);
index 286cde5..ed7f087 100644 (file)
@@ -307,6 +307,7 @@ int WINAPI PropertySheetW(LPCPROPSHEETHEADERW);
 #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_UnChanged(d,w) SendMessage(d,PSM_UNCHANGED,(WPARAM)w,0)
+#define PropSheet_RecalcPageSizes(d) SendMessage(d,PSM_RECALCPAGESIZES,0,0)
 #endif
 
 #define WC_PROPSHEETA      "SysPropertySheet"