From 9b8ec8aeeb593644b053dc491818f37587293eae Mon Sep 17 00:00:00 2001 From: Goraf Date: Fri, 11 Oct 2013 20:53:23 +0000 Subject: * adopted * compilable version git-svn-id: http://svn.miranda-ng.org/main/trunk@6450 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/MagneticWindows/src/Options.cpp | 128 ++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 plugins/MagneticWindows/src/Options.cpp (limited to 'plugins/MagneticWindows/src/Options.cpp') diff --git a/plugins/MagneticWindows/src/Options.cpp b/plugins/MagneticWindows/src/Options.cpp new file mode 100644 index 0000000000..d070f40d56 --- /dev/null +++ b/plugins/MagneticWindows/src/Options.cpp @@ -0,0 +1,128 @@ +#include "MagneticWindowsCore.h" + +HANDLE hInitOptionsHook; +TOptions Options = { + true, + cDefaultSnapWidth, + false +}; + + +int CALLBACK OptionsDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { + + TCHAR str[64]; + + switch (msg) { + case WM_INITDIALOG: { + TranslateDialogDefault(hwndDlg); + + CheckDlgButton(hwndDlg, IDC_CHK_SNAP, Options.DoSnap?BST_CHECKED:BST_UNCHECKED); + SendDlgItemMessage(hwndDlg, IDC_SLIDER_SNAPWIDTH, TBM_SETRANGE, FALSE, MAKELONG(1,32)); + SendDlgItemMessage(hwndDlg, IDC_SLIDER_SNAPWIDTH, TBM_SETPOS, TRUE, Options.SnapWidth); + + wsprintf(str, TranslateT("%d pix"), Options.SnapWidth); + SetDlgItemText(hwndDlg, IDC_TXT_SNAPWIDTH, str); + + EnableWindow(GetDlgItem(hwndDlg, IDC_SLIDER_SNAPWIDTH), Options.DoSnap); + EnableWindow(GetDlgItem(hwndDlg, IDC_TXT_SNAPWIDTH), Options.DoSnap); + + CheckDlgButton(hwndDlg, IDC_CHK_SCRIVERWORKAROUND, Options.ScriverWorkAround?BST_CHECKED:BST_UNCHECKED); + + break; + } + case WM_HSCROLL: { + mir_snwprintf(str, 64, TranslateT("%d pix"), SendDlgItemMessage(hwndDlg, IDC_SLIDER_SNAPWIDTH, TBM_GETPOS, 0, 0)); + SetDlgItemText(hwndDlg, IDC_TXT_SNAPWIDTH, str); + + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + } + + case WM_COMMAND: { + WORD idCtrl = LOWORD(wParam), wNotifyCode = HIWORD(wParam); + + switch(idCtrl) { + case IDC_CHK_SNAP: { + if (wNotifyCode == BN_CLICKED) { + + + EnableWindow(GetDlgItem(hwndDlg, IDC_SLIDER_SNAPWIDTH), IsDlgButtonChecked(hwndDlg, IDC_CHK_SNAP)); + EnableWindow(GetDlgItem(hwndDlg, IDC_TXT_SNAPWIDTH), IsDlgButtonChecked(hwndDlg, IDC_CHK_SNAP)); + + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + } + break; + } + case IDC_CHK_SCRIVERWORKAROUND: { + if (wNotifyCode == BN_CLICKED) { + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + } + break; + } + } + break; + } + + case WM_NOTIFY: { //Here we have pressed either the OK or the APPLY button. + switch(((LPNMHDR)lParam)->idFrom) { + case 0: + switch (((LPNMHDR)lParam)->code) { + case PSN_RESET: + LoadOptions(); + break; + + case PSN_APPLY: { + Options.DoSnap = (IsDlgButtonChecked(hwndDlg, IDC_CHK_SNAP) == TRUE); + Options.SnapWidth = SendDlgItemMessage(hwndDlg, IDC_SLIDER_SNAPWIDTH, TBM_GETPOS, 0, 0); + Options.ScriverWorkAround = (IsDlgButtonChecked(hwndDlg, IDC_CHK_SCRIVERWORKAROUND) == TRUE); + + db_set_b(NULL, MODULE_NAME, "DoSnap", Options.DoSnap); + db_set_b(NULL, MODULE_NAME, "SnapWidth", Options.SnapWidth); + db_set_b(NULL, MODULE_NAME, "ScriverWorkAround", Options.ScriverWorkAround); + + break; + } + } + break; + } + + break; + + } + default: + + break; + } + return 0; + +} + +int InitOptions(WPARAM wParam, LPARAM) { + OPTIONSDIALOGPAGE Opt = { 0 }; + + Opt.cbSize = sizeof(Opt); +// Opt.position = 0; + Opt.pfnDlgProc = OptionsDlgProc; + Opt.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_MAGNETICWINDOWS); + Opt.hInstance = hInst; +// Opt.hIcon = 0; + Opt.pszGroup = LPGEN("Customize"); + Opt.pszTitle = LPGEN("Magnetic Windows"); +// Opt.groupPosition = 0; +// Opt.hGroupIcon = 0; + Opt.flags = ODPF_BOLDGROUPS; +// Opt.nIDBottomSimpleControl = 0; +// Opt.nIDRightSimpleControl = 0; +// Opt.expertOnlyControls = NULL; +// Opt.nExpertOnlyControls = 0; + + Options_AddPage(wParam, &Opt); + + return 0; +} + +void LoadOptions() { + Options.DoSnap = db_get_b(NULL, MODULE_NAME, "DoSnap", TRUE); + Options.SnapWidth = db_get_b(NULL, MODULE_NAME, "SnapWidth", cDefaultSnapWidth); + Options.ScriverWorkAround = db_get_b(NULL, MODULE_NAME, "ScriverWorkAround", FALSE); +} \ No newline at end of file -- cgit v1.2.3