[SNDVOL32] Add the tray volume dialog
authorEric Kohl <eric.kohl@reactos.org>
Sun, 25 Feb 2018 20:58:34 +0000 (21:58 +0100)
committerEric Kohl <eric.kohl@reactos.org>
Sun, 25 Feb 2018 23:44:41 +0000 (00:44 +0100)
- Add the tray volume dialog (run "sndvol32 /t").
- Add a simple command line parser.

33 files changed:
base/applications/sndvol32/CMakeLists.txt
base/applications/sndvol32/lang/bg-BG.rc
base/applications/sndvol32/lang/cs-CZ.rc
base/applications/sndvol32/lang/de-DE.rc
base/applications/sndvol32/lang/el-GR.rc
base/applications/sndvol32/lang/en-US.rc
base/applications/sndvol32/lang/es-ES.rc
base/applications/sndvol32/lang/fr-FR.rc
base/applications/sndvol32/lang/he-IL.rc
base/applications/sndvol32/lang/hu-HU.rc
base/applications/sndvol32/lang/id-ID.rc
base/applications/sndvol32/lang/it-IT.rc
base/applications/sndvol32/lang/ja-JP.rc
base/applications/sndvol32/lang/ko-KR.rc
base/applications/sndvol32/lang/lt-LT.rc
base/applications/sndvol32/lang/nl-NL.rc
base/applications/sndvol32/lang/no-NO.rc
base/applications/sndvol32/lang/pl-PL.rc
base/applications/sndvol32/lang/pt-BR.rc
base/applications/sndvol32/lang/ro-RO.rc
base/applications/sndvol32/lang/ru-RU.rc
base/applications/sndvol32/lang/sk-SK.rc
base/applications/sndvol32/lang/sq-AL.rc
base/applications/sndvol32/lang/sv-SE.rc
base/applications/sndvol32/lang/th-TH.rc
base/applications/sndvol32/lang/tr-TR.rc
base/applications/sndvol32/lang/uk-UA.rc
base/applications/sndvol32/lang/zh-CN.rc
base/applications/sndvol32/lang/zh-TW.rc
base/applications/sndvol32/resources.h
base/applications/sndvol32/sndvol32.c
base/applications/sndvol32/sndvol32.h
base/applications/sndvol32/tray.c [new file with mode: 0644]

index 3d97d12..dd18273 100644 (file)
@@ -4,6 +4,7 @@ list(APPEND SOURCE
     misc.c
     mixer.c
     sndvol32.c
+    tray.c
     sndvol32.h)
 
 add_rc_deps(sndvol32.rc ${CMAKE_CURRENT_SOURCE_DIR}/resources/sndvol32.ico)
index 4bd1fab..6ac13cd 100644 (file)
@@ -58,3 +58,13 @@ BEGIN
     CHECKBOX "За&глушаване", IDC_LINE_SWITCH, 4, 190, 110, 16, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Сила", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "За&глушаване", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index be0dd0c..1ac95bc 100644 (file)
@@ -60,3 +60,13 @@ BEGIN
     CHECKBOX "&Ztlumit", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Hlasitost", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Ztlumit", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 7d36e8d..4df4404 100644 (file)
@@ -54,3 +54,13 @@ BEGIN
     CHECKBOX "&Stumm", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Lautstärke", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Stumm", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 7265a3f..4c8e33c 100644 (file)
@@ -54,3 +54,13 @@ BEGIN
     CHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Volume", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index e7774a9..3a5e80f 100644 (file)
@@ -54,3 +54,13 @@ BEGIN
     CHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Volume", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 8ba4fc4..ef7a74e 100644 (file)
@@ -57,3 +57,13 @@ BEGIN
     CHECKBOX "&Silenciar", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Volumen", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Silenciar", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 977f166..7331e0e 100644 (file)
@@ -54,3 +54,13 @@ BEGIN
     CHECKBOX "&Muet", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Volume", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Muet", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 02bd4c6..3779376 100644 (file)
@@ -56,3 +56,13 @@ BEGIN
     CHECKBOX "השתק", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "עוצמה", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "השתק", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 373c1d5..759ce74 100644 (file)
@@ -56,3 +56,13 @@ BEGIN
     CHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Volume", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 3612ab0..cc6327b 100644 (file)
@@ -54,3 +54,13 @@ BEGIN
     CHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Volume", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 6794625..3678b5b 100644 (file)
@@ -54,3 +54,13 @@ BEGIN
     CHECKBOX "&Disattiva", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Volume", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Disattiva", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index c57639b..61a7b69 100644 (file)
@@ -54,3 +54,13 @@ BEGIN
     CHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 9, "MS UI Gothic"
+BEGIN
+    CTEXT "Volume", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 99c5c40..1abeb34 100644 (file)
@@ -56,3 +56,13 @@ BEGIN
     CHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 9, "굴림"
+BEGIN
+    CTEXT "Volume", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index e241dc5..7c44bf2 100644 (file)
@@ -56,3 +56,13 @@ BEGIN
     CHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Volume", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index e89e20e..18e0bb2 100644 (file)
