diff options
Diffstat (limited to 'options.cpp')
-rw-r--r-- | options.cpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/options.cpp b/options.cpp index 69b9938..6d223ee 100644 --- a/options.cpp +++ b/options.cpp @@ -20,6 +20,7 @@ extern HINSTANCE hInst; static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); +static BOOL CALLBACK DlgProcGpgBinOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); int GpgOptInit(WPARAM wParam,LPARAM lParam) { @@ -33,6 +34,19 @@ int GpgOptInit(WPARAM wParam,LPARAM lParam) odp.flags=ODPF_BOLDGROUPS; odp.pfnDlgProc = DlgProcGpgOpts; CallService(MS_OPT_ADDPAGE,wParam,(LPARAM)&odp); + + ZeroMemory(&odp, sizeof(odp)); + + odp.cbSize = sizeof(odp); + odp.hInstance = hInst; + odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_GPG_BIN); + odp.pszTitle = szModuleName; + odp.pszGroup = "Services"; + odp.pszTab = "GnuPG Variables"; + odp.flags=ODPF_BOLDGROUPS; + odp.pfnDlgProc = DlgProcGpgBinOpts; + CallService(MS_OPT_ADDPAGE,wParam,(LPARAM)&odp); + return 0; } @@ -78,4 +92,51 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA } +static BOOL CALLBACK DlgProcGpgBinOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ + switch (msg) + { + case WM_INITDIALOG: + { + TranslateDialogDefault(hwndDlg); + SetDlgItemText(hwndDlg, IDC_BIN_PATH, UniGetContactSettingUtf(NULL, szModuleName, "szGpgBinPath", _T("gpg2.exe"))); + return TRUE; + } + + + case WM_COMMAND: + { + switch (LOWORD(wParam)) + { + case IDC_SET_BIN_PATH: + GetFilePath(_T("Choose gpg2.exe"), "szGpgBinPath", _T("*.exe"), _T("EXE Executables")); + SetDlgItemText(hwndDlg, IDC_BIN_PATH, UniGetContactSettingUtf(NULL, szModuleName, "szGpgBinPath", _T("gpg2.exe"))); + break; + default: + break; + } + + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + } + + case WM_NOTIFY: + { + switch (((LPNMHDR)lParam)->code) + { + + case PSN_APPLY: + { + TCHAR tmp[512]; + GetDlgItemText(hwndDlg, IDC_BIN_PATH, tmp, 512); + DBWriteContactSettingTString(NULL, szModuleName, "szGpgBinPath", tmp); + return TRUE; + } + } + } + break; + } + + return FALSE; +} |