summaryrefslogtreecommitdiff
path: root/plugins/RecentContacts/src/options.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/RecentContacts/src/options.cpp')
-rw-r--r--plugins/RecentContacts/src/options.cpp73
1 files changed, 73 insertions, 0 deletions
diff --git a/plugins/RecentContacts/src/options.cpp b/plugins/RecentContacts/src/options.cpp
new file mode 100644
index 0000000000..d8f09adb9b
--- /dev/null
+++ b/plugins/RecentContacts/src/options.cpp
@@ -0,0 +1,73 @@
+#include "RecentContacts.h"
+#include "resource.h"
+
+extern HINSTANCE hInst;
+void LoadDBSettings();
+
+INT_PTR CALLBACK DlgProcOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ char str[32];
+
+ switch (msg) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hwndDlg);
+ CheckDlgButton(hwndDlg, IDC_HIDEOFFLINE, (LastUCOpt.HideOffline ? BST_CHECKED : BST_UNCHECKED));
+
+ mir_snprintf(str, SIZEOF(str), "%d", LastUCOpt.MaxShownContacts);
+ SetDlgItemTextA(hwndDlg, IDC_SHOWNCONTACTS, str);
+
+ mir_snprintf(str, SIZEOF(str), "%s", LastUCOpt.DateTimeFormat.c_str());
+ SetDlgItemTextA(hwndDlg, IDC_DATETIME, str);
+
+ SetWindowLongPtr(hwndDlg,GWLP_USERDATA,lParam);
+ return TRUE;
+
+ case WM_COMMAND:
+ switch(HIWORD(wParam)) {
+ case EN_CHANGE:
+ case BN_CLICKED:
+ case CBN_EDITCHANGE:
+ case CBN_SELCHANGE:
+ SendMessage(GetParent(hwndDlg),PSM_CHANGED,0,0);
+ }
+ break;
+
+ case WM_NOTIFY:
+ {
+ LPNMHDR phdr = (LPNMHDR)(lParam);
+ if (phdr->idFrom == 0 && phdr->code == PSN_APPLY) {
+ BOOL bSuccess = FALSE;
+
+ LastUCOpt.HideOffline = (BOOL)IsDlgButtonChecked(hwndDlg, IDC_HIDEOFFLINE);
+ DBWriteContactSettingByte(NULL, dbLastUC_ModuleName, dbLastUC_HideOfflineContacts, (BYTE)LastUCOpt.HideOffline);
+
+ GetDlgItemTextA(hwndDlg, IDC_SHOWNCONTACTS, str, SIZEOF(str));
+ LastUCOpt.MaxShownContacts= atoi(str);
+ DBWriteContactSettingByte(0,dbLastUC_ModuleName, dbLastUC_MaxShownContacts, LastUCOpt.MaxShownContacts);
+
+ GetDlgItemTextA(hwndDlg, IDC_DATETIME, str, SIZEOF(str));
+ DBWriteContactSettingString(0,dbLastUC_ModuleName, dbLastUC_DateTimeFormat, str );
+
+ LoadDBSettings();
+ return TRUE;
+ }
+ break;
+ }
+ }
+ return FALSE;
+}
+
+int onOptInitialise(WPARAM wParam, LPARAM lParam)
+{
+ OPTIONSDIALOGPAGE odp = { 0 };
+ odp.cbSize = sizeof(odp);
+ odp.hInstance = hInst;
+ odp.pszGroup = LPGEN("Contact List");
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_LASTUC_OPT);
+ odp.pszTitle = msLastUC_ShowListName;
+ odp.pfnDlgProc = DlgProcOptions;
+ odp.flags = ODPF_BOLDGROUPS;
+ Options_AddPage(wParam, &odp);
+
+ return 0;
+}