@@ -54,3 +54,13 @@ BEGIN
     CHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Volume", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 8634227..ef4bde4 100644 (file)
@@ -54,3 +54,13 @@ BEGIN
     CHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Volume", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 05cfbbe..40610bb 100644 (file)
@@ -62,3 +62,13 @@ BEGIN
     CHECKBOX "&Wycisz", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Głośność", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Wycisz", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 54582e2..146ffb6 100644 (file)
@@ -56,3 +56,13 @@ BEGIN
     CHECKBOX "&Mudo", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Volume", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Mudo", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index ebd2195..17cf037 100644 (file)
@@ -55,3 +55,13 @@ BEGIN
     CHECKBOX "A&muțește tot", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Volum", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "A&muțește tot", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 7ed3617..b9df689 100644 (file)
@@ -56,3 +56,13 @@ BEGIN
     CHECKBOX "В&ыкл. все", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Громкость", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "В&ыкл. все", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 8e062cf..b58b95d 100644 (file)
@@ -56,3 +56,13 @@ BEGIN
     CHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Volume", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index ee3089f..ac94cdb 100644 (file)
@@ -58,3 +58,13 @@ BEGIN
     CHECKBOX "Heshtur", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Volumi", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "Heshtur", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index f0159ef..1695b69 100644 (file)
@@ -56,3 +56,13 @@ BEGIN
     CHECKBOX "&Tyst", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Volyme", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Tyst", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 90f19d4..b8ab88c 100644 (file)
@@ -62,3 +62,13 @@ BEGIN
     CHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Volume", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 300c24c..ae98afc 100644 (file)
@@ -56,3 +56,13 @@ BEGIN
     CHECKBOX "S&essiz", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Ses Düzeyi", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "S&essiz", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index f5001c5..1927044 100644 (file)
@@ -62,3 +62,13 @@ BEGIN
     CHECKBOX "&Тиша", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 8, "MS Shell Dlg"
+BEGIN
+    CTEXT "Гучність", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "&Тиша", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 6726c3d..d4cea71 100644 (file)
@@ -56,3 +56,13 @@ BEGIN
     CHECKBOX "静音(&M)", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 9, "宋体"
+BEGIN
+    CTEXT "音量", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "静音(&M)", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 2a75b34..d70bbd0 100644 (file)
@@ -56,3 +56,13 @@ BEGIN
     CHECKBOX "靜音(&M)", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
     CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
 END
+
+IDD_TRAY_CTRL DIALOGEX 0, 0, 50, 80
+STYLE DS_MODALFRAME | WS_POPUP
+EXSTYLE WS_EX_TOOLWINDOW
+FONT 9, "新細明體"
+BEGIN
+    CTEXT "音量", -1, 0, 4, 50, 8
+    CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_BOTH | TBS_NOTICKS | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 16, 15, 20, 50
+    AUTOCHECKBOX "靜音(&M)", IDC_LINE_SWITCH, 4, 70, 44, 8
+END
index 85dfed9..80f82e7 100644 (file)
@@ -28,3 +28,4 @@
 
 #define IDD_VOLUME_CTRL 200
 #define IDD_PREFERENCES 201
+#define IDD_TRAY_CTRL   202
index b19f99e..7531518 100644 (file)
@@ -1136,6 +1136,61 @@ CreateApplicationWindow(VOID)
     return hWnd;
 }
 
