mirror of
https://github.com/reactos/reactos.git
synced 2024-10-02 15:34:13 +00:00
201 lines
5.7 KiB
C
201 lines
5.7 KiB
C
|
/* $Id: alarms.c 21500 2006-04-07 10:20:39Z janderwald $
|
||
|
*
|
||
|
* PROJECT: ReactOS Power Configuration Applet
|
||
|
* LICENSE: GPL - See COPYING in the top level directory
|
||
|
* FILE: dll/cpl/powercfg/alarms.c
|
||
|
* PURPOSE: alarms tab of applet
|
||
|
* PROGRAMMERS: Alexander Wurzinger (Lohnegrim at gmx dot net)
|
||
|
* Johannes Anderwald (johannes.anderwald@student.tugraz.at)
|
||
|
* Martin Rottensteiner
|
||
|
*/
|
||
|
|
||
|
|
||
|
#include <windows.h>
|
||
|
#include <commctrl.h>
|
||
|
#include <cpl.h>
|
||
|
#include <stdio.h>
|
||
|
|
||
|
#include "resource.h"
|
||
|
#include "powercfg.h"
|
||
|
#include "powrprof.h"
|
||
|
|
||
|
BOOLEAN Ala_InitData(HWND);
|
||
|
|
||
|
/* Property page dialog callback */
|
||
|
INT_PTR CALLBACK
|
||
|
alarmsProc(
|
||
|
HWND hwndDlg,
|
||
|
UINT uMsg,
|
||
|
WPARAM wParam,
|
||
|
LPARAM lParam
|
||
|
)
|
||
|
{
|
||
|
switch(uMsg)
|
||
|
{
|
||
|
case WM_INITDIALOG:
|
||
|
if (!Ala_InitData(hwndDlg))
|
||
|
{
|
||
|
//TODO
|
||
|
//handle initialization error
|
||
|
}
|
||
|
return TRUE;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
BOOLEAN Ala_InitData(HWND hwndDlg)
|
||
|
{
|
||
|
TCHAR szAction[MAX_PATH];
|
||
|
TCHAR szText[MAX_PATH];
|
||
|
TCHAR szSound[MAX_PATH];
|
||
|
TCHAR szMessage[MAX_PATH];
|
||
|
TCHAR szTemp[MAX_PATH];
|
||
|
TCHAR szBatteryLevel[MAX_PATH];
|
||
|
TCHAR szProgram[MAX_PATH];
|
||
|
|
||
|
if (!ReadGlobalPwrPolicy(&gGPP))
|
||
|
{
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
if (gGPP.user.DischargePolicy[DISCHARGE_POLICY_LOW].Enable)
|
||
|
{
|
||
|
SendMessage(GetDlgItem(hwndDlg, IDC_ALARM1),
|
||
|
BM_SETCHECK,
|
||
|
(gGPP.user.DischargePolicy[DISCHARGE_POLICY_LOW].Enable ? BST_CHECKED : BST_UNCHECKED),
|
||
|
(LPARAM)0);
|
||
|
|
||
|
if (LoadString(hApplet, IDS_PROCENT, szTemp, MAX_PATH))
|
||
|
{
|
||
|
swprintf(szBatteryLevel,szTemp,gGPP.user.DischargePolicy[DISCHARGE_POLICY_LOW].BatteryLevel);
|
||
|
SetWindowText(GetDlgItem(hwndDlg, IDC_ALARMVALUE1),szBatteryLevel);
|
||
|
}
|
||
|
|
||
|
SendMessageW(GetDlgItem(hwndDlg, IDC_ALARMBAR1),
|
||
|
TBM_SETRANGE,
|
||
|
(WPARAM)TRUE,
|
||
|
(LPARAM)MAKELONG(0, 100));
|
||
|
SendMessageW(GetDlgItem(hwndDlg, IDC_ALARMBAR1),
|
||
|
TBM_SETTICFREQ,
|
||
|
(WPARAM)TRUE,
|
||
|
(LPARAM)20);
|
||
|
SendMessageW(GetDlgItem(hwndDlg, IDC_ALARMBAR1),
|
||
|
TBM_SETPOS,
|
||
|
(WPARAM)TRUE,
|
||
|
(LPARAM)gGPP.user.DischargePolicy[DISCHARGE_POLICY_LOW].BatteryLevel);
|
||
|
|
||
|
if (LoadString(hApplet, gGPP.user.DischargePolicy[DISCHARGE_POLICY_LOW].PowerPolicy.Action+IDS_PowerActionNone1, szAction, MAX_PATH))
|
||
|
{
|
||
|
SetWindowText(GetDlgItem(hwndDlg, IDC_ALARMAKTION1),szAction);
|
||
|
}
|
||
|
|
||
|
memset(szMessage, 0x0, sizeof(szMessage));
|
||
|
LoadString(hApplet, IDS_NOACTION, szMessage, MAX_PATH);
|
||
|
|
||
|
if (LOWORD(gGPP.user.DischargePolicy[DISCHARGE_POLICY_LOW].PowerPolicy.EventCode) & POWER_LEVEL_USER_NOTIFY_TEXT)
|
||
|
{
|
||
|
if (LOWORD(gGPP.user.DischargePolicy[DISCHARGE_POLICY_LOW].PowerPolicy.EventCode) & POWER_LEVEL_USER_NOTIFY_SOUND)
|
||
|
{
|
||
|
if (LoadString(hApplet, IDS_SOUND, szSound, MAX_PATH) && LoadString(hApplet, IDS_TEXT, szText, MAX_PATH))
|
||
|
{
|
||
|
swprintf(szMessage,L"%s, %s",szSound,szText);
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
if (LoadString(hApplet, IDS_TEXT, szText, MAX_PATH))
|
||
|
{
|
||
|
swprintf(szMessage,L"%s",szText);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
if (LOWORD(gGPP.user.DischargePolicy[DISCHARGE_POLICY_LOW].PowerPolicy.EventCode) & POWER_LEVEL_USER_NOTIFY_SOUND)
|
||
|
{
|
||
|
if (LoadString(hApplet, IDS_SOUND, szSound, MAX_PATH))
|
||
|
{
|
||
|
swprintf(szMessage,L"%s",szSound);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
SetWindowText(GetDlgItem(hwndDlg, IDC_ALARMMSG1),szMessage);
|
||
|
|
||
|
if (LoadString(hApplet, IDS_PowerActionNone2, szProgram, MAX_PATH))
|
||
|
{
|
||
|
SetWindowText(GetDlgItem(hwndDlg, IDC_ALARMPROG1),szProgram);
|
||
|
}
|
||
|
}
|
||
|
if (gGPP.user.DischargePolicy[DISCHARGE_POLICY_CRITICAL].Enable)
|
||
|
{
|
||
|
SendMessageW(GetDlgItem(hwndDlg, IDC_ALARM2),
|
||
|
BM_SETCHECK,
|
||
|
(gGPP.user.DischargePolicy[DISCHARGE_POLICY_CRITICAL].Enable ? BST_CHECKED : BST_UNCHECKED),
|
||
|
(LPARAM)0);
|
||
|
if (LoadString(hApplet, IDS_PROCENT, szTemp, MAX_PATH))
|
||
|
{
|
||
|
swprintf(szBatteryLevel,szTemp,gGPP.user.DischargePolicy[DISCHARGE_POLICY_CRITICAL].BatteryLevel);
|
||
|
SetWindowText(GetDlgItem(hwndDlg, IDC_ALARMVALUE2),szBatteryLevel);
|
||
|
}
|
||
|
|
||
|
SendMessageW(GetDlgItem(hwndDlg, IDC_ALARMBAR2),
|
||
|
TBM_SETRANGE,
|
||
|
(WPARAM)TRUE,
|
||
|
(LPARAM)MAKELONG(0, 100));
|
||
|
SendMessageW(GetDlgItem(hwndDlg, IDC_ALARMBAR2),
|
||
|
TBM_SETPOS,
|
||
|
(WPARAM)TRUE,
|
||
|
(LPARAM)gGPP.user.DischargePolicy[DISCHARGE_POLICY_CRITICAL].BatteryLevel);
|
||
|
|
||
|
if (LoadString(hApplet, gGPP.user.DischargePolicy[DISCHARGE_POLICY_CRITICAL].PowerPolicy.Action+IDS_PowerActionNone1, szAction, MAX_PATH))
|
||
|
{
|
||
|
SendMessageW(GetDlgItem(hwndDlg, IDC_ALARMAKTION2),
|
||
|
WM_SETTEXT,
|
||
|
(WPARAM)0,
|
||
|
(LPARAM)szAction);
|
||
|
}
|
||
|
|
||
|
memset(szMessage, 0x0, sizeof(szMessage));
|
||
|
LoadString(hApplet, IDS_NOACTION, szMessage, MAX_PATH);
|
||
|
|
||
|
if (LOWORD(gGPP.user.DischargePolicy[DISCHARGE_POLICY_CRITICAL].PowerPolicy.EventCode) & POWER_LEVEL_USER_NOTIFY_TEXT)
|
||
|
{
|
||
|
if (LOWORD(gGPP.user.DischargePolicy[DISCHARGE_POLICY_CRITICAL].PowerPolicy.EventCode) & POWER_LEVEL_USER_NOTIFY_SOUND)
|
||
|
{
|
||
|
if (LoadString(hApplet, IDS_TEXT, szText, MAX_PATH) && LoadString(hApplet, IDS_SOUND, szSound, MAX_PATH))
|
||
|
{
|
||
|
swprintf(szMessage,L"%s, %s",szSound,szText);
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
if (LoadString(hApplet, IDS_TEXT, szText, MAX_PATH))
|
||
|
{
|
||
|
swprintf(szMessage,L"%s",szText);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
if (LOWORD(gGPP.user.DischargePolicy[DISCHARGE_POLICY_CRITICAL].PowerPolicy.EventCode) & POWER_LEVEL_USER_NOTIFY_SOUND)
|
||
|
{
|
||
|
if (LoadString(hApplet, IDS_SOUND, szSound, MAX_PATH))
|
||
|
{
|
||
|
swprintf(szMessage,L"%s",szSound);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
SetWindowText(GetDlgItem(hwndDlg, IDC_ALARMMSG2),szMessage);
|
||
|
|
||
|
if (LoadString(hApplet, IDS_PowerActionNone2, szProgram, MAX_PATH))
|
||
|
{
|
||
|
SetWindowText(GetDlgItem(hwndDlg, IDC_ALARMPROG2),szProgram);
|
||
|
}
|
||
|
}
|
||
|
return TRUE;
|
||
|
}
|