summaryrefslogtreecommitdiff
path: root/srmm.cpp
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss123next@list.ru>2010-08-23 23:17:10 +0300
committerGluzskiy Alexandr <sss123next@list.ru>2010-08-23 23:17:10 +0300
commit437e9f0426ef27117fce94646a13c33b76c13f54 (patch)
tree4c635eb185d0c2abad4c923191817d12736cd288 /srmm.cpp
parent12070f1ab059a9c1595616cde2397a09023eec9f (diff)
modified: icons.cpp
modified: options.cpp modified: srmm.cpp modified: utilities.cpp
Diffstat (limited to 'srmm.cpp')
-rw-r--r--srmm.cpp42
1 files changed, 40 insertions, 2 deletions
diff --git a/srmm.cpp b/srmm.cpp
index 6d00040..d5f6061 100644
--- a/srmm.cpp
+++ b/srmm.cpp
@@ -41,7 +41,45 @@ int __cdecl onIconPressed(WPARAM wParam, LPARAM lParam) {
StatusIconClickData *sicd = (StatusIconClickData *)lParam;
if(strcmp(sicd->szModule, szGPGModuleName) != 0)
- return 0; // not our event
-
+ return 0; // not our event
+
+ void setSrmmIcon(HANDLE);
+ void setClistIcon(HANDLE);
+ TCHAR *key = UniGetContactSettingUtf(hContact, szGPGModuleName, "GPGPubKey", _T(""));
+ BYTE enc = DBGetContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 0);
+ if(enc)
+ {
+ DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 0);
+ setSrmmIcon(hContact);
+ setClistIcon(hContact);
+ }
+ else if(!enc)
+ {
+ if(_tcslen(key) < 1)
+ {
+ void ShowLoadPublicKeyDialog();
+ extern map<int, HANDLE> user_data;
+ extern int item_num;
+ item_num = 0; //black magic here
+ user_data[1] = hContact;
+ ShowLoadPublicKeyDialog();
+ }
+ else
+ {
+ DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 1);
+ setSrmmIcon(hContact);
+ setClistIcon(hContact);
+ mir_free(key);
+ return 0;
+ }
+ mir_free(key);
+ key = UniGetContactSettingUtf(hContact, szGPGModuleName, "GPGPubKey", _T(""));
+ if(_tcslen(key) > 0)
+ {
+ DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 1);
+ setSrmmIcon(hContact);
+ setClistIcon(hContact);
+ }
+ }
return 0;
}