+static
+BOOL
+HandleCommandLine(LPTSTR cmdline,
+                  PBOOL pTray)
+{
+    TCHAR option;
+
+    while (*cmdline == _T(' ') || *cmdline == _T('-') || *cmdline == _T('/'))
+    {
+        if (*cmdline++ == _T(' '))
+            continue;
+
+        option = *cmdline;
+        if (option)
+            cmdline++;
+        while (*cmdline == _T(' '))
+            cmdline++;
+
+        switch (option)
+        {
+            case 'd': /* Device */
+            case 'D':
+                break;
+
+            case 'n': /* Normal size */
+            case 'N':
+                *pTray = FALSE;
+                break;
+
+            case 's': /* Small size */
+            case 'S':
+                *pTray = FALSE;
+                break;
+
+            case 't': /* Tray size */
+            case 'T':
+                *pTray = TRUE;
+                break;
+
+            case 'p': /* Play mode */
+            case 'P':
+                break;
+
+            case 'r': /* Record mode */
+            case 'R':
+                break;
+
+            default:
+                return FALSE;
+        }
+    }
+
+    return TRUE;
+}
+
 int WINAPI
 _tWinMain(HINSTANCE hInstance,
           HINSTANCE hPrevInstance,
@@ -1145,14 +1200,16 @@ _tWinMain(HINSTANCE hInstance,
     MSG Msg;
     int Ret = 1;
     INITCOMMONCONTROLSEX Controls;
+    BOOL bTray = FALSE;
 
     UNREFERENCED_PARAMETER(hPrevInstance);
-       UNREFERENCED_PARAMETER(lpszCmdLine);
-       UNREFERENCED_PARAMETER(nCmdShow);
+    UNREFERENCED_PARAMETER(nCmdShow);
 
     hAppInstance = hInstance;
     hAppHeap = GetProcessHeap();
 
+    HandleCommandLine(lpszCmdLine, &bTray);
+
     if (InitAppConfig())
     {
         /* load the application title */
@@ -1168,37 +1225,48 @@ _tWinMain(HINSTANCE hInstance,
 
         InitCommonControlsEx(&Controls);
 
-        if (RegisterApplicationClasses())
+        if (bTray)
+        {
+            DialogBoxParam(hAppInstance,
+                           MAKEINTRESOURCE(IDD_TRAY_CTRL),
+                           NULL,
+                           TrayDlgProc,
+                           0);
+        }
+        else
         {
-            hMainWnd = CreateApplicationWindow();
-            if (hMainWnd != NULL)
+            if (RegisterApplicationClasses())
             {
-                BOOL bRet;
-                while ((bRet =GetMessage(&Msg,
-                                         NULL,
-                                         0,
-                                         0)) != 0)
+                hMainWnd = CreateApplicationWindow();
+                if (hMainWnd != NULL)
                 {
-                    if (bRet != -1)
+                    BOOL bRet;
+                    while ((bRet =GetMessage(&Msg,
+                                             NULL,
+                                             0,
+                                             0)) != 0)
                     {
-                        TranslateMessage(&Msg);
-                        DispatchMessage(&Msg);
+                        if (bRet != -1)
+                        {
+                            TranslateMessage(&Msg);
+                            DispatchMessage(&Msg);
+                        }
                     }
+
+                    DestroyWindow(hMainWnd);
+                    Ret = 0;
+                }
+                else
+                {
+                    DPRINT("Failed to create application window (LastError: %d)!\n", GetLastError());
                 }
 
-                DestroyWindow(hMainWnd);
-                Ret = 0;
+                UnregisterApplicationClasses();
             }
             else
             {
-                DPRINT("Failed to create application window (LastError: %d)!\n", GetLastError());
+                DPRINT("Failed to register application classes (LastError: %d)!\n", GetLastError());
             }
-
-            UnregisterApplicationClasses();
-        }
-        else
-        {
-            DPRINT("Failed to register application classes (LastError: %d)!\n", GetLastError());
         }
 
         if (lpAppTitle != NULL)
index cd9c7ad..f98f23d 100644 (file)
@@ -164,4 +164,14 @@ WriteLineConfig(IN LPTSTR szDeviceName,
                 IN PSNDVOL_REG_LINESTATE LineState,
                 IN DWORD cbSize);
 
+/* tray.c */
+
+INT_PTR
+CALLBACK
+TrayDlgProc(
+    HWND hwndDlg,
+    UINT uMsg,
+    WPARAM wParam,
+    LPARAM lParam);
+
 #endif /* __SNDVOL32_H */
diff --git a/base/applications/sndvol32/tray.c b/base/applications/sndvol32/tray.c
new file mode 100644 (file)
index 0000000..2223aad
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ * COPYRIGHT:   See COPYING in the top level directory
+ * PROJECT:     ReactOS Sound Volume Control
+ * FILE:        base/applications/sndvol32/tray.c
+ * PROGRAMMERS: Eric Kohl <eric.kohl@reactos.org>
+ */
+
+#include "sndvol32.h"
+
+static VOID
+OnTrayInitDialog(
+    HWND hwnd,
+    WPARAM wParam,
+    LPARAM lParam)
+{
+    POINT ptCursor;
+    RECT rcWindow;
+    RECT rcScreen;
+    LONG x, y, cx, cy;
+
+    GetCursorPos(&ptCursor);
+
+    GetWindowRect(hwnd, &rcWindow);
+
+    GetWindowRect(GetDesktopWindow(), &rcScreen);
+
+    cx = rcWindow.right - rcWindow.left;
+    cy = rcWindow.bottom - rcWindow.top;
+
+    if (ptCursor.y + cy > rcScreen.bottom)
+        y = ptCursor.y - cy;
+    else
+        y = ptCursor.y;
+
+    if (ptCursor.x + cx > rcScreen.right)
+        x = ptCursor.x - cx;
+    else
+        x = ptCursor.x;
+
+    SetWindowPos(hwnd, HWND_TOPMOST, x, y, 0, 0, SWP_NOSIZE);
+
+    /* Disable the controls for now */
+    EnableWindow(GetDlgItem(hwnd, IDC_LINE_SLIDER_VERT), FALSE);
+    EnableWindow(GetDlgItem(hwnd, IDC_LINE_SWITCH), FALSE);
+}
+
+
+INT_PTR
+CALLBACK
+TrayDlgProc(
+    HWND hwndDlg,
+    UINT uMsg,
+    WPARAM wParam,
+    LPARAM lParam)
+{
+    switch (uMsg)
+    {
+        case WM_INITDIALOG:
+            OnTrayInitDialog(hwndDlg, wParam, lParam);
+            break;
+
+        case WM_ACTIVATE:
+            if (LOWORD(wParam) == WA_INACTIVE)
+                EndDialog(hwndDlg, IDOK);
+            break;
+    }
+
+    return 0;
+}
+
+/* EOF */