[SNDVOL32] Add the small master dialog

- Add the small master dialog.
- Add support for tray (/t), small (/s) and normal (/n) dialog sizes.
- Fix the font size calculation for the dialogs.
- Fix the dialog unit to pixel conversion.
- Fix the client window size calculation.
- Do not leak font handles.
This commit is contained in:
Eric Kohl 2018-03-10 21:10:40 +01:00
parent 8bdebb1fed
commit 849fdca3f9
32 changed files with 514 additions and 115 deletions

View file

@ -7,11 +7,15 @@
#include "sndvol32.h"
#include <wingdi.h>
#define XLEFT (30)
#define XTOP (20)
#define DIALOG_VOLUME_SIZE (150)
VOID
ConvertRect(LPRECT lpRect, UINT xBaseUnit, UINT yBaseUnit)
{
lpRect->left = MulDiv(lpRect->left, xBaseUnit, 4);
lpRect->right = MulDiv(lpRect->right, xBaseUnit, 4);
lpRect->top = MulDiv(lpRect->top, yBaseUnit, 8);
lpRect->bottom = MulDiv(lpRect->bottom, yBaseUnit, 8);
}
LPVOID
LoadDialogResource(
@ -66,7 +70,9 @@ AddDialogControl(
IN LPRECT DialogOffset,
IN PDLGITEMTEMPLATE DialogItem,
IN DWORD DialogIdMultiplier,
IN HFONT hFont)
IN HFONT hFont,
UINT xBaseUnit,
UINT yBaseUnit)
{
RECT rect;
LPWORD Offset;
@ -75,12 +81,18 @@ AddDialogControl(
DWORD wID;
/* initialize client rectangle */
rect.left = DialogItem->x + DialogOffset->left;
rect.top = DialogItem->y + DialogOffset->top;
rect.right = DialogItem->cx;
rect.bottom = DialogItem->cy;
rect.left = DialogItem->x;
rect.top = DialogItem->y;
rect.right = DialogItem->x + DialogItem->cx;
rect.bottom = DialogItem->y + DialogItem->cy;
//MapDialogRect(hwndDialog, &rect);
/* Convert Dialog units to pixes */
ConvertRect(&rect, xBaseUnit, yBaseUnit);
rect.left += DialogOffset->left;
rect.right += DialogOffset->left;
rect.top += DialogOffset->top;
rect.bottom += DialogOffset->top;
/* move offset after dialog item */
Offset = (LPWORD)(DialogItem + 1);
@ -140,8 +152,8 @@ AddDialogControl(
DialogItem->style,
rect.left,
rect.top,
rect.right,
rect.bottom,
rect.right - rect.left,
rect.bottom - rect.top,
hwndDialog,
(HMENU)(wID),
hAppInstance,
@ -207,35 +219,75 @@ VOID
LoadDialogControls(
IN PMIXER_WINDOW MixerWindow,
LPRECT DialogOffset,
LPVOID DlgResource,
DWORD DialogIdMultiplier)
WORD ItemCount,
PDLGITEMTEMPLATE DialogItem,
DWORD DialogIdMultiplier,
UINT xBaseUnit,
UINT yBaseUnit)
{
LPDLGTEMPLATE DialogHeader;
PDLGITEMTEMPLATE DialogItem;
LPWORD Offset;
WORD FontSize;
WCHAR FontName[100];
WORD Length, Index;
HFONT Font;
/* get dialog header */
DialogHeader = (LPDLGTEMPLATE)DlgResource;
WORD Index;
/* sanity check */
assert(DialogHeader->cdit);
assert(ItemCount);
if (MixerWindow->Window)
MixerWindow->Window = (HWND*)HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, MixerWindow->Window, (MixerWindow->WindowCount + DialogHeader->cdit) * sizeof(HWND));
MixerWindow->Window = (HWND*)HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, MixerWindow->Window, (MixerWindow->WindowCount + ItemCount) * sizeof(HWND));
else
MixerWindow->Window = (HWND*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, DialogHeader->cdit * sizeof(HWND));
MixerWindow->Window = (HWND*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ItemCount * sizeof(HWND));
if (!MixerWindow->Window)
{
/* no memory */
return;
}
/* now walk past the dialog header */
Offset = (LPWORD)(DialogHeader + 1);
/* enumerate now all controls */
for (Index = 0; Index < ItemCount; Index++)
{
/* add controls */
Offset = AddDialogControl(MixerWindow->hWnd, &MixerWindow->Window[MixerWindow->WindowCount], DialogOffset, DialogItem, DialogIdMultiplier, MixerWindow->hFont, xBaseUnit, yBaseUnit);
/* sanity check */
assert(Offset);
/* move dialog item to new offset */
DialogItem =(PDLGITEMTEMPLATE)Offset;
/* increment window count */
MixerWindow->WindowCount++;
}
}
VOID
LoadDialog(
IN HMODULE hModule,
IN PMIXER_WINDOW MixerWindow,
IN LPCWSTR DialogResId,
IN DWORD Index)
{
LPDLGTEMPLATE DlgTemplate;
PDLGITEMTEMPLATE DlgItem;
RECT dialogRect;
LPWORD Offset;
WORD FontSize;
WCHAR FontName[100];
WORD Length;
int width;
DWORD units = GetDialogBaseUnits();
UINT xBaseUnit = LOWORD(units);
UINT yBaseUnit = HIWORD(units);
/* first load the dialog resource */
DlgTemplate = (LPDLGTEMPLATE)LoadDialogResource(hModule, DialogResId, NULL);
if (!DlgTemplate)
{
/* failed to load resource */
return;
}
/* Now walk past the dialog header */
Offset = (LPWORD)(DlgTemplate + 1);
/* FIXME: support menu */
assert(*Offset == 0);
@ -260,61 +312,62 @@ LoadDialogControls(
/* copy font */
wcscpy(FontName, (LPWSTR)Offset);
Font = CreateFontW(FontSize+8, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FF_DONTCARE, FontName);
assert(Font);
if (DlgTemplate->style & DS_SETFONT)
{
HDC hDC;
hDC = GetDC(0);
if (!MixerWindow->hFont)
{
int pixels = MulDiv(FontSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);
MixerWindow->hFont = CreateFontW(-pixels, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FF_DONTCARE, FontName);
}
if (MixerWindow->hFont)
{
SIZE charSize;
HFONT hOldFont;
hOldFont = SelectObject(hDC, MixerWindow->hFont);
charSize.cx = GdiGetCharDimensions(hDC, NULL, &charSize.cy);
if (charSize.cx)
{
xBaseUnit = charSize.cx;
yBaseUnit = charSize.cy;
}
SelectObject(hDC, hOldFont);
}
}
// assert(MixerWindow->hFont);
/* move offset after font name */
Offset += Length;
/* offset is now at first dialog item control */
DialogItem = (PDLGITEMTEMPLATE)Offset;
DlgItem = (PDLGITEMTEMPLATE)Offset;
/* enumerate now all controls */
for(Index = 0; Index < DialogHeader->cdit; Index++)
{
/* add controls */
Offset = AddDialogControl(MixerWindow->hWnd, &MixerWindow->Window[MixerWindow->WindowCount], DialogOffset, DialogItem, DialogIdMultiplier, Font);
dialogRect.left = 0;
dialogRect.right = DlgTemplate->cx;
dialogRect.top = 0;
dialogRect.bottom = DlgTemplate->cy;
/* sanity check */
assert(Offset);
ConvertRect(&dialogRect, xBaseUnit, yBaseUnit);
/* move dialog item to new offset */
DialogItem =(PDLGITEMTEMPLATE)Offset;
width = dialogRect.right - dialogRect.left;
/* increment window count */
MixerWindow->WindowCount++;
}
}
VOID
LoadDialog(
IN HMODULE hModule,
IN PMIXER_WINDOW MixerWindow,
IN LPCWSTR DialogResId,
IN DWORD Index)
{
LPVOID DlgResource;
RECT rect;
/* first load the dialog resource */
DlgResource = LoadDialogResource(hModule, DialogResId, NULL);
if (!DlgResource)
{
/* failed to load resource */
return;
}
/* get window size */
GetClientRect(MixerWindow->hWnd, &rect);
/* adjust client position */
rect.left += (Index * DIALOG_VOLUME_SIZE);
dialogRect.left += MixerWindow->rect.right;
dialogRect.right += MixerWindow->rect.right;
dialogRect.top += MixerWindow->rect.top;
dialogRect.bottom += MixerWindow->rect.top;
MixerWindow->rect.right += width;
if ((dialogRect.bottom - dialogRect.top) > (MixerWindow->rect.bottom - MixerWindow->rect.top))
MixerWindow->rect.bottom = MixerWindow->rect.top + dialogRect.bottom - dialogRect.top;
/* now add the controls */
LoadDialogControls(MixerWindow, &rect, DlgResource, Index);
LoadDialogControls(MixerWindow, &dialogRect, DlgTemplate->cdit, DlgItem, Index, xBaseUnit, yBaseUnit);
}
BOOL
@ -328,7 +381,6 @@ EnumConnectionsCallback(
WCHAR LineName[MIXER_LONG_NAME_CHARS];
DWORD Flags;
DWORD wID;
RECT rect;
UINT ControlCount = 0, Index;
LPMIXERCONTROL Control = NULL;
HWND hDlgCtrl;
@ -352,8 +404,10 @@ EnumConnectionsCallback(
/* is it selected */
if (Flags != 0x4)
{
int dlgId = (PrefContext->MixerWindow->Mode == SMALL_MODE) ? IDD_SMALL_MASTER : IDD_VOLUME_CTRL;
/* load dialog resource */
LoadDialog(hAppInstance, PrefContext->MixerWindow, MAKEINTRESOURCE(IDD_VOLUME_CTRL), PrefContext->Count);
LoadDialog(hAppInstance, PrefContext->MixerWindow, MAKEINTRESOURCE(dlgId), PrefContext->Count);
/* get id */
wID = (PrefContext->Count + 1) * IDC_LINE_NAME;
@ -431,12 +485,6 @@ EnumConnectionsCallback(
/* increment dialog count */
PrefContext->Count++;
/* get application rectangle */
GetWindowRect(PrefContext->MixerWindow->hWnd, &rect);
/* now move the window */
MoveWindow(PrefContext->MixerWindow->hWnd, rect.left, rect.top, (PrefContext->Count * DIALOG_VOLUME_SIZE), rect.bottom - rect.top, TRUE);
}
}
}
@ -448,13 +496,26 @@ LoadDialogCtrls(
PPREFERENCES_CONTEXT PrefContext)
{
HWND hDlgCtrl;
RECT statusRect;
/* set dialog count to zero */
PrefContext->Count = 0;
SetRectEmpty(&PrefContext->MixerWindow->rect);
/* enumerate controls */
SndMixerEnumConnections(PrefContext->MixerWindow->Mixer, PrefContext->SelectedLine, EnumConnectionsCallback, (PVOID)PrefContext);
if (PrefContext->MixerWindow->hStatusBar)
{
GetWindowRect(PrefContext->MixerWindow->hStatusBar, &statusRect);
PrefContext->MixerWindow->rect.bottom += (statusRect.bottom - statusRect.top);
}
/* now move the window */
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);
@ -463,7 +524,6 @@ LoadDialogCtrls(
/* hide last separator */
ShowWindow(hDlgCtrl, SW_HIDE);
}
}
VOID

View file

@ -59,6 +59,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Обща", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "За&глушаване", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -61,6 +61,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Celková hlasitost", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Ztlumit", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -55,6 +55,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Master", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Stumm", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -55,6 +55,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Master", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -55,6 +55,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Master", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -58,6 +58,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Principal", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Silenciar", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -55,6 +55,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Volume principal", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Muet", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -57,6 +57,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "ראשי", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "השתק", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -57,6 +57,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Master", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -55,6 +55,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Master", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -55,6 +55,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Master", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Disattiva", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -55,6 +55,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 9, "MS UI Gothic"
BEGIN
CTEXT "Master", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -57,6 +57,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 9, "굴림"
BEGIN
CTEXT "Master", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -57,6 +57,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Master", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -55,6 +55,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Master", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -55,6 +55,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Master", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -63,6 +63,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Kanał główny", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Wycisz", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -57,6 +57,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Master", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Mudo", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -56,6 +56,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Volum general", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "A&muțește tot", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -57,6 +57,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Главная", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "В&ыкл. все", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -57,6 +57,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Master", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -59,6 +59,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Master", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "Heshtur", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -57,6 +57,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Huvud", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Tyst", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -63,6 +63,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Master", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -57,6 +57,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Ana", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "S&essiz", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -63,6 +63,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
CTEXT "Головна", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "&Тиша", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -57,6 +57,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 9, "宋体"
BEGIN
CTEXT "主要", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "静音(&M)", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -57,6 +57,17 @@ BEGIN
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END
IDD_SMALL_MASTER DIALOG 0, 0, 45, 100
STYLE WS_POPUP | WS_BORDER
FONT 9, "新細明體"
BEGIN
CTEXT "主要", IDC_LINE_NAME, 3, 3, 39, 8
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 2, 12, 39, 18
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 8, 30, 30, 50
AUTOCHECKBOX "靜音(&M)", IDC_LINE_SWITCH, 1, 85, 44, 10
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 45, 1, 1, 100
END
IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
STYLE DS_MODALFRAME | WS_POPUP
EXSTYLE WS_EX_TOOLWINDOW

View file

@ -26,6 +26,7 @@
#define IDS_SNDVOL32 100
#define IDS_NOMIXERDEVICES 101
#define IDD_VOLUME_CTRL 200
#define IDD_PREFERENCES 201
#define IDD_TRAY_CTRL 202
#define IDD_VOLUME_CTRL 200
#define IDD_SMALL_MASTER 202
#define IDD_TRAY_CTRL 204
#define IDD_PREFERENCES 205

View file

@ -820,7 +820,8 @@ MainWindowProc(HWND hwnd,
}
/* destroy old status bar */
DestroyWindow(MixerWindow->hStatusBar);
if (MixerWindow->Mode == NORMAL_MODE)
DestroyWindow(MixerWindow->hStatusBar);
/* update details */
Preferences.SelectedLine = Pref.SelectedLine;
@ -835,18 +836,20 @@ MainWindowProc(HWND hwnd,
RebuildMixerWindowControls(&Preferences);
/* create status window */
MixerWindow->hStatusBar = CreateStatusWindow(WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS,
NULL,
hwnd,
0);
/* set status bar */
if (MixerWindow->hStatusBar)
if (MixerWindow->Mode == NORMAL_MODE)
{
SendMessage(MixerWindow->hStatusBar,
WM_SETTEXT,
0,
(LPARAM)szProduct);
MixerWindow->hStatusBar = CreateStatusWindow(WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS,
NULL,
hwnd,
0);
if (MixerWindow->hStatusBar)
{
/* Set status bar */
SendMessage(MixerWindow->hStatusBar,
WM_SETTEXT,
0,
(LPARAM)szProduct);
}
}
}
break;
@ -999,16 +1002,19 @@ MainWindowProc(HWND hwnd,
}
/* create status window */
MixerWindow->hStatusBar = CreateStatusWindow(WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS,
NULL,
hwnd,
0);
if (MixerWindow->hStatusBar)
if (MixerWindow->Mode == NORMAL_MODE)
{
SendMessage(MixerWindow->hStatusBar,
WM_SETTEXT,
0,
(LPARAM)szProduct);
MixerWindow->hStatusBar = CreateStatusWindow(WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS,
NULL,
hwnd,
0);
if (MixerWindow->hStatusBar)
{
SendMessage(MixerWindow->hStatusBar,
WM_SETTEXT,
0,
(LPARAM)szProduct);
}
}
}
break;
@ -1024,6 +1030,8 @@ MainWindowProc(HWND hwnd,
{
SndMixerDestroy(MixerWindow->Mixer);
}
if (MixerWindow->hFont)
DeleteObject(MixerWindow->hFont);
HeapFree(hAppHeap, 0, MixerWindow);
}
break;
@ -1080,7 +1088,9 @@ UnregisterApplicationClasses(VOID)
}
static HWND
CreateApplicationWindow(VOID)
CreateApplicationWindow(
WINDOW_MODE WindowMode,
BOOL bRecord)
{
HWND hWnd;
@ -1092,6 +1102,9 @@ CreateApplicationWindow(VOID)
return NULL;
}
MixerWindow->Mode = WindowMode;
if (mixerGetNumDevs() > 0)
{
hWnd = CreateWindowEx(WS_EX_WINDOWEDGE | WS_EX_CONTROLPARENT,
@ -1139,10 +1152,14 @@ CreateApplicationWindow(VOID)
static
BOOL
HandleCommandLine(LPTSTR cmdline,
PBOOL pTray)
PWINDOW_MODE pMode,
PBOOL pRecord)
{
TCHAR option;
*pRecord = FALSE;
*pMode = SMALL_MODE;
while (*cmdline == _T(' ') || *cmdline == _T('-') || *cmdline == _T('/'))
{
if (*cmdline++ == _T(' '))
@ -1162,25 +1179,27 @@ HandleCommandLine(LPTSTR cmdline,
case 'n': /* Normal size */
case 'N':
*pTray = FALSE;
*pMode = NORMAL_MODE;
break;
case 's': /* Small size */
case 'S':
*pTray = FALSE;
*pMode = SMALL_MODE;
break;
case 't': /* Tray size */
case 'T':
*pTray = TRUE;
*pMode = TRAY_MODE;
break;
case 'p': /* Play mode */
case 'P':
*pRecord = FALSE;
break;
case 'r': /* Record mode */
case 'R':
*pRecord = TRUE;
break;
default:
@ -1200,7 +1219,8 @@ _tWinMain(HINSTANCE hInstance,
MSG Msg;
int Ret = 1;
INITCOMMONCONTROLSEX Controls;
BOOL bTray = FALSE;
WINDOW_MODE WindowMode = SMALL_MODE;
BOOL bRecord = FALSE;
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(nCmdShow);
@ -1208,7 +1228,7 @@ _tWinMain(HINSTANCE hInstance,
hAppInstance = hInstance;
hAppHeap = GetProcessHeap();
HandleCommandLine(lpszCmdLine, &bTray);
HandleCommandLine(lpszCmdLine, &WindowMode, &bRecord);
if (InitAppConfig())
{
@ -1225,7 +1245,7 @@ _tWinMain(HINSTANCE hInstance,
InitCommonControlsEx(&Controls);
if (bTray)
if (WindowMode == TRAY_MODE)
{
DialogBoxParam(hAppInstance,
MAKEINTRESOURCE(IDD_TRAY_CTRL),
@ -1237,7 +1257,7 @@ _tWinMain(HINSTANCE hInstance,
{
if (RegisterApplicationClasses())
{
hMainWnd = CreateApplicationWindow();
hMainWnd = CreateApplicationWindow(WindowMode, bRecord);
if (hMainWnd != NULL)
{
BOOL bRet;

View file

@ -5,6 +5,7 @@
#include <windef.h>
#include <winbase.h>
#include <wingdi.h>
#include <winuser.h>
#include <mmsystem.h>
#include <commctrl.h>
@ -13,6 +14,13 @@
#include "resources.h"
typedef enum _WINDOW_MODE
{
NORMAL_MODE,
SMALL_MODE,
TRAY_MODE
} WINDOW_MODE, *PWINDOW_MODE;
typedef struct _MIXER_WINDOW
{
HWND hWnd;
@ -20,9 +28,11 @@ typedef struct _MIXER_WINDOW
struct _SND_MIXER *Mixer;
UINT SelectedLine;
UINT WindowCount;
HWND * Window;
HWND *Window;
WINDOW_MODE Mode;
RECT rect;
HFONT hFont;
} MIXER_WINDOW, *PMIXER_WINDOW;
extern HINSTANCE hAppInstance;