diff options
-rw-r--r-- | commonheaders.h | 1 | ||||
-rw-r--r-- | init.cpp | 23 | ||||
-rw-r--r-- | new_gpg.vcproj | 4 | ||||
-rw-r--r-- | new_gpg.vcproj.EVIL2.sss.user | 2 | ||||
-rw-r--r-- | options.cpp | 34 |
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" @@ -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=""X:\install\git\miranda\miranda-im\miranda\include";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) { |