|
|
/*******************************************************************
* DESCRIPTION: General Dialog handler *******************************************************************/
#include "Access.h"
extern INT_PTR WINAPI SerialKeyDlg(HWND, UINT, WPARAM, LPARAM); extern LPTSTR HelpFile();
// *******************************************************************
// GeneralDialog handler
// *******************************************************************
INT_PTR WINAPI GeneralDlg (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { int i; SERIALKEYS serk; BOOL fProcessed = TRUE; char tempPort[10]; // Max 10 characters for a port name
BOOL isAdmin = TRUE;
switch (uMsg) { case WM_INITDIALOG: { TCHAR szMinutes[50]; int ctch = LoadString(g_hinst, IDS_MINUTES, szMinutes, ARRAY_SIZE(szMinutes)); Assert(ctch); CheckDlgButton(hwnd, IDC_TO_ENABLE, (g_ato.dwFlags & ATF_TIMEOUTON) ? TRUE : FALSE);
// Init the timeout combobox
for (i= 0; i < 6; i++) { TCHAR szBuf[256]; wsprintf(szBuf, __TEXT("%d %s"), ((i + 1) * 5), szMinutes); ComboBox_AddString(GetDlgItem(hwnd, IDC_TO_TIMEOUTVAL), szBuf); } ComboBox_SetCurSel(GetDlgItem(hwnd, IDC_TO_TIMEOUTVAL), g_ato.iTimeOutMSec / (1000 * 60 * 5) - 1); if (!(g_ato.dwFlags & ATF_TIMEOUTON)) EnableWindow(GetDlgItem(hwnd, IDC_TO_TIMEOUTVAL), FALSE);
// Notification: Give wanring...
CheckDlgButton(hwnd, IDC_WARNING_SOUND, g_fShowWarnMsgOnFeatureActivate);
// Notification: Make a sound...
CheckDlgButton(hwnd, IDC_SOUND_ONOFF, g_fPlaySndOnFeatureActivate);
// Support SerialKey devices
CheckDlgButton(hwnd, IDC_SK_ENABLE, (g_serk.dwFlags & SERKF_SERIALKEYSON) ? TRUE : FALSE); if (!(g_serk.dwFlags & SERKF_AVAILABLE)) { EnableWindow(GetDlgItem(hwnd, IDC_SK_SETTINGS), FALSE); EnableWindow(GetDlgItem(hwnd, IDC_SK_ENABLE), FALSE); }
// JMR: What is this for?
CheckDlgButton(hwnd, IDC_SAVE_SETTINGS, !g_fSaveSettings);
// Administrative options:
// Enable/Disable all admin options.
isAdmin = IsDefaultWritable(); EnableWindow(GetDlgItem(hwnd, IDC_GEN_GROUP_4), isAdmin); EnableWindow(GetDlgItem(hwnd, IDC_ADMIN_LOGON), isAdmin); EnableWindow(GetDlgItem(hwnd, IDC_ADMIN_DEFAULT), isAdmin); } break;
case WM_HELP: WinHelp(((LPHELPINFO) lParam)->hItemHandle, HelpFile(), HELP_WM_HELP, (DWORD_PTR) (LPSTR) g_aIds); break;
case WM_CONTEXTMENU: WinHelp((HWND) wParam, HelpFile(), HELP_CONTEXTMENU, (DWORD_PTR) (LPSTR) g_aIds); break;
case WM_COMMAND: switch (GET_WM_COMMAND_ID(wParam, lParam)) { case IDC_WARNING_SOUND: g_fShowWarnMsgOnFeatureActivate = !g_fShowWarnMsgOnFeatureActivate; SendMessage(GetParent(hwnd), PSM_CHANGED, (WPARAM) hwnd, 0); break;
case IDC_SOUND_ONOFF: g_fPlaySndOnFeatureActivate = !g_fPlaySndOnFeatureActivate; SendMessage(GetParent(hwnd), PSM_CHANGED, (WPARAM) hwnd, 0); break;
case IDC_SAVE_SETTINGS: g_fSaveSettings = !g_fSaveSettings; SendMessage(GetParent(hwnd), PSM_CHANGED, (WPARAM) hwnd, 0); break;
case IDC_TO_ENABLE: g_ato.dwFlags ^= ATF_TIMEOUTON; if (!(g_ato.dwFlags & ATF_TIMEOUTON)) EnableWindow(GetDlgItem(hwnd, IDC_TO_TIMEOUTVAL), FALSE); else EnableWindow(GetDlgItem(hwnd, IDC_TO_TIMEOUTVAL), TRUE); SendMessage(GetParent(hwnd), PSM_CHANGED, (WPARAM) hwnd, 0); break;
case IDC_SK_ENABLE: g_serk.dwFlags ^= SERKF_SERIALKEYSON; SendMessage(GetParent(hwnd), PSM_CHANGED, (WPARAM) hwnd, 0); break;
case IDC_SK_SETTINGS:
// HACK. Here the pointers are copied. So, When you change
// in the dialog. temporary variable 'serk' looses its original value
// Save that in tempPort and use that instead a-anilk
serk = g_serk; lstrcpy((LPTSTR)tempPort, g_serk.lpszActivePort);
if (DialogBox(g_hinst, MAKEINTRESOURCE(IDD_SERKEYSETTING), hwnd, SerialKeyDlg) == IDCANCEL) { g_serk = serk; lstrcpy(g_serk.lpszActivePort, (LPCTSTR)tempPort); } else SendMessage(GetParent(hwnd), PSM_CHANGED, (WPARAM) hwnd, 0); break;
case IDC_TO_TIMEOUTVAL: switch(HIWORD(wParam)) { case CBN_CLOSEUP: i = ComboBox_GetCurSel(GetDlgItem(hwnd, IDC_TO_TIMEOUTVAL)); g_ato.iTimeOutMSec = (ULONG) ((long) ((i + 1) * 5) * 60 * 1000); SendMessage(GetParent(hwnd), PSM_CHANGED, (WPARAM) hwnd, 0); break; } break; case IDC_ADMIN_LOGON: g_fCopyToLogon = !g_fCopyToLogon; SendMessage(GetParent(hwnd), PSM_CHANGED, (WPARAM) hwnd, 0); break;
case IDC_ADMIN_DEFAULT: g_fCopyToDefault = !g_fCopyToDefault; SendMessage(GetParent(hwnd), PSM_CHANGED, (WPARAM) hwnd, 0); break; } break;
case WM_NOTIFY: switch (((NMHDR *)lParam)->code) { case PSN_APPLY: SetAccessibilitySettings(); break; } break;
default: fProcessed = FALSE; break; } return(fProcessed); }
///////////////////////////////// End of File /////////////////////////////////
|