summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--options.cpp7
-rw-r--r--utilities.cpp25
-rw-r--r--utilities.h1
3 files changed, 31 insertions, 2 deletions
diff --git a/options.cpp b/options.cpp
index 2b813d7..f160500 100644
--- a/options.cpp
+++ b/options.cpp
@@ -243,8 +243,11 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP
ListView_SetItemText(hwndList_p, item_num, 2, (_tcslen(tmp) > 1)?tmp:_T("not set"));
DestroyWindow(hwndDlg);
break;
- default:
- break;
+ case ID_LOD_FROM_FILE:
+ TCHAR *tmp2 = GetFilePath(_T("Set file containing GPG public key"), _T("*"), _T("GPG public key file"));
+ MessageBox(0, tmp2, _T("i will parse"), MB_OK);
+ delete tmp2;
+ break;
}
SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
diff --git a/utilities.cpp b/utilities.cpp
index 0654bd6..0e4fc06 100644
--- a/utilities.cpp
+++ b/utilities.cpp
@@ -102,6 +102,31 @@ void GetFilePath(TCHAR *WindowTittle, char *szSetting, TCHAR *szExt, TCHAR *szEx
DBWriteContactSettingTString(0, szModuleName, szSetting, str);
}
+TCHAR *GetFilePath(TCHAR *WindowTittle, TCHAR *szExt, TCHAR *szExtDesc)
+{
+ TCHAR *str = new TCHAR [MAX_PATH+2];
+ OPENFILENAME ofn={0};
+ TCHAR filter[512], *pfilter;
+ ofn.lStructSize=CDSIZEOF_STRUCT(OPENFILENAME,lpTemplateName);
+ ofn.Flags=OFN_EXPLORER;
+ ofn.lpstrTitle=TranslateW(WindowTittle);
+ _tcscpy(filter,TranslateW(szExtDesc));
+ pfilter=filter+_tcslen(filter)+1;
+ _tcscpy(pfilter, szExt);
+ pfilter[_tcslen(pfilter)+1] = '\0';
+ pfilter[_tcslen(pfilter)+2] = '\0';
+ ofn.lpstrFilter=filter;
+ _tcscpy(str, _T(""));
+ if(_tcslen(str)< 2)
+ str[0] = '\0';
+ ofn.lpstrFile=str;
+ ofn.nMaxFile=_MAX_PATH;
+ ofn.nMaxFileTitle=MAX_PATH;
+ if(!GetOpenFileName(&ofn))
+ return _T("");
+ return str;
+}
+
void GetFolderPath(TCHAR *WindowTittle, char *szSetting)
{
BROWSEINFO pbi = {0};
diff --git a/utilities.h b/utilities.h
index c913838..8ec36db 100644
--- a/utilities.h
+++ b/utilities.h
@@ -18,6 +18,7 @@
#define UTILITIES_H
TCHAR* __stdcall UniGetContactSettingUtf(HANDLE hContact, const char *szModule,const char* szSetting, TCHAR* szDef);
void GetFilePath(TCHAR *WindowTittle, char *szSetting, TCHAR *szExt, TCHAR *szExtDesc);
+TCHAR *GetFilePath(TCHAR *WindowTittle, TCHAR *szExt, TCHAR *szExtDesc);
void GetFolderPath(TCHAR *WindowTittle, char *szSetting);
#endif