summaryrefslogtreecommitdiff
path: root/plugins/!Deprecated/MagneticWindows/src/Options.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/!Deprecated/MagneticWindows/src/Options.cpp')
-rw-r--r--plugins/!Deprecated/MagneticWindows/src/Options.cpp96
1 files changed, 96 insertions, 0 deletions
diff --git a/plugins/!Deprecated/MagneticWindows/src/Options.cpp b/plugins/!Deprecated/MagneticWindows/src/Options.cpp
new file mode 100644
index 0000000000..6729e33861
--- /dev/null
+++ b/plugins/!Deprecated/MagneticWindows/src/Options.cpp
@@ -0,0 +1,96 @@
+#include "MagneticWindowsCore.h"
+
+TOptions Options = {
+ true,
+ cDefaultSnapWidth,
+ false
+};
+
+INT_PTR 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);
+
+ mir_sntprintf(str, SIZEOF(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_sntprintf(str, SIZEOF(str), 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:
+ switch( LOWORD(wParam)) {
+ case IDC_CHK_SNAP:
+ if (HIWORD(wParam) == 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 (HIWORD(wParam) == 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;
+ }
+ return 0;
+}
+
+int InitOptions(WPARAM wParam, LPARAM)
+{
+ OPTIONSDIALOGPAGE Opt = { sizeof(Opt) };
+ Opt.pfnDlgProc = OptionsDlgProc;
+ Opt.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_MAGNETICWINDOWS);
+ Opt.hInstance = hInst;
+ Opt.pszGroup = LPGEN("Customize");
+ Opt.pszTitle = LPGEN("Magnetic Windows");
+ Opt.flags = ODPF_BOLDGROUPS;
+ Options_AddPage(wParam, &Opt);
+ return 0;
+}
+
+void LoadOptions()
+{
+ Options.DoSnap = db_get_b(NULL, MODULE_NAME, "DoSnap", 1) != 0;
+ Options.SnapWidth = db_get_b(NULL, MODULE_NAME, "SnapWidth", cDefaultSnapWidth);
+ Options.ScriverWorkAround = db_get_b(NULL, MODULE_NAME, "ScriverWorkAround", 0) != 0;
+}