diff options
author | Gluzskiy Alexandr <sss123next@list.ru> | 2010-08-08 14:41:24 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss123next@list.ru> | 2010-08-08 14:41:24 +0300 |
commit | 3777be91f293eac73dad6355eb2c4a6261aad467 (patch) | |
tree | 7a1b1229242437121f91667707cf2b1a331d798b | |
parent | ab8714c350485b27303b6a8f711f6cbed92efad8 (diff) |
userlist finished ?
-rw-r--r-- | new_gpg.rc | 6 | ||||
-rw-r--r-- | new_gpg.vcproj | 2 | ||||
-rw-r--r-- | options.cpp | 51 | ||||
-rw-r--r-- | resource.h | 1 |
4 files changed, 43 insertions, 17 deletions
@@ -53,13 +53,13 @@ END //
IDD_LOAD_PUBLIC_KEY DIALOGEX 0, 0, 279, 84
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Load Public GPG key"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "خت",ID_OK,7,63,50,14
PUSHBUTTON "Load from file",ID_LOD_FROM_FILE,208,63,54,14
- EDITTEXT IDC_EDIT1,7,7,255,51,ES_AUTOHSCROLL
+ EDITTEXT IDC_PUBLIC_KEY_EDIT,7,7,255,51,ES_AUTOHSCROLL
END
@@ -105,7 +105,7 @@ FONT 8, "MS Shell Dlg", 400, 0, 0x0 BEGIN
CONTROL "",IDC_USERLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,17,254,112
CTEXT "Userlist:",IDC_STATIC,25,7,201,8
- PUSHBUTTON "Load PubKey",IDC_LOAD_KEY_BUTTON,7,135,54,14
+ PUSHBUTTON "Set PubKey",IDC_LOAD_KEY_BUTTON,7,135,49,14
END
IDD_OPT_GPG_BIN DIALOGEX 0, 0, 268, 214
diff --git a/new_gpg.vcproj b/new_gpg.vcproj index 0adbbc1..4361722 100644 --- a/new_gpg.vcproj +++ b/new_gpg.vcproj @@ -152,7 +152,7 @@ Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""X:\install\git\miranda\miranda-im\miranda\include";X:\install\git\miranda\mim_plugs;../../include"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;TESTPLUG_EXPORTS;_CRT_SECURE_NO_WARNINGS;_UNICODE;UNICODE"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;TESTPLUG_EXPORTS;_CRT_SECURE_NO_WARNINGS;_UNICODE;UNICODE;_CRT_SECURE_NO_DEPRECATE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
diff --git a/options.cpp b/options.cpp index dcadd7d..2b813d7 100644 --- a/options.cpp +++ b/options.cpp @@ -56,10 +56,14 @@ HWND hCaller; std::map<int, HANDLE> user_data; +int item_num = 0; +HWND hwndList_p; + void ShowLoadPublicKeyDialog(HWND hwndCaller); static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { HWND hwndList=GetDlgItem(hwndDlg, IDC_USERLIST); + hwndList_p = hwndList; LVCOLUMN col; LVITEM item; NMLISTVIEW * hdr = (NMLISTVIEW *) lParam; @@ -99,7 +103,8 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA TCHAR *tmp = mir_a2t((char*)CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM)hContact, 0)); ListView_SetItemText(hwndList, iRow, 1, tmp); mir_free(tmp); - ListView_SetItemText(hwndList, iRow, 2, UniGetContactSettingUtf(hContact, szModuleName, "GPGPubKey", _T("not set"))); + tmp = UniGetContactSettingUtf(hContact, szModuleName, "GPGPubKey", _T("not set")); + ListView_SetItemText(hwndList, iRow, 2, (_tcslen(tmp) > 1)?tmp:_T("not set")); if(DBGetContactSettingByte(hContact, szModuleName, "GPGEncryption", 0)) ListView_SetItemState(hwndList, iRow, 0x2000, 0xF000); user_data[i] = hContact; @@ -130,16 +135,20 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA case WM_NOTIFY: { - if(hdr && hdr->hdr.code == LVN_ITEMCHANGED && IsWindowVisible(hdr->hdr.hwndFrom) && hdr->iItem != (-1)) + if(hdr && IsWindowVisible(hdr->hdr.hwndFrom) && hdr->iItem != (-1)) { - int i = hdr->iItem; - HANDLE hContact = user_data[i+1]; - if(ListView_GetItemState(hwndList, i, 0xF000) == 0x2000) - DBWriteContactSettingByte(hContact, szModuleName, "GPGEncryption", 1); - else - DBWriteContactSettingByte(hContact, szModuleName, "GPGEncryption", 0); + if(hdr->hdr.code == LVN_ITEMCHANGED) + { + int i = hdr->iItem; + HANDLE hContact = user_data[i+1]; + if(ListView_GetItemState(hwndList, i, 0xF000) == 0x2000) + DBWriteContactSettingByte(hContact, szModuleName, "GPGEncryption", 1); + else + DBWriteContactSettingByte(hContact, szModuleName, "GPGEncryption", 0); + item_num = hdr->iItem; + } } - switch (((LPNMHDR)lParam)->code) + switch (((LPNMHDR)lParam)->code) { case PSN_APPLY: @@ -203,20 +212,22 @@ static BOOL CALLBACK DlgProcGpgBinOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LP return TRUE; } } - } + } break; } - return FALSE; } static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam) { + HANDLE hContact = user_data[item_num+1]; switch (msg) { case WM_INITDIALOG: { TranslateDialogDefault(hwndDlg); + TCHAR *tmp = UniGetContactSettingUtf(hContact, szModuleName, "GPGPubKey", _T("")); + SetDlgItemText(hwndDlg, IDC_PUBLIC_KEY_EDIT, (_tcslen(tmp) > 1)?tmp:_T("")); return TRUE; } @@ -225,6 +236,13 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP { switch (LOWORD(wParam)) { + case ID_OK: + TCHAR tmp[1024]; + GetDlgItemText(hwndDlg, IDC_PUBLIC_KEY_EDIT, tmp, 1024); + DBWriteContactSettingTString(hContact, szModuleName, "GPGPubKey", tmp); + ListView_SetItemText(hwndList_p, item_num, 2, (_tcslen(tmp) > 1)?tmp:_T("not set")); + DestroyWindow(hwndDlg); + break; default: break; } @@ -243,8 +261,15 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP return TRUE; } } - } - break; + } + break; + case WM_CLOSE: + DestroyWindow(hwndDlg); + break; + case WM_DESTROY: + hwndLoadPublicKey = NULL; + break; + } return FALSE; @@ -14,6 +14,7 @@ #define ID_OK 1023
#define ID_LOD_FROM_FILE 1024
#define IDC_EDIT1 1025
+#define IDC_PUBLIC_KEY_EDIT 1025
// Next default values for new objects
//
|