https://git.reactos.org/?p=reactos.git;a=commitdiff;h=fe5c50e1820351e4bfcb8c136e5cab06c3eb8a2b

commit fe5c50e1820351e4bfcb8c136e5cab06c3eb8a2b
Author:     Eric Kohl <eric.k...@reactos.org>
AuthorDate: Sun Feb 17 14:04:39 2019 +0100
Commit:     Eric Kohl <eric.k...@reactos.org>
CommitDate: Sun Feb 17 14:04:39 2019 +0100

    [SNDVOL32] Fix the window height issue when the line selection changes and 
implement the 'Advanced Controls' menu item.
    
    CORE-9108 CORE-15751
---
 base/applications/sndvol32/dialog.c      |  55 ++++++++++++-----
 base/applications/sndvol32/lang/bg-BG.rc |  10 +--
 base/applications/sndvol32/lang/cs-CZ.rc |  10 +--
 base/applications/sndvol32/lang/de-DE.rc |  10 +--
 base/applications/sndvol32/lang/el-GR.rc |  10 +--
 base/applications/sndvol32/lang/en-US.rc |  10 +--
 base/applications/sndvol32/lang/es-ES.rc |  10 +--
 base/applications/sndvol32/lang/fr-FR.rc |  10 +--
 base/applications/sndvol32/lang/he-IL.rc |  10 +--
 base/applications/sndvol32/lang/hu-HU.rc |  10 +--
 base/applications/sndvol32/lang/id-ID.rc |  10 +--
 base/applications/sndvol32/lang/it-IT.rc |  10 +--
 base/applications/sndvol32/lang/ja-JP.rc |  10 +--
 base/applications/sndvol32/lang/ko-KR.rc |  10 +--
 base/applications/sndvol32/lang/lt-LT.rc |  10 +--
 base/applications/sndvol32/lang/nl-NL.rc |  10 +--
 base/applications/sndvol32/lang/no-NO.rc |  10 +--
 base/applications/sndvol32/lang/pl-PL.rc |  10 +--
 base/applications/sndvol32/lang/pt-BR.rc |  10 +--
 base/applications/sndvol32/lang/ro-RO.rc |  10 +--
 base/applications/sndvol32/lang/ru-RU.rc |  10 +--
 base/applications/sndvol32/lang/sk-SK.rc |  10 +--
 base/applications/sndvol32/lang/sq-AL.rc |  10 +--
 base/applications/sndvol32/lang/sv-SE.rc |  10 +--
 base/applications/sndvol32/lang/th-TH.rc |  10 +--
 base/applications/sndvol32/lang/tr-TR.rc |  10 +--
 base/applications/sndvol32/lang/uk-UA.rc |  10 +--
 base/applications/sndvol32/lang/zh-CN.rc |  10 +--
 base/applications/sndvol32/lang/zh-TW.rc |  10 +--
 base/applications/sndvol32/resources.h   |   3 +-
 base/applications/sndvol32/sndvol32.c    | 103 +++++++++++++++++++++++++++----
 base/applications/sndvol32/sndvol32.h    |   5 +-
 32 files changed, 305 insertions(+), 141 deletions(-)

diff --git a/base/applications/sndvol32/dialog.c 
b/base/applications/sndvol32/dialog.c
index 9aed047faf..d14a324098 100644
--- a/base/applications/sndvol32/dialog.c
+++ b/base/applications/sndvol32/dialog.c
@@ -225,7 +225,7 @@ AddDialogControl(
     }
     else if (!wcsicmp(ClassName, L"button"))
     {
-        if (DialogItem->style & BS_AUTOCHECKBOX)
+        if (DialogItem->id == IDC_LINE_SWITCH)
         {
             if (MixerId == PLAY_MIXER)
             {
@@ -233,13 +233,15 @@ AddDialogControl(
                 EnableWindow(hwnd, FALSE);
             }
         }
+        else if (DialogItem->id == IDC_LINE_ADVANCED)
+        {
+            ShowWindow(hwnd, SW_HIDE);
+        }
 
         /* Set font */
         SendMessageW(hwnd, WM_SETFONT, (WPARAM)hFont, TRUE);
     }
 
-    //ShowWindow(hwnd, SW_SHOWNORMAL);
-
     if (WindowName != NULL)
     {
         /* move offset past window name */
@@ -396,6 +398,9 @@ LoadDialog(
                 yBaseUnit = charSize.cy;
             }
             SelectObject(hDC, hOldFont);
+
+            MixerWindow->baseUnit.cx = charSize.cx;
+            MixerWindow->baseUnit.cy = charSize.cy;
         }
     }
 
@@ -480,10 +485,10 @@ EnumConnectionsCallback(
                   dlgId = (PrefContext->MixerWindow->Mode == SMALL_MODE) ? 
IDD_SMALL_LINE : IDD_NORMAL_LINE;
 
               /* load dialog resource */
-              LoadDialog(hAppInstance, PrefContext->MixerWindow, 
MAKEINTRESOURCE(dlgId), PrefContext->Count);
+              LoadDialog(hAppInstance, PrefContext->MixerWindow, 
MAKEINTRESOURCE(dlgId), PrefContext->MixerWindow->DialogCount);
 
               /* get id */
-              wID = (PrefContext->Count + 1) * IDC_LINE_NAME;
+              wID = (PrefContext->MixerWindow->DialogCount + 1) * 
IDC_LINE_NAME;
 
               /* set line name */
               SetDlgItemTextW(PrefContext->MixerWindow->hWnd, wID, 
Line->szName);
@@ -502,7 +507,7 @@ EnumConnectionsCallback(
                           if (SndMixerGetVolumeControlDetails(Mixer, 
Control[Index].dwControlID, 1, sizeof(MIXERCONTROLDETAILS_BOOLEAN), 
(LPVOID)&Details) != -1)
                           {
                               /* update dialog control */
-                              wID = (PrefContext->Count + 1) * IDC_LINE_SWITCH;
+                              wID = (PrefContext->MixerWindow->DialogCount + 
1) * IDC_LINE_SWITCH;
 
                               /* get dialog control */
                               hDlgCtrl = 
GetDlgItem(PrefContext->MixerWindow->hWnd, wID);
@@ -578,7 +583,7 @@ EnumConnectionsCallback(
                               }
 
                               /* Set the volume trackbar */
-                              wID = (PrefContext->Count + 1) * 
IDC_LINE_SLIDER_VERT;
+                              wID = (PrefContext->MixerWindow->DialogCount + 
1) * IDC_LINE_SLIDER_VERT;
 
                               /* get dialog control */
                               hDlgCtrl = 
GetDlgItem(PrefContext->MixerWindow->hWnd, wID);
@@ -601,7 +606,7 @@ EnumConnectionsCallback(
                               if (Line->cChannels == 2)
                               {
                                   /* Set the balance trackbar */
-                                  wID = (PrefContext->Count + 1) * 
IDC_LINE_SLIDER_HORZ;
+                                  wID = (PrefContext->MixerWindow->DialogCount 
+ 1) * IDC_LINE_SLIDER_HORZ;
 
                                   /* get dialog control */
                                   hDlgCtrl = 
GetDlgItem(PrefContext->MixerWindow->hWnd, wID);
@@ -623,6 +628,11 @@ EnumConnectionsCallback(
                               }
                           }
                       }
+                      else
+                      {
+                          if (PrefContext->MixerWindow->Mode == NORMAL_MODE)
+                              PrefContext->MixerWindow->bHasExtendedControls = 
TRUE;
+                      }
                   }
 
                   /* free controls */
@@ -630,7 +640,7 @@ EnumConnectionsCallback(
               }
 
               /* increment dialog count */
-              PrefContext->Count++;
+              PrefContext->MixerWindow->DialogCount++;
           }
     }
 
@@ -650,13 +660,18 @@ LoadDialogCtrls(
     RECT statusRect;
 
     /* set dialog count to zero */
-    PrefContext->Count = 0;
+    PrefContext->MixerWindow->DialogCount = 0;
 
     SetRectEmpty(&PrefContext->MixerWindow->rect);
 
     /* enumerate controls */
     SndMixerEnumConnections(PrefContext->MixerWindow->Mixer, 
PrefContext->SelectedLine, EnumConnectionsCallback, (PVOID)PrefContext);
 
+    if (PrefContext->MixerWindow->bHasExtendedControls)
+    {
+        EnableMenuItem(GetMenu(PrefContext->MixerWindow->hWnd), 
IDM_ADVANCED_CONTROLS, MF_BYCOMMAND | MF_ENABLED);
+    }
+
     if (PrefContext->MixerWindow->hStatusBar)
     {
         GetWindowRect(PrefContext->MixerWindow->hStatusBar, &statusRect);
@@ -667,12 +682,22 @@ LoadDialogCtrls(
     AdjustWindowRect(&PrefContext->MixerWindow->rect, WS_DLGFRAME | WS_CAPTION 
| WS_MINIMIZEBOX | WS_SYSMENU | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_VISIBLE, 
TRUE);
     SetWindowPos(PrefContext->MixerWindow->hWnd, HWND_TOP, 
PrefContext->MixerWindow->rect.left, PrefContext->MixerWindow->rect.top, 
PrefContext->MixerWindow->rect.right - PrefContext->MixerWindow->rect.left, 
PrefContext->MixerWindow->rect.bottom - PrefContext->MixerWindow->rect.top, 
SWP_NOMOVE | SWP_NOZORDER);
 
-    /* get last line separator */
-    hDlgCtrl = GetDlgItem(PrefContext->MixerWindow->hWnd, IDC_LINE_SEP * 
PrefContext->Count);
+    /* Move the status bar */
+    if (PrefContext->MixerWindow->hStatusBar)
+    {
+        SetWindowPos(PrefContext->MixerWindow->hStatusBar,
+                     HWND_TOP,
+                     statusRect.left,
+                     PrefContext->MixerWindow->rect.bottom - 
(statusRect.bottom - statusRect.top),
+                     PrefContext->MixerWindow->rect.right - 
PrefContext->MixerWindow->rect.left,
+                     statusRect.bottom - statusRect.top,
+                     SWP_NOZORDER);
+    }
 
+    /* Hide the last line separator */
+    hDlgCtrl = GetDlgItem(PrefContext->MixerWindow->hWnd, IDC_LINE_SEP * 
PrefContext->MixerWindow->DialogCount /*PrefContext->Count*/);
     if (hDlgCtrl != NULL)
     {
-        /* hide last separator */
         ShowWindow(hDlgCtrl, SW_HIDE);
     }
 }
@@ -689,7 +714,7 @@ UpdateDialogLineSwitchControl(
     WCHAR LineName[MIXER_LONG_NAME_CHARS];
 
     /* find the index of this line */
-    for (Index = 0; Index < PrefContext->Count; Index++)
+    for (Index = 0; Index < PrefContext->MixerWindow->DialogCount; Index++)
     {
         /* get id */
         wID = (Index + 1) * IDC_LINE_NAME;
@@ -736,7 +761,7 @@ UpdateDialogLineSliderControl(
     WCHAR LineName[MIXER_LONG_NAME_CHARS];
 
     /* find the index of this line */
-    for (Index = 0; Index < PrefContext->Count; Index++)
+    for (Index = 0; Index < PrefContext->MixerWindow->DialogCount; Index++)
     {
         /* get id */
         wID = (Index + 1) * IDC_LINE_NAME;
diff --git a/base/applications/sndvol32/lang/bg-BG.rc 
b/base/applications/sndvol32/lang/bg-BG.rc
index ef3937f870..ef4b034071 100644
--- a/base/applications/sndvol32/lang/bg-BG.rc
+++ b/base/applications/sndvol32/lang/bg-BG.rc
@@ -45,7 +45,7 @@ BEGIN
     PUSHBUTTON "Отказ", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -56,10 +56,11 @@ BEGIN
     LTEXT "Сила", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "За&глушаване", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -70,7 +71,8 @@ BEGIN
     LTEXT "Сила", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "За&глушаване", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/cs-CZ.rc 
b/base/applications/sndvol32/lang/cs-CZ.rc
index d021ab6715..7c9194affc 100644
--- a/base/applications/sndvol32/lang/cs-CZ.rc
+++ b/base/applications/sndvol32/lang/cs-CZ.rc
@@ -47,7 +47,7 @@ BEGIN
     PUSHBUTTON "Storno", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -58,10 +58,11 @@ BEGIN
     LTEXT "Hlasitost", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Ztlumit", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -72,7 +73,8 @@ BEGIN
     LTEXT "Hlasitost", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Ztlumit", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/de-DE.rc 
b/base/applications/sndvol32/lang/de-DE.rc
index 43e956b4a9..5c5ef75732 100644
--- a/base/applications/sndvol32/lang/de-DE.rc
+++ b/base/applications/sndvol32/lang/de-DE.rc
@@ -41,7 +41,7 @@ BEGIN
     PUSHBUTTON "Abbrechen", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -52,10 +52,11 @@ BEGIN
     LTEXT "Lautstärke", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 30, 67, 30, 56
     AUTOCHECKBOX "&Stumm", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Erweitert", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -66,7 +67,8 @@ BEGIN
     LTEXT "Lautstärke", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Stumm", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Erweitert", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/el-GR.rc 
b/base/applications/sndvol32/lang/el-GR.rc
index 52139bcda0..219eeaa535 100644
--- a/base/applications/sndvol32/lang/el-GR.rc
+++ b/base/applications/sndvol32/lang/el-GR.rc
@@ -41,7 +41,7 @@ BEGIN
     PUSHBUTTON "Άκυρο", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -52,10 +52,11 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -66,7 +67,8 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/en-US.rc 
b/base/applications/sndvol32/lang/en-US.rc
index 911f2b126a..4bbf0c7970 100644
--- a/base/applications/sndvol32/lang/en-US.rc
+++ b/base/applications/sndvol32/lang/en-US.rc
@@ -41,7 +41,7 @@ BEGIN
     PUSHBUTTON "Cancel", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -52,10 +52,11 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -66,7 +67,8 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/es-ES.rc 
b/base/applications/sndvol32/lang/es-ES.rc
index db470bfb67..a41f927c06 100644
--- a/base/applications/sndvol32/lang/es-ES.rc
+++ b/base/applications/sndvol32/lang/es-ES.rc
@@ -44,7 +44,7 @@ BEGIN
     PUSHBUTTON "Cancelar", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -55,10 +55,11 @@ BEGIN
     LTEXT "Volumen", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Silenciar", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -69,7 +70,8 @@ BEGIN
     LTEXT "Volumen", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Silenciar", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/fr-FR.rc 
b/base/applications/sndvol32/lang/fr-FR.rc
index 6f7d4e7ab8..7f5b979501 100644
--- a/base/applications/sndvol32/lang/fr-FR.rc
+++ b/base/applications/sndvol32/lang/fr-FR.rc
@@ -41,7 +41,7 @@ BEGIN
     PUSHBUTTON "Annuler", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -52,10 +52,11 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Muet", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -66,7 +67,8 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Muet", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/he-IL.rc 
b/base/applications/sndvol32/lang/he-IL.rc
index 588a7f085b..b9a59be989 100644
--- a/base/applications/sndvol32/lang/he-IL.rc
+++ b/base/applications/sndvol32/lang/he-IL.rc
@@ -42,7 +42,7 @@ BEGIN
     PUSHBUTTON "ביטול", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 EXSTYLE WS_EX_LAYOUTRTL
 FONT 8, "MS Shell Dlg"
@@ -54,10 +54,11 @@ BEGIN
     LTEXT "עוצמה", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "השתק", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 EXSTYLE WS_EX_LAYOUTRTL
 FONT 8, "MS Shell Dlg"
@@ -69,7 +70,8 @@ BEGIN
     LTEXT "עוצמה", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "השתק", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/hu-HU.rc 
b/base/applications/sndvol32/lang/hu-HU.rc
index f228d43760..8b3c3d469d 100644
--- a/base/applications/sndvol32/lang/hu-HU.rc
+++ b/base/applications/sndvol32/lang/hu-HU.rc
@@ -43,7 +43,7 @@ BEGIN
     PUSHBUTTON "Mégse", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -54,10 +54,11 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -68,7 +69,8 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/id-ID.rc 
b/base/applications/sndvol32/lang/id-ID.rc
index 078645050c..7d81b5c9df 100644
--- a/base/applications/sndvol32/lang/id-ID.rc
+++ b/base/applications/sndvol32/lang/id-ID.rc
@@ -41,7 +41,7 @@ BEGIN
     PUSHBUTTON "Batal", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -52,10 +52,11 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -66,7 +67,8 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/it-IT.rc 
b/base/applications/sndvol32/lang/it-IT.rc
index 53b2df0e9f..42c3d3fea6 100644
--- a/base/applications/sndvol32/lang/it-IT.rc
+++ b/base/applications/sndvol32/lang/it-IT.rc
@@ -41,7 +41,7 @@ BEGIN
     PUSHBUTTON "Annulla", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -52,10 +52,11 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Disattiva", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -66,7 +67,8 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Disattiva", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/ja-JP.rc 
b/base/applications/sndvol32/lang/ja-JP.rc
index 7c30037bcb..d2a073e13b 100644
--- a/base/applications/sndvol32/lang/ja-JP.rc
+++ b/base/applications/sndvol32/lang/ja-JP.rc
@@ -41,7 +41,7 @@ BEGIN
     PUSHBUTTON "キャンセル", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 9, "MS UI Gothic"
 BEGIN
@@ -52,10 +52,11 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 9, "MS UI Gothic"
 BEGIN
@@ -66,7 +67,8 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/ko-KR.rc 
b/base/applications/sndvol32/lang/ko-KR.rc
index 3a3b8752ed..a7162f22fd 100644
--- a/base/applications/sndvol32/lang/ko-KR.rc
+++ b/base/applications/sndvol32/lang/ko-KR.rc
@@ -43,7 +43,7 @@ BEGIN
     PUSHBUTTON "취소", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 9, "굴림"
 BEGIN
@@ -54,10 +54,11 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 9, "굴림"
 BEGIN
@@ -68,7 +69,8 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/lt-LT.rc 
b/base/applications/sndvol32/lang/lt-LT.rc
index 5f085b9e02..fbe73c0d81 100644
--- a/base/applications/sndvol32/lang/lt-LT.rc
+++ b/base/applications/sndvol32/lang/lt-LT.rc
@@ -43,7 +43,7 @@ BEGIN
     PUSHBUTTON "Atsisakyti", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -54,10 +54,11 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -68,7 +69,8 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/nl-NL.rc 
b/base/applications/sndvol32/lang/nl-NL.rc
index 2f60be9171..90bec932d7 100644
--- a/base/applications/sndvol32/lang/nl-NL.rc
+++ b/base/applications/sndvol32/lang/nl-NL.rc
@@ -41,7 +41,7 @@ BEGIN
     PUSHBUTTON "Annuleren", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -52,10 +52,11 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -66,7 +67,8 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/no-NO.rc 
b/base/applications/sndvol32/lang/no-NO.rc
index 0778d36094..1f92dd8068 100644
--- a/base/applications/sndvol32/lang/no-NO.rc
+++ b/base/applications/sndvol32/lang/no-NO.rc
@@ -41,7 +41,7 @@ BEGIN
     PUSHBUTTON "Avbryt", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -52,10 +52,11 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -66,7 +67,8 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/pl-PL.rc 
b/base/applications/sndvol32/lang/pl-PL.rc
index 8986d6fc4e..7c4f35bd79 100644
--- a/base/applications/sndvol32/lang/pl-PL.rc
+++ b/base/applications/sndvol32/lang/pl-PL.rc
@@ -49,7 +49,7 @@ BEGIN
     PUSHBUTTON "Anuluj", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -60,10 +60,11 @@ BEGIN
     LTEXT "Głośność", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Wycisz", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -74,7 +75,8 @@ BEGIN
     LTEXT "Głośność", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Wycisz", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/pt-BR.rc 
b/base/applications/sndvol32/lang/pt-BR.rc
index b5d1f1e300..7497c866fd 100644
--- a/base/applications/sndvol32/lang/pt-BR.rc
+++ b/base/applications/sndvol32/lang/pt-BR.rc
@@ -43,7 +43,7 @@ BEGIN
     PUSHBUTTON "Cancelar", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -54,10 +54,11 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Mudo", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -68,7 +69,8 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Mudo", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/ro-RO.rc 
b/base/applications/sndvol32/lang/ro-RO.rc
index c1bbb7c62c..2ef39850e1 100644
--- a/base/applications/sndvol32/lang/ro-RO.rc
+++ b/base/applications/sndvol32/lang/ro-RO.rc
@@ -43,7 +43,7 @@ BEGIN
     PUSHBUTTON "A&nulează", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -54,10 +54,11 @@ BEGIN
     LTEXT "Volum", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "A&muțește tot", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -68,7 +69,8 @@ BEGIN
     LTEXT "Volum", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "A&muțește tot", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/ru-RU.rc 
b/base/applications/sndvol32/lang/ru-RU.rc
index fe94a0a4ac..2f4de0c79f 100644
--- a/base/applications/sndvol32/lang/ru-RU.rc
+++ b/base/applications/sndvol32/lang/ru-RU.rc
@@ -43,7 +43,7 @@ BEGIN
     PUSHBUTTON "Отмена", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -54,10 +54,11 @@ BEGIN
     LTEXT "Громкость", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "В&ыкл. все", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -68,7 +69,8 @@ BEGIN
     LTEXT "Громкость", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "В&ыкл. все", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/sk-SK.rc 
b/base/applications/sndvol32/lang/sk-SK.rc
index 06295c283e..4e2252593a 100644
--- a/base/applications/sndvol32/lang/sk-SK.rc
+++ b/base/applications/sndvol32/lang/sk-SK.rc
@@ -43,7 +43,7 @@ BEGIN
     PUSHBUTTON "Zrušiť", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -54,10 +54,11 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -68,7 +69,8 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/sq-AL.rc 
b/base/applications/sndvol32/lang/sq-AL.rc
index 06bf7b4aa8..e066c7a916 100644
--- a/base/applications/sndvol32/lang/sq-AL.rc
+++ b/base/applications/sndvol32/lang/sq-AL.rc
@@ -45,7 +45,7 @@ BEGIN
     PUSHBUTTON "Anulo", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -56,10 +56,11 @@ BEGIN
     LTEXT "Volumi", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "Heshtur", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -70,7 +71,8 @@ BEGIN
     LTEXT "Volumi", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "Heshtur", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/sv-SE.rc 
b/base/applications/sndvol32/lang/sv-SE.rc
index c9e86be88a..696e33d8cf 100644
--- a/base/applications/sndvol32/lang/sv-SE.rc
+++ b/base/applications/sndvol32/lang/sv-SE.rc
@@ -43,7 +43,7 @@ BEGIN
     PUSHBUTTON "Avbryt", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -54,10 +54,11 @@ BEGIN
     LTEXT "Volyme", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Tyst", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -68,7 +69,8 @@ BEGIN
     LTEXT "Volyme", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Tyst", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/th-TH.rc 
b/base/applications/sndvol32/lang/th-TH.rc
index 43b8307551..7dea489c24 100644
--- a/base/applications/sndvol32/lang/th-TH.rc
+++ b/base/applications/sndvol32/lang/th-TH.rc
@@ -49,7 +49,7 @@ BEGIN
     PUSHBUTTON "ยกเลิก", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -60,10 +60,11 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -74,7 +75,8 @@ BEGIN
     LTEXT "Volume", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/tr-TR.rc 
b/base/applications/sndvol32/lang/tr-TR.rc
index 5eeec0ed7a..ba59561b6a 100644
--- a/base/applications/sndvol32/lang/tr-TR.rc
+++ b/base/applications/sndvol32/lang/tr-TR.rc
@@ -43,7 +43,7 @@ BEGIN
     PUSHBUTTON "İptal", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -54,10 +54,11 @@ BEGIN
     LTEXT "Ses Düzeyi", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "S&essiz", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -68,7 +69,8 @@ BEGIN
     LTEXT "Ses Düzeyi", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "S&essiz", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/uk-UA.rc 
b/base/applications/sndvol32/lang/uk-UA.rc
index 72a9a16a36..d7cca4910a 100644
--- a/base/applications/sndvol32/lang/uk-UA.rc
+++ b/base/applications/sndvol32/lang/uk-UA.rc
@@ -49,7 +49,7 @@ BEGIN
     PUSHBUTTON "Скасувати", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -60,10 +60,11 @@ BEGIN
     LTEXT "Гучність", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "&Тиша", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -74,7 +75,8 @@ BEGIN
     LTEXT "Гучність", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "&Тиша", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/zh-CN.rc 
b/base/applications/sndvol32/lang/zh-CN.rc
index 7f264976d0..391ee962ef 100644
--- a/base/applications/sndvol32/lang/zh-CN.rc
+++ b/base/applications/sndvol32/lang/zh-CN.rc
@@ -43,7 +43,7 @@ BEGIN
     PUSHBUTTON "取消", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 9, "宋体"
 BEGIN
@@ -54,10 +54,11 @@ BEGIN
     LTEXT "音量", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "静音(&M)", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 9, "宋体"
 BEGIN
@@ -68,7 +69,8 @@ BEGIN
     LTEXT "音量", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "静音(&M)", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/lang/zh-TW.rc 
b/base/applications/sndvol32/lang/zh-TW.rc
index 06db36d7ee..a2ae7214ab 100644
--- a/base/applications/sndvol32/lang/zh-TW.rc
+++ b/base/applications/sndvol32/lang/zh-TW.rc
@@ -43,7 +43,7 @@ BEGIN
     PUSHBUTTON "取消", IDCANCEL, 168, 226, 50, 14
 END
 
-IDD_NORMAL_MASTER DIALOG 0, 0, 90, 150
+IDD_NORMAL_MASTER DIALOG 0, 0, 90, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 9, "新細明體"
 BEGIN
@@ -54,10 +54,11 @@ BEGIN
     LTEXT "音量", -1, 4, 58, 80, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 67, 30, 56
     AUTOCHECKBOX "靜音(&M)", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 150
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 4, 138, 80, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
90, 1, 1, 137
 END
 
-IDD_NORMAL_LINE DIALOG 0, 0, 70, 150
+IDD_NORMAL_LINE DIALOG 0, 0, 70, 138
 STYLE WS_POPUP | WS_BORDER
 FONT 9, "新細明體"
 BEGIN
@@ -68,7 +69,8 @@ BEGIN
     LTEXT "音量", -1, 4, 58, 60, 8
     CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH 
| TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 67, 30, 56
     AUTOCHECKBOX "靜音(&M)", IDC_LINE_SWITCH, 4, 123, 55, 12
-    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 125
+    PUSHBUTTON "&Advanced", IDC_LINE_ADVANCED, 7, 138, 55, 14, WS_TABSTOP
+    CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 
70, 25, 1, 113
 END
 
 IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
diff --git a/base/applications/sndvol32/resources.h 
b/base/applications/sndvol32/resources.h
index c1aef28f19..65410469d2 100644
--- a/base/applications/sndvol32/resources.h
+++ b/base/applications/sndvol32/resources.h
@@ -23,7 +23,8 @@
 #define IDC_LINE_SWITCH      1009
 #define IDC_LINE_SLIDER_HORZ 1010
 #define IDC_LINE_SLIDER_VERT 1011
-#define IDC_LINE_SEP         1012
+#define IDC_LINE_ADVANCED    1012
+#define IDC_LINE_SEP         1013
 
 #define IDS_SNDVOL32       100
 #define IDS_NOMIXERDEVICES 101
diff --git a/base/applications/sndvol32/sndvol32.c 
b/base/applications/sndvol32/sndvol32.c
index 9d20e45526..bfb640981c 100644
--- a/base/applications/sndvol32/sndvol32.c
+++ b/base/applications/sndvol32/sndvol32.c
@@ -874,6 +874,77 @@ done:
 }
 
 
+static VOID
+ResizeMixerWindow(
+    PMIXER_WINDOW MixerWindow)
+{
+    RECT statusRect;
+    HWND hDlgCtrl;
+    UINT i;
+    LONG dy;
+
+    if (MixerWindow->Mode != NORMAL_MODE)
+        return;
+
+    if (MixerWindow->bHasExtendedControls == FALSE)
+        return;
+
+    if (MixerWindow->hStatusBar)
+    {
+        GetWindowRect(MixerWindow->hStatusBar, &statusRect);
+    }
+
+    /* Height of the 'Advanced' button in dialog units plus 2 units bottom 
space */
+    #define BUTTON_HEIGHT 16
+    dy = MulDiv(BUTTON_HEIGHT, MixerWindow->baseUnit.cy, 8);
+
+    if (MixerWindow->bShowExtendedControls)
+        MixerWindow->rect.bottom += dy;
+    else
+        MixerWindow->rect.bottom -= dy;
+
+    SetWindowPos(MixerWindow->hWnd,
+                 HWND_TOP,
+                 MixerWindow->rect.left,
+                 MixerWindow->rect.top,
+                 MixerWindow->rect.right - MixerWindow->rect.left,
+                 MixerWindow->rect.bottom - MixerWindow->rect.top,
+                 SWP_NOMOVE | SWP_NOZORDER);
+
+    if (MixerWindow->hStatusBar)
+    {
+        SetWindowPos(MixerWindow->hStatusBar,
+                     HWND_TOP,
+                     statusRect.left,
+                     MixerWindow->rect.bottom - (statusRect.bottom - 
statusRect.top),
+                     MixerWindow->rect.right - MixerWindow->rect.left,
+                     statusRect.bottom - statusRect.top,
+                     SWP_NOZORDER);
+    }
+
+    for (i = 0; i < MixerWindow->DialogCount; i++)
+    {
+        hDlgCtrl = GetDlgItem(MixerWindow->hWnd, IDC_LINE_SEP * i);
+        if (hDlgCtrl != NULL)
+        {
+            GetWindowRect(hDlgCtrl, &statusRect);
+            if (MixerWindow->bShowExtendedControls)
+                statusRect.bottom += dy;
+            else
+                statusRect.bottom -= dy;
+
+            SetWindowPos(hDlgCtrl,
+                         HWND_TOP,
+                         0,
+                         0,
+                         statusRect.right - statusRect.left,
+                         statusRect.bottom - statusRect.top,
+                         SWP_NOMOVE | SWP_NOZORDER);
+        }
+    }
+}
+
+
 static LRESULT CALLBACK
 MainWindowProc(HWND hwnd,
                UINT uMsg,
@@ -938,9 +1009,6 @@ MainWindowProc(HWND hwnd,
                         /* use new selected mixer */
                         Preferences.MixerWindow->Mixer = Pref.Mixer;
 
-                        /* rebuild dialog controls */
-                        RebuildMixerWindowControls(&Preferences);
-
                         /* create status window */
                         if (MixerWindow->Mode == NORMAL_MODE)
                         {
@@ -957,10 +1025,21 @@ MainWindowProc(HWND hwnd,
                                     (LPARAM)szProduct);
                             }
                         }
+
+                        /* rebuild dialog controls */
+                        RebuildMixerWindowControls(&Preferences);
                     }
                     break;
                 }
 
+                case IDM_ADVANCED_CONTROLS:
+                    MixerWindow->bShowExtendedControls = 
!MixerWindow->bShowExtendedControls;
+                    CheckMenuItem(GetMenu(hwnd),
+                                  IDM_ADVANCED_CONTROLS,
+                                  MF_BYCOMMAND | 
(MixerWindow->bShowExtendedControls ? MF_CHECKED : MF_UNCHECKED));
+                    ResizeMixerWindow(MixerWindow);
+                    break;
+
                 case IDM_EXIT:
                 {
                     PostQuitMessage(0);
@@ -1160,13 +1239,8 @@ MainWindowProc(HWND hwnd,
                 /* copy product */
                 wcscpy(Preferences.DeviceName, szProduct);
 
-                if (!RebuildMixerWindowControls(&Preferences))
-                {
-                    DPRINT("Rebuilding mixer window controls failed!\n");
-                    SndMixerDestroy(MixerWindow->Mixer);
-                    MixerWindow->Mixer = NULL;
-                    Result = -1;
-                }
+                /* Disable the 'Advanced Controls' menu item */
+                EnableMenuItem(GetMenu(hwnd), IDM_ADVANCED_CONTROLS, 
MF_BYCOMMAND | MF_GRAYED);
 
                 /* create status window */
                 if (MixerWindow->Mode == NORMAL_MODE)
@@ -1184,8 +1258,13 @@ MainWindowProc(HWND hwnd,
                     }
                 }
 
-                /* Disable the 'Advanced Controls' menu item */
-                EnableMenuItem(GetMenu(hwnd), IDM_ADVANCED_CONTROLS, 
MF_BYCOMMAND | MF_GRAYED);
+                if (!RebuildMixerWindowControls(&Preferences))
+                {
+                    DPRINT("Rebuilding mixer window controls failed!\n");
+                    SndMixerDestroy(MixerWindow->Mixer);
+                    MixerWindow->Mixer = NULL;
+                    Result = -1;
+                }
             }
             break;
         }
diff --git a/base/applications/sndvol32/sndvol32.h 
b/base/applications/sndvol32/sndvol32.h
index 7ff11d8485..0e9a0ffd1f 100644
--- a/base/applications/sndvol32/sndvol32.h
+++ b/base/applications/sndvol32/sndvol32.h
@@ -43,11 +43,15 @@ typedef struct _MIXER_WINDOW
   UINT SelectedLine;
   UINT WindowCount;
   HWND *Window;
+    UINT DialogCount;
 
     WINDOW_MODE Mode;
     UINT MixerId;
+    BOOL bHasExtendedControls;
+    BOOL bShowExtendedControls;
     RECT rect;
     HFONT hFont;
+    SIZE baseUnit;
 } MIXER_WINDOW, *PMIXER_WINDOW;
 
 extern HINSTANCE hAppInstance;
@@ -106,7 +110,6 @@ typedef struct _PREFERENCES_CONTEXT
     UINT OtherLines;
     TCHAR DeviceName[128];
 
-    DWORD Count;
     DWORD tmp;
 } PREFERENCES_CONTEXT, *PPREFERENCES_CONTEXT;
 

Reply via email to