diff options
author | sje <sje@4f64403b-2f21-0410-a795-97e2b3489a10> | 2006-11-01 14:56:49 +0000 |
---|---|---|
committer | sje <sje@4f64403b-2f21-0410-a795-97e2b3489a10> | 2006-11-01 14:56:49 +0000 |
commit | 75c65a6f461f71e2c94aac46d3e08e4475e4a450 (patch) | |
tree | f7f37cfcd36e546f5ce56b6a166c5d2200d87cd5 /window_timeout/options.c | |
parent | ec0c8066c6ecfbc5e56c453c59527661ec439d20 (diff) |
git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@22 4f64403b-2f21-0410-a795-97e2b3489a10
Diffstat (limited to 'window_timeout/options.c')
-rw-r--r-- | window_timeout/options.c | 72 |
1 files changed, 72 insertions, 0 deletions
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;
+}
+
|