}
return S_FALSE;
+ case WM_TIMER:
+ if (wParam == HOTPLUG_TIMER_ID)
+ {
+ KillTimer(pSysTray->GetHWnd(), HOTPLUG_TIMER_ID);
+ _ShowContextMenu(pSysTray);
+ }
+ break;
+
case ID_ICON_HOTPLUG:
Hotplug_Update(pSysTray);
switch (lParam)
{
case WM_LBUTTONDOWN:
+ SetTimer(pSysTray->GetHWnd(), HOTPLUG_TIMER_ID, 500, NULL);
break;
case WM_LBUTTONUP:
- _ShowContextMenu(pSysTray);
break;
case WM_LBUTTONDBLCLK:
+ KillTimer(pSysTray->GetHWnd(), HOTPLUG_TIMER_ID);
_RunHotplug(pSysTray);
break;
}
return S_FALSE;
+ case WM_TIMER:
+ if (wParam == POWER_TIMER_ID)
+ {
+ KillTimer(pSysTray->GetHWnd(), POWER_TIMER_ID);
+ ShowPowerSchemesPopupMenu(pSysTray);
+ }
+ break;
+
case ID_ICON_POWER:
Power_Update(pSysTray);
switch (lParam)
{
case WM_LBUTTONDOWN:
+ SetTimer(pSysTray->GetHWnd(), POWER_TIMER_ID, 500, NULL);
break;
case WM_LBUTTONUP:
- ShowPowerSchemesPopupMenu(pSysTray);
break;
case WM_LBUTTONDBLCLK:
+ KillTimer(pSysTray->GetHWnd(), POWER_TIMER_ID);
_RunPower();
break;
return Volume_FindMixerControl(pSysTray);
}
-static void _RunVolume()
+static void _RunVolume(BOOL bTray)
{
- // FIXME: ensure we are loading the right one
- ShellExecuteW(NULL, NULL, L"sndvol32.exe", NULL, NULL, SW_SHOWNORMAL);
+ ShellExecuteW(NULL, NULL, bTray ? L"sndvol32.exe /t" : L"sndvol32.exe", NULL, NULL, SW_SHOWNORMAL);
}
static void _RunMMCpl()
switch (id)
{
case IDS_VOL_OPEN:
- _RunVolume();
+ _RunVolume(FALSE);
break;
case IDS_VOL_ADJUST:
_RunMMCpl();
}
return S_FALSE;
+ case WM_TIMER:
+ if (wParam == VOLUME_TIMER_ID)
+ {
+ KillTimer(pSysTray->GetHWnd(), VOLUME_TIMER_ID);
+ _RunVolume(TRUE);
+ }
+ break;
+
case ID_ICON_VOLUME:
TRACE("Volume_Message uMsg=%d, w=%x, l=%x\n", uMsg, wParam, lParam);
switch (lParam)
{
case WM_LBUTTONDOWN:
+ SetTimer(pSysTray->GetHWnd(), VOLUME_TIMER_ID, 500, NULL);
break;
case WM_LBUTTONUP:
- TRACE("TODO: display volume slider\n");
break;
case WM_LBUTTONDBLCLK:
- _RunVolume();
+ KillTimer(pSysTray->GetHWnd(), VOLUME_TIMER_ID);
+ _RunVolume(FALSE);
break;
case WM_RBUTTONDOWN: