[SNDVOL32] Disable the Mute checkbox for all lines that do not have a mute switch control

This commit is contained in:
Eric Kohl 2019-02-16 12:57:19 +01:00
parent 24b2d59ab6
commit cc820b7f9f
3 changed files with 44 additions and 9 deletions

View file

@ -66,13 +66,14 @@ LoadDialogResource(
LPWORD LPWORD
AddDialogControl( AddDialogControl(
IN HWND hwndDialog, IN HWND hwndDialog,
IN HWND * OutWnd, OUT HWND *OutWnd,
IN LPRECT DialogOffset, IN LPRECT DialogOffset,
IN PDLGITEMTEMPLATE DialogItem, IN PDLGITEMTEMPLATE DialogItem,
IN DWORD DialogIdMultiplier, IN DWORD DialogIdMultiplier,
IN HFONT hFont, IN HFONT hFont,
UINT xBaseUnit, IN UINT xBaseUnit,
UINT yBaseUnit) IN UINT yBaseUnit,
IN UINT MixerId)
{ {
RECT rect; RECT rect;
LPWORD Offset; LPWORD Offset;
@ -211,9 +212,23 @@ AddDialogControl(
SendMessage(hwnd, TBM_SETTIC, 0, (LPARAM)i); SendMessage(hwnd, TBM_SETTIC, 0, (LPARAM)i);
} }
} }
else if (!wcsicmp(ClassName, L"static") || !wcsicmp(ClassName, L"button")) else if (!wcsicmp(ClassName, L"static"))
{ {
/* set font */ /* Set font */
SendMessageW(hwnd, WM_SETFONT, (WPARAM)hFont, TRUE);
}
else if (!wcsicmp(ClassName, L"button"))
{
if (DialogItem->style & BS_AUTOCHECKBOX)
{
if (MixerId == PLAY_MIXER)
{
/* Disable checkboxes by default, if we are in play mode */
EnableWindow(hwnd, FALSE);
}
}
/* Set font */
SendMessageW(hwnd, WM_SETFONT, (WPARAM)hFont, TRUE); SendMessageW(hwnd, WM_SETFONT, (WPARAM)hFont, TRUE);
} }
@ -275,7 +290,15 @@ LoadDialogControls(
for (Index = 0; Index < ItemCount; Index++) for (Index = 0; Index < ItemCount; Index++)
{ {
/* add controls */ /* add controls */
Offset = AddDialogControl(MixerWindow->hWnd, &MixerWindow->Window[MixerWindow->WindowCount], DialogOffset, DialogItem, DialogIdMultiplier, MixerWindow->hFont, xBaseUnit, yBaseUnit); Offset = AddDialogControl(MixerWindow->hWnd,
&MixerWindow->Window[MixerWindow->WindowCount],
DialogOffset,
DialogItem,
DialogIdMultiplier,
MixerWindow->hFont,
xBaseUnit,
yBaseUnit,
MixerWindow->MixerId);
/* sanity check */ /* sanity check */
assert(Offset); assert(Offset);
@ -480,6 +503,10 @@ EnumConnectionsCallback(
if (hDlgCtrl != NULL) if (hDlgCtrl != NULL)
{ {
/* Enable the 'Mute' checkbox, if we are in play mode */
if (Mixer->MixerId == PLAY_MIXER)
EnableWindow(hDlgCtrl, TRUE);
/* check state */ /* check state */
if (SendMessageW(hDlgCtrl, BM_GETCHECK, 0, 0) != Details.fValue) if (SendMessageW(hDlgCtrl, BM_GETCHECK, 0, 0) != Details.fValue)
{ {

View file

@ -1328,7 +1328,7 @@ HandleCommandLine(LPTSTR cmdline,
{ {
TCHAR option; TCHAR option;
*pMixerId = 0; *pMixerId = PLAY_MIXER;
*pMode = (dwStyle & 0x20) ? SMALL_MODE : NORMAL_MODE; *pMode = (dwStyle & 0x20) ? SMALL_MODE : NORMAL_MODE;
while (*cmdline == _T(' ') || *cmdline == _T('-') || *cmdline == _T('/')) while (*cmdline == _T(' ') || *cmdline == _T('-') || *cmdline == _T('/'))
@ -1348,6 +1348,11 @@ HandleCommandLine(LPTSTR cmdline,
case 'D': case 'D':
break; break;
case 'n': /* Small size */
case 'N':
*pMode = NORMAL_MODE;
break;
case 's': /* Small size */ case 's': /* Small size */
case 'S': case 'S':
*pMode = SMALL_MODE; *pMode = SMALL_MODE;
@ -1360,12 +1365,12 @@ HandleCommandLine(LPTSTR cmdline,
case 'p': /* Play mode */ case 'p': /* Play mode */
case 'P': case 'P':
*pMixerId = 0; *pMixerId = PLAY_MIXER;
break; break;
case 'r': /* Record mode */ case 'r': /* Record mode */
case 'R': case 'R':
*pMixerId = 1; *pMixerId = RECORD_MIXER;
break; break;
default: default:

View file

@ -25,6 +25,9 @@
#define BALANCE_TICKS 1 #define BALANCE_TICKS 1
#define BALANCE_PAGE_SIZE 12 #define BALANCE_PAGE_SIZE 12
#define PLAY_MIXER 0
#define RECORD_MIXER 1
typedef enum _WINDOW_MODE typedef enum _WINDOW_MODE
{ {
NORMAL_MODE, NORMAL_MODE,