From 75c65a6f461f71e2c94aac46d3e08e4475e4a450 Mon Sep 17 00:00:00 2001 From: sje Date: Wed, 1 Nov 2006 14:56:49 +0000 Subject: git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@22 4f64403b-2f21-0410-a795-97e2b3489a10 --- window_timeout/options.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 window_timeout/options.c (limited to 'window_timeout/options.c') diff --git a/window_timeout/options.c b/window_timeout/options.c new file mode 100644 index 0000000..396e3e8 --- /dev/null +++ b/window_timeout/options.c @@ -0,0 +1,72 @@ +#include "windowtimeout.h" + +Options options; + +void load_options() { + options.timeout = DBGetContactSettingDword(0, PLUG, "Timeout", 300); + options.monitor_recv_only = DBGetContactSettingByte(0, PLUG, "RecvOnly", 0); +} + +void save_options() { + DBWriteContactSettingDword(0, PLUG, "Timeout", options.timeout); + DBWriteContactSettingByte(0, PLUG, "RecvOnly", (BYTE)(options.monitor_recv_only ? 1 : 0)); +} + +BOOL CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ + HWND hw; + char buff[512]; + + switch ( msg ) { + case WM_INITDIALOG: + { + TranslateDialogDefault( hwndDlg ); + itoa(options.timeout, buff, 10); + SetDlgItemText(hwndDlg, IDC_ED_TIMEOUT, buff); + CheckDlgButton(hwndDlg, IDC_CHK_RECVONLY, options.monitor_recv_only ? TRUE : FALSE); + } + return TRUE; + case WM_COMMAND: + if ( HIWORD( wParam ) == BN_CLICKED ) { + switch( LOWORD( wParam )) { + case IDC_CHK_RECVONLY: + SendMessage( GetParent( hwndDlg ), PSM_CHANGED, 0, 0 ); + break; + } + } else if ( HIWORD( wParam ) == EN_CHANGE && ( HWND )lParam == GetFocus()) { + SendMessage( GetParent( hwndDlg ), PSM_CHANGED, 0, 0 ); + } + return TRUE; + case WM_NOTIFY: + if (((LPNMHDR)lParam)->code == PSN_APPLY ) { + hw = GetDlgItem(hwndDlg, IDC_ED_TIMEOUT); + GetWindowText(hw, buff, 512); + if(strlen(buff) > 0) + options.timeout = atoi(buff); + options.monitor_recv_only = IsDlgButtonChecked(hwndDlg, IDC_CHK_RECVONLY); + save_options(); + return TRUE; + } + break; + } + + return FALSE; +} + +int OptInit(WPARAM wParam, LPARAM lParam) { + OPTIONSDIALOGPAGE odp; + ZeroMemory(&odp, sizeof(odp)); + odp.cbSize = sizeof(odp); + odp.position = -790000000; + odp.hInstance = hInst; + odp.pszTemplate = MAKEINTRESOURCE(IDD_OPT); + odp.pszTitle = Translate("Window Timeout"); + odp.pszGroup = Translate("Events"); + odp.flags = ODPF_BOLDGROUPS; + odp.nIDBottomSimpleControl = 0; + odp.pfnDlgProc = DlgProcOpts; + CallService( MS_OPT_ADDPAGE, wParam,( LPARAM )&odp ); + + return 0; +} + -- cgit v1.2.3