summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss123next@list.ru>2010-08-07 21:17:36 +0300
committerGluzskiy Alexandr <sss123next@list.ru>2010-08-07 21:17:36 +0300
commitdfe1e876c6d8ad77a66ae242482e8cc2b6be48c3 (patch)
tree9f2472e2ec4f537d491d3b4f8e57b075d85d6c24
parent9041e1e89514d7a1a1df7620b7fdf974a4abac1e (diff)
working....
-rw-r--r--commonheaders.h1
-rw-r--r--init.cpp23
-rw-r--r--new_gpg.vcproj4
-rw-r--r--new_gpg.vcproj.EVIL2.sss.user2
-rw-r--r--options.cpp34
5 files changed, 52 insertions, 12 deletions
diff --git a/commonheaders.h b/commonheaders.h
index a19220c..ab717e8 100644
--- a/commonheaders.h
+++ b/commonheaders.h
@@ -28,6 +28,7 @@
#include <m_clist.h>
#include <m_icolib.h>
#include <m_skin.h>
+#include <m_protocols.h>
#include "resource.h"
#include "gpgme.h"
diff --git a/init.cpp b/init.cpp
index d03c951..75ae28a 100644
--- a/init.cpp
+++ b/init.cpp
@@ -68,6 +68,7 @@ extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void)
}
int LoadKey(WPARAM w, LPARAM l);
+int ToggleEncryption(WPARAM w, LPARAM l);
extern "C" int __declspec(dllexport) Load(PLUGINLINK *link)
{
@@ -76,15 +77,23 @@ extern "C" int __declspec(dllexport) Load(PLUGINLINK *link)
mir_getMMI(&mmi);
mir_getUTFI(&utfi);
CreateServiceFunction("/LoadPubKey",LoadKey);
- CLISTMENUITEM mi;
- ZeroMemory(&mi,sizeof(mi));
+ CreateServiceFunction("/ToggleEncryption",ToggleEncryption);
+ CLISTMENUITEM mi = {0};
mi.cbSize=sizeof(mi);
mi.position=-0x7FFFFFFF;
mi.flags=0;
mi.hIcon=LoadSkinnedIcon(SKINICON_OTHER_MIRANDA);
- mi.pszName="Load public key";
+ mi.pszName="Load GPG public key";
mi.pszService="/LoadPubKey";
hLoadPubKey = (HANDLE)CallService(MS_CLIST_ADDCONTACTMENUITEM,0,(LPARAM)&mi);
+ ZeroMemory(&mi,sizeof(mi));
+ mi.cbSize=sizeof(mi);
+ mi.position=-0x7FFFFFFe;
+ mi.flags=0;
+ mi.hIcon=LoadSkinnedIcon(SKINICON_OTHER_MIRANDA);
+ mi.pszName="Toggle GPG encryption";
+ mi.pszService="/ToggleEncryption";
+ hLoadPubKey = (HANDLE)CallService(MS_CLIST_ADDCONTACTMENUITEM,0,(LPARAM)&mi);
return 0;
}
@@ -107,5 +116,13 @@ extern "C" int __declspec(dllexport) Unload(void)
int LoadKey(WPARAM w, LPARAM l)
{
+ HANDLE hContact = (HANDLE)w;
+ MessageBox(0, _T("Load GPG key function called"), _T("INFO"), MB_OK);
+ return 0;
+}
+int ToggleEncryption(WPARAM w, LPARAM l)
+{
+ HANDLE hContact = (HANDLE)w;
+ MessageBox(0, _T("Toggle GPG encryption function called"), _T("INFO"), MB_OK);
return 0;
} \ No newline at end of file
diff --git a/new_gpg.vcproj b/new_gpg.vcproj
index 740f92f..0adbbc1 100644
--- a/new_gpg.vcproj
+++ b/new_gpg.vcproj
@@ -250,7 +250,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
WholeProgramOptimization="true"
- AdditionalIncludeDirectories="../../include"
+ AdditionalIncludeDirectories="&quot;X:\install\git\miranda\miranda-im\miranda\include&quot;;X:\install\git\miranda\mim_plugs;../../include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_UNICODE"
StringPooling="true"
RuntimeLibrary="0"
@@ -277,8 +277,10 @@
/>
<Tool
Name="VCLinkerTool"
+ AdditionalDependencies="libgcrypt-11.lib libgpgme-11.lib libksba-8.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
+ AdditionalLibraryDirectories="X:\install\git\miranda\mim_plugs\lib"
GenerateDebugInformation="false"
OptimizeReferences="2"
EnableCOMDATFolding="2"
diff --git a/new_gpg.vcproj.EVIL2.sss.user b/new_gpg.vcproj.EVIL2.sss.user
index 87ef3a3..f69a328 100644
--- a/new_gpg.vcproj.EVIL2.sss.user
+++ b/new_gpg.vcproj.EVIL2.sss.user
@@ -37,7 +37,7 @@
Name="Debug|Win32"
>
<DebugSettings
- Command=""
+ Command="C:\Program Files\mir\miranda32.exe"
WorkingDirectory=""
CommandArguments=""
Attach="false"
diff --git a/options.cpp b/options.cpp
index 494a4fd..d39cdcb 100644
--- a/options.cpp
+++ b/options.cpp
@@ -53,26 +53,33 @@ int GpgOptInit(WPARAM wParam,LPARAM lParam)
static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
+ HWND hwndList=GetDlgItem(hwndDlg, IDC_USERLIST);
+ LVCOLUMN col;
+ LVITEM item;
+ NMLISTVIEW * hdr = (NMLISTVIEW *) lParam;
switch (msg)
{
case WM_INITDIALOG:
{
TranslateDialogDefault(hwndDlg);
- HWND hwndList=GetDlgItem(hwndDlg, IDC_USERLIST);
- LVCOLUMN col;
- LVITEM item;
- NMLISTVIEW *hdr;
col.pszText = _T("Contact");
col.mask = LVCF_TEXT | LVCF_WIDTH;
col.fmt = LVCFMT_LEFT;
col.cx = 100;
ListView_InsertColumn(hwndList, 0, &col);
+ ZeroMemory(&col,sizeof(col));
+ col.pszText = _T("Protocol");
+ col.mask = LVCF_TEXT | LVCF_WIDTH;
+ col.fmt = LVCFMT_LEFT;
+ col.cx = 30;
+ ListView_InsertColumn(hwndList, 1, &col);
+ ZeroMemory(&col,sizeof(col));
col.pszText = _T("PubKey");
col.mask = LVCF_TEXT | LVCF_WIDTH;
col.fmt = LVCFMT_LEFT;
col.cx = 250;
- ListView_InsertColumn(hwndList, 1, &col);
- ListView_SetExtendedListViewStyleEx(hwndList, 0, LVS_EX_FULLROWSELECT);
+ ListView_InsertColumn(hwndList, 2, &col);
+ ListView_SetExtendedListViewStyleEx(hwndList, 0, LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);
int i = 1, iRow = 0;
for(HANDLE hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); hContact != NULL; hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)hContact, 0))
{
@@ -83,11 +90,18 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA
item.pszText = name;
iRow = ListView_InsertItem(hwndList, &item);
ListView_SetItemText(hwndList, iRow, 0, name);
- ListView_SetItemText(hwndList, iRow, 1, UniGetContactSettingUtf(hContact, szModuleName, "GPGPubKey", _T("not set")));
+ 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")));
+ if(DBGetContactSettingByte(hContact, szModuleName, "GPGEncryption", 0))
+ ListView_SetItemState(hwndList, iRow, 0x2000, 0xF000);
+ ZeroMemory(&item,sizeof(item));
i++;
}
ListView_SetColumnWidth(hwndList, 0, LVSCW_AUTOSIZE);// not sure about this
ListView_SetColumnWidth(hwndList, 1, LVSCW_AUTOSIZE);
+ ListView_SetColumnWidth(hwndList, 2, LVSCW_AUTOSIZE);
return TRUE;
}
@@ -96,6 +110,8 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA
{
switch (LOWORD(wParam))
{
+ case IDC_USERLIST:
+ break;
default:
break;
}
@@ -106,6 +122,10 @@ 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))
+ {
+ int iIndex = hdr->iItem;
+ }
switch (((LPNMHDR)lParam)->code)
{