[SNDVOL32] Resize the dialog and groupbox when there are two 'Other Controls'
authorEric Kohl <eric.kohl@reactos.org>
Sat, 23 Feb 2019 16:21:25 +0000 (17:21 +0100)
committerEric Kohl <eric.kohl@reactos.org>
Sat, 23 Feb 2019 16:27:42 +0000 (17:27 +0100)
base/applications/sndvol32/advanced.c

index 1274912..a4f055f 100644 (file)
@@ -109,7 +109,7 @@ OnInitDialog(
             }
         }
 
-        /* free controls */
+        /* Free controls */
         HeapFree(GetProcessHeap(), 0, Control);
     }
 
@@ -122,7 +122,7 @@ OnInitDialog(
         /* Resize the dialog */
         GetWindowRect(hwndDlg, &rect);
 
-        dy = MulDiv(73, Context->MixerWindow->baseUnit.cy, 8);
+        dy = MulDiv((dwOtherControls == 1) ? 73 : (73 + 15), Context->MixerWindow->baseUnit.cy, 8);
         rect.bottom += dy;
 
         SetWindowPos(hwndDlg, HWND_TOP, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, SWP_NOMOVE | SWP_NOZORDER);
@@ -135,6 +135,18 @@ OnInitDialog(
         rect.bottom += dy;
 
         SetWindowPos(GetDlgItem(hwndDlg, IDOK), HWND_TOP, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, SWP_NOSIZE | SWP_NOZORDER);
+
+        if (dwOtherControls == 2)
+        {
+            /* Resize the 'Other Controls' groupbox */
+            GetWindowRect(GetDlgItem(hwndDlg, IDC_ADV_OTHER_CONTROLS), &rect);
+            MapWindowPoints(HWND_DESKTOP, hwndDlg, (LPPOINT)&rect, 2);
+
+            dy = MulDiv(15, Context->MixerWindow->baseUnit.cy, 8);
+            rect.bottom += dy;
+
+            SetWindowPos(GetDlgItem(hwndDlg, IDC_ADV_OTHER_CONTROLS), HWND_TOP, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, SWP_NOMOVE | SWP_NOZORDER);
+        }
     }
 }