Simplify a lot of code (e.g.: SendMessage(GetDlgItem(...)...) --> SendDlgItemMessage...
[reactos.git] / reactos / dll / cpl / powercfg / alarms.c
1 /* $Id$
2 *
3 * PROJECT: ReactOS Power Configuration Applet
4 * LICENSE: GPL - See COPYING in the top level directory
5 * FILE: dll/cpl/powercfg/alarms.c
6 * PURPOSE: alarms tab of applet
7 * PROGRAMMERS: Alexander Wurzinger (Lohnegrim at gmx dot net)
8 * Johannes Anderwald (johannes.anderwald@student.tugraz.at)
9 * Martin Rottensteiner
10 */
11
12
13 #include <windows.h>
14 #include <commctrl.h>
15 #include <cpl.h>
16 #include <stdio.h>
17 #include <tchar.h>
18
19 #include "resource.h"
20 #include "powercfg.h"
21
22 BOOLEAN Ala_InitData(HWND);
23
24 /* Property page dialog callback */
25 INT_PTR CALLBACK
26 alarmsProc(
27 HWND hwndDlg,
28 UINT uMsg,
29 WPARAM wParam,
30 LPARAM lParam
31 )
32 {
33 UNREFERENCED_PARAMETER(lParam);
34 UNREFERENCED_PARAMETER(wParam);
35 switch(uMsg)
36 {
37 case WM_INITDIALOG:
38 if (!Ala_InitData(hwndDlg))
39 {
40 //TODO
41 //handle initialization error
42 }
43 return TRUE;
44 default:
45 break;
46 }
47 return FALSE;
48 }
49
50 BOOLEAN Ala_InitData(HWND hwndDlg)
51 {
52 TCHAR szAction[MAX_PATH];
53 TCHAR szText[MAX_PATH];
54 TCHAR szSound[MAX_PATH];
55 TCHAR szMessage[MAX_PATH];
56 TCHAR szTemp[MAX_PATH];
57 TCHAR szBatteryLevel[MAX_PATH];
58 TCHAR szProgram[MAX_PATH];
59
60 if (!ReadGlobalPwrPolicy(&gGPP))
61 {
62 return FALSE;
63 }
64
65 if (gGPP.user.DischargePolicy[DISCHARGE_POLICY_LOW].Enable)
66 {
67 CheckDlgButton(hwndDlg, IDC_ALARM1,
68 gGPP.user.DischargePolicy[DISCHARGE_POLICY_LOW].Enable ? BST_CHECKED : BST_UNCHECKED);
69
70 if (LoadString(hApplet, IDS_PROCENT, szTemp, MAX_PATH))
71 {
72 _stprintf(szBatteryLevel, szTemp, gGPP.user.DischargePolicy[DISCHARGE_POLICY_LOW].BatteryLevel);
73 SetDlgItemText(hwndDlg, IDC_ALARMVALUE1, szBatteryLevel);
74 }
75
76 SendDlgItemMessage(hwndDlg, IDC_ALARMBAR1,
77 TBM_SETRANGE,
78 (WPARAM)TRUE,
79 (LPARAM)MAKELONG(0, 100));
80 SendDlgItemMessage(hwndDlg, IDC_ALARMBAR1,
81 TBM_SETTICFREQ,
82 (WPARAM)TRUE,
83 (LPARAM)20);
84 SendDlgItemMessage(hwndDlg, IDC_ALARMBAR1,
85 TBM_SETPOS,
86 (WPARAM)TRUE,
87 (LPARAM)gGPP.user.DischargePolicy[DISCHARGE_POLICY_LOW].BatteryLevel);
88
89 if (LoadString(hApplet, gGPP.user.DischargePolicy[DISCHARGE_POLICY_LOW].PowerPolicy.Action+IDS_PowerActionNone1, szAction, MAX_PATH))
90 {
91 SetDlgItemText(hwndDlg, IDC_ALARMAKTION1, szAction);
92 }
93
94 memset(szMessage, 0x0, sizeof(szMessage));
95 LoadString(hApplet, IDS_NOACTION, szMessage, MAX_PATH);
96
97 if (LOWORD(gGPP.user.DischargePolicy[DISCHARGE_POLICY_LOW].PowerPolicy.EventCode) & POWER_LEVEL_USER_NOTIFY_TEXT)
98 {
99 if (LOWORD(gGPP.user.DischargePolicy[DISCHARGE_POLICY_LOW].PowerPolicy.EventCode) & POWER_LEVEL_USER_NOTIFY_SOUND)
100 {
101 if (LoadString(hApplet, IDS_SOUND, szSound, MAX_PATH) && LoadString(hApplet, IDS_TEXT, szText, MAX_PATH))
102 {
103 _stprintf(szMessage,_T("%s, %s"),szSound,szText);
104 }
105 }
106 else
107 {
108 if (LoadString(hApplet, IDS_TEXT, szText, MAX_PATH))
109 {
110 _stprintf(szMessage,_T("%s"),szText);
111 }
112 }
113 }
114 else
115 {
116 if (LOWORD(gGPP.user.DischargePolicy[DISCHARGE_POLICY_LOW].PowerPolicy.EventCode) & POWER_LEVEL_USER_NOTIFY_SOUND)
117 {
118 if (LoadString(hApplet, IDS_SOUND, szSound, MAX_PATH))
119 {
120 _stprintf(szMessage,_T("%s"),szSound);
121 }
122 }
123 }
124
125 SetDlgItemText(hwndDlg, IDC_ALARMMSG1, szMessage);
126
127 if (LoadString(hApplet, IDS_PowerActionNone2, szProgram, MAX_PATH))
128 {
129 SetDlgItemText(hwndDlg, IDC_ALARMPROG1, szProgram);
130 }
131 }
132
133 if (gGPP.user.DischargePolicy[DISCHARGE_POLICY_CRITICAL].Enable)
134 {
135 CheckDlgButton(hwndDlg, IDC_ALARM2,
136 gGPP.user.DischargePolicy[DISCHARGE_POLICY_CRITICAL].Enable ? BST_CHECKED : BST_UNCHECKED);
137
138 if (LoadString(hApplet, IDS_PROCENT, szTemp, MAX_PATH))
139 {
140 _stprintf(szBatteryLevel, szTemp, gGPP.user.DischargePolicy[DISCHARGE_POLICY_CRITICAL].BatteryLevel);
141 SetDlgItemText(hwndDlg, IDC_ALARMVALUE2, szBatteryLevel);
142 }
143
144 SendDlgItemMessage(hwndDlg, IDC_ALARMBAR2,
145 TBM_SETRANGE,
146 (WPARAM)TRUE,
147 (LPARAM)MAKELONG(0, 100));
148 SendDlgItemMessage(hwndDlg, IDC_ALARMBAR2,
149 TBM_SETPOS,
150 (WPARAM)TRUE,
151 (LPARAM)gGPP.user.DischargePolicy[DISCHARGE_POLICY_CRITICAL].BatteryLevel);
152
153 if (LoadString(hApplet, gGPP.user.DischargePolicy[DISCHARGE_POLICY_CRITICAL].PowerPolicy.Action+IDS_PowerActionNone1, szAction, MAX_PATH))
154 {
155 SetDlgItemText(hwndDlg, IDC_ALARMAKTION2, szAction);
156 }
157
158 memset(szMessage, 0x0, sizeof(szMessage));
159 LoadString(hApplet, IDS_NOACTION, szMessage, MAX_PATH);
160
161 if (LOWORD(gGPP.user.DischargePolicy[DISCHARGE_POLICY_CRITICAL].PowerPolicy.EventCode) & POWER_LEVEL_USER_NOTIFY_TEXT)
162 {
163 if (LOWORD(gGPP.user.DischargePolicy[DISCHARGE_POLICY_CRITICAL].PowerPolicy.EventCode) & POWER_LEVEL_USER_NOTIFY_SOUND)
164 {
165 if (LoadString(hApplet, IDS_TEXT, szText, MAX_PATH) && LoadString(hApplet, IDS_SOUND, szSound, MAX_PATH))
166 {
167 _stprintf(szMessage,_T("%s, %s"),szSound,szText);
168 }
169 }
170 else
171 {
172 if (LoadString(hApplet, IDS_TEXT, szText, MAX_PATH))
173 {
174 _stprintf(szMessage,_T("%s"),szText);
175 }
176 }
177 }
178 else
179 {
180 if (LOWORD(gGPP.user.DischargePolicy[DISCHARGE_POLICY_CRITICAL].PowerPolicy.EventCode) & POWER_LEVEL_USER_NOTIFY_SOUND)
181 {
182 if (LoadString(hApplet, IDS_SOUND, szSound, MAX_PATH))
183 {
184 _stprintf(szMessage,_T("%s"),szSound);
185 }
186 }
187 }
188
189 SetDlgItemText(hwndDlg, IDC_ALARMMSG2, szMessage);
190
191 if (LoadString(hApplet, IDS_PowerActionNone2, szProgram, MAX_PATH))
192 {
193 SetDlgItemText(hwndDlg, IDC_ALARMPROG2, szProgram);
194 }
195 }
196
197 return TRUE;
198 }