[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
AddDialogControl(
IN HWND hwndDialog,
IN HWND * OutWnd,
OUT HWND *OutWnd,
IN LPRECT DialogOffset,
IN PDLGITEMTEMPLATE DialogItem,
IN DWORD DialogIdMultiplier,
IN HFONT hFont,
UINT xBaseUnit,
UINT yBaseUnit)
IN UINT xBaseUnit,
IN UINT yBaseUnit,
IN UINT MixerId)
{
RECT rect;
LPWORD Offset;
@ -211,9 +212,23 @@ AddDialogControl(
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);
}
@ -275,7 +290,15 @@ LoadDialogControls(
for (Index = 0; Index < ItemCount; Index++)
{
/* 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 */
assert(Offset);
@ -480,6 +503,10 @@ EnumConnectionsCallback(
if (hDlgCtrl != NULL)
{
/* Enable the 'Mute' checkbox, if we are in play mode */
if (Mixer->MixerId == PLAY_MIXER)
EnableWindow(hDlgCtrl, TRUE);
/* check state */
if (SendMessageW(hDlgCtrl, BM_GETCHECK, 0, 0) != Details.fValue)
{

View file

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

View file

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