diff options
author | sje <sje@4f64403b-2f21-0410-a795-97e2b3489a10> | 2006-11-13 14:48:02 +0000 |
---|---|---|
committer | sje <sje@4f64403b-2f21-0410-a795-97e2b3489a10> | 2006-11-13 14:48:02 +0000 |
commit | b01805cbb22c14e9a3cd83f5c49c97e6ecb80074 (patch) | |
tree | 528be3fc573c62e086c93cab31918e0cf91483b2 /last_contact/options.cpp | |
parent | c6d2c013851f3337ab59a4413f7c7447af27142a (diff) |
git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@45 4f64403b-2f21-0410-a795-97e2b3489a10
Diffstat (limited to 'last_contact/options.cpp')
-rw-r--r-- | last_contact/options.cpp | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/last_contact/options.cpp b/last_contact/options.cpp new file mode 100644 index 0000000..940019b --- /dev/null +++ b/last_contact/options.cpp @@ -0,0 +1,82 @@ +#include "common.h"
+#include "options.h"
+
+Options options;
+
+static BOOL CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
+
+ switch ( msg ) {
+ case WM_INITDIALOG: {
+ TranslateDialogDefault( hwndDlg );
+ WORD mod = 0;
+ if(options.mod_alt) mod |= HOTKEYF_ALT;
+ if(options.mod_shift) mod |= HOTKEYF_SHIFT;
+ if(options.mod_ctrl) mod |= HOTKEYF_CONTROL;
+
+ SendDlgItemMessage(hwndDlg, IDC_HOTKEY, HKM_SETHOTKEY, (mod << 8) + options.vk, 0);
+
+ CheckDlgButton(hwndDlg, IDC_CHK_HIDE, options.hide_if_visible ? TRUE : FALSE);
+ CheckDlgButton(hwndDlg, IDC_CHK_ONTOP, options.make_topmost ? TRUE : FALSE);
+
+ return TRUE;
+ }
+ case WM_COMMAND:
+ if(HIWORD(wParam) == BN_CLICKED) {
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ }
+ if ( HIWORD( wParam ) == EN_CHANGE && ( HWND )lParam == GetFocus()) {
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ }
+ return TRUE;
+ case WM_NOTIFY:
+ if (((LPNMHDR)lParam)->code == (unsigned)PSN_APPLY ) {
+ WORD hkcode = (WORD)SendDlgItemMessage(hwndDlg, IDC_HOTKEY, HKM_GETHOTKEY, 0, 0);
+ options.vk = LOBYTE(hkcode);
+ options.mod_alt = (HIBYTE(hkcode) & HOTKEYF_ALT) != 0;
+ options.mod_shift = (HIBYTE(hkcode) & HOTKEYF_SHIFT) != 0;
+ options.mod_ctrl = (HIBYTE(hkcode) & HOTKEYF_CONTROL) != 0;
+
+ DBWriteContactSettingByte(0, MODULE, "VK", (BYTE)options.vk);
+ DBWriteContactSettingByte(0, MODULE, "MOD_ALT", options.mod_alt ? 1 : 0);
+ DBWriteContactSettingByte(0, MODULE, "MOD_SHIFT", options.mod_shift ? 1 : 0);
+ DBWriteContactSettingByte(0, MODULE, "MOD_CTRL", options.mod_ctrl ? 1 : 0);
+
+ options.hide_if_visible = IsDlgButtonChecked(hwndDlg, IDC_CHK_HIDE) ? true : false;
+ DBWriteContactSettingByte(0, MODULE, "HideIfVisible", options.hide_if_visible ? 1 : 0);
+ options.make_topmost = IsDlgButtonChecked(hwndDlg, IDC_CHK_ONTOP) ? true : false;
+ DBWriteContactSettingByte(0, MODULE, "MakeTopmost", options.make_topmost ? 1 : 0);
+ }
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+
+int OptInit(WPARAM wParam,LPARAM lParam)
+{
+ OPTIONSDIALOGPAGE odp = { 0 };
+ odp.cbSize = sizeof(odp);
+ odp.position = -790000000;
+ odp.hInstance = hInst;
+ odp.pszTemplate = MAKEINTRESOURCE(IDD_OPT1);
+ odp.pszTitle = Translate("Last Contact");
+ odp.pszGroup = Translate("Events");
+ odp.flags = ODPF_BOLDGROUPS;
+ odp.nIDBottomSimpleControl = 0;
+ odp.pfnDlgProc = DlgProcOpts;
+ CallService( MS_OPT_ADDPAGE, wParam,( LPARAM )&odp );
+
+ return 0;
+}
+
+void InitOptions() {
+ options.vk = DBGetContactSettingByte(0, MODULE, "VK", (BYTE)'M');
+ options.mod_alt = (DBGetContactSettingByte(0, MODULE, "MOD_ALT", 1) == 1);
+ options.mod_shift = (DBGetContactSettingByte(0, MODULE, "MOD_SHIFT", 0) == 1);
+ options.mod_ctrl = (DBGetContactSettingByte(0, MODULE, "MOD_CTRL", 0) == 1);
+
+ options.hide_if_visible = (DBGetContactSettingByte(0, MODULE, "HideIfVisible", 1) == 1);
+ options.make_topmost = (DBGetContactSettingByte(0, MODULE, "MakeTopmost", 0) == 1);
+ HookEvent(ME_OPT_INITIALISE, OptInit);
+}
|