summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--new_gpg.rc6
-rw-r--r--new_gpg.vcproj2
-rw-r--r--options.cpp51
-rw-r--r--resource.h1
4 files changed, 43 insertions, 17 deletions
diff --git a/new_gpg.rc b/new_gpg.rc
index 5f26fc0..14f7b6a 100644
--- a/new_gpg.rc
+++ b/new_gpg.rc
@@ -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;
diff --git a/resource.h b/resource.h
index 78c7a5c..157afff 100644
--- a/resource.h
+++ b/resource.h
@@ -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
//