summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss123next@list.ru>2010-08-23 22:53:44 +0300
committerGluzskiy Alexandr <sss123next@list.ru>2010-08-23 22:53:44 +0300
commit12070f1ab059a9c1595616cde2397a09023eec9f (patch)
tree79e38ca3068a5773da4d32a79d4ba1e2949df48b
parentb8ab705f6fe2df0ce3aebe5749521f768d4df5e8 (diff)
modified: clist.cpp
modified: commonheaders.h modified: icons.cpp modified: init.cpp modified: main.cpp modified: srmm.cpp modified: utilities.cpp
-rw-r--r--clist.cpp6
-rw-r--r--commonheaders.h1
-rw-r--r--icons.cpp71
-rw-r--r--init.cpp22
-rw-r--r--main.cpp4
-rw-r--r--srmm.cpp6
-rw-r--r--utilities.cpp4
7 files changed, 76 insertions, 38 deletions
diff --git a/clist.cpp b/clist.cpp
index 4fa35bc..25c5a24 100644
--- a/clist.cpp
+++ b/clist.cpp
@@ -29,11 +29,13 @@ int onExtraImageListRebuilding(WPARAM, LPARAM)
int onExtraImageApplying(WPARAM wParam, LPARAM)
{
+ void setClistIcon(HANDLE);
if(g_hCLIcon && ServiceExists(MS_CLIST_EXTRA_SET_ICON))
{
- IconExtraColumn iec = {0}; //need to init this
+// IconExtraColumn iec = {0}; //need to init this
if( g_hCLIcon )
- ExtraIcon_SetIcon(g_hCLIcon, (HANDLE)wParam, iec.hImage);
+ setClistIcon((HANDLE)wParam);
+// ExtraIcon_SetIcon(g_hCLIcon, (HANDLE)wParam, iec.hImage);
}
return 0;
}
diff --git a/commonheaders.h b/commonheaders.h
index 698a90e..016fbde 100644
--- a/commonheaders.h
+++ b/commonheaders.h
@@ -44,6 +44,7 @@ using std::fstream;
#include <m_options.h>
#include <m_langpack.h>
#include <m_clist.h>
+#include <m_clui.h>
#include <m_icolib.h>
#include <m_skin.h>
#include <m_protomod.h>
diff --git a/icons.cpp b/icons.cpp
index bb1f460..1e70e2d 100644
--- a/icons.cpp
+++ b/icons.cpp
@@ -77,29 +77,52 @@ HANDLE IconLibHookIconsChanged(MIRANDAHOOK hook)
}
-// обновляет иконки в clist и в messagew
-void ShowStatusIcon(HANDLE hContact,bool enabled) {
-
+void setClistIcon(HANDLE hContact)
+{
+ bool enabled = isContactSecured(hContact);
extern HANDLE g_hCLIcon;
HANDLE getMetaContact(HANDLE hContact);
HANDLE hMC = getMetaContact(hContact);
- if(g_hCLIcon)
+ if(g_hCLIcon && enabled)
{ // обновить иконки в clist
- HICON icon = IconLibGetIcon(enabled?"secured":"unsecured");
+ HICON icon = IconLibGetIcon("secured");
IconExtraColumn iec = {0};
+ iec.cbSize = sizeof(iec);
iec.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)icon, (LPARAM)0);
ExtraIcon_SetIcon(g_hCLIcon, hContact, iec.hImage);
if(hMC)
ExtraIcon_SetIcon(g_hCLIcon, hMC, iec.hImage);
}
+ else
+ {
+ ExtraIcon_SetIcon(g_hCLIcon, hContact, (HANDLE)0);
+ if(hMC)
+ ExtraIcon_SetIcon(g_hCLIcon, hMC, (HANDLE)0);
+ }
+}
+
+void setSrmmIcon(HANDLE hContact)
+{
+ bool enabled = isContactSecured(hContact);
+ HANDLE getMetaContact(HANDLE hContact);
+ HANDLE hMC = getMetaContact(hContact);
if(ServiceExists(MS_MSG_MODIFYICON))
{ // обновить иконки в srmm
- StatusIconData sid;
- memset(&sid,0,sizeof(sid));
+ StatusIconData sid = {0};
+ sid.cbSize = sizeof(sid);
+ sid.szModule = szGPGModuleName;
+ sid.hIcon = IconLibGetIcon("secured");
+ sid.dwId = 0x00000001;
+ sid.flags = enabled?0:MBF_HIDDEN;
+ CallService(MS_MSG_MODIFYICON, (WPARAM)hContact, (LPARAM)&sid);
+ if( hMC )
+ CallService(MS_MSG_MODIFYICON, (WPARAM)hMC, (LPARAM)&sid);
+ ZeroMemory(&sid, sizeof(sid));
sid.cbSize = sizeof(sid);
- sid.szModule = (char*)szGPGModuleName;
- sid.hIcon = IconLibGetIcon(enabled?"secured":"unsecured");
-// sid.flags |= MBF_HIDDEN; // отключаем все ненужные иконки
+ sid.szModule = szGPGModuleName;
+ sid.hIcon = IconLibGetIcon("unsecured");
+ sid.dwId = 0x00000002;
+ sid.flags = enabled?MBF_HIDDEN:0;
CallService(MS_MSG_MODIFYICON, (WPARAM)hContact, (LPARAM)&sid);
if( hMC )
CallService(MS_MSG_MODIFYICON, (WPARAM)hMC, (LPARAM)&sid);
@@ -107,34 +130,16 @@ void ShowStatusIcon(HANDLE hContact,bool enabled) {
}
-void ShowStatusIcon(HANDLE hContact)
-{
- ShowStatusIcon(hContact,isContactSecured(hContact));
-}
-
-void ShowStatusIconNotify(HANDLE hContact) {
- bool enabled = isContactSecured(hContact);
- ShowStatusIcon(hContact,enabled);
-}
-
-
-void RefreshContactListIcons(void)
+void RefreshContactListIcons()
{
HANDLE hContact;
extern HANDLE g_hCLIcon;
- if( !g_hCLIcon )
- {
- hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0);
- while (hContact)
- { // сначала все выключаем
- ShowStatusIcon(hContact,0);
- hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)hContact, 0);
- }
- }
+ CallService(MS_CLUI_LISTBEGINREBUILD,0,0);
hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0);
while (hContact)
- { // и снова зажигаем иконку
- ShowStatusIcon(hContact);
+ {
+ setClistIcon(hContact);
hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)hContact, 0);
}
+ CallService(MS_CLUI_LISTENDREBUILD,0,0);
}
diff --git a/init.cpp b/init.cpp
index 465b77e..f8fee40 100644
--- a/init.cpp
+++ b/init.cpp
@@ -157,12 +157,32 @@ static int OnModulesLoaded(WPARAM wParam,LPARAM lParam)
int onExtraImageApplying(WPARAM wParam, LPARAM);
void InitIconLib();
-
void InitCheck();
void FirstRun();
FirstRun();
InitCheck();
InitIconLib();
+ if(ServiceExists(MS_MSG_ADDICON))
+ {
+ HICON IconLibGetIcon(const char* ident);
+ StatusIconData sid = {0};
+ sid.cbSize = sizeof(sid);
+ sid.szModule = szGPGModuleName;
+ sid.flags = MBF_HIDDEN;
+ sid.dwId = 0x00000001;
+ sid.hIcon = IconLibGetIcon("secured");
+ sid.szTooltip = Translate("GPG Turn off encryption");
+ CallService(MS_MSG_ADDICON, 0, (LPARAM)&sid);
+ ZeroMemory(&sid, sizeof(sid));
+ sid.cbSize = sizeof(sid);
+ sid.szModule = szGPGModuleName;
+ sid.flags = MBF_HIDDEN;
+ sid.dwId = 0x00000002;
+ sid.hIcon = IconLibGetIcon("unsecured");
+ sid.szTooltip = Translate("GPG Turn on encryption");
+ CallService(MS_MSG_ADDICON, 0, (LPARAM)&sid);
+ }
+
bIsMiranda09 = (DWORD)CallService(MS_SYSTEM_GETVERSION, 0, 0) >= 0x00090100?true:false;
bMetaContacts = ServiceExists(MS_MC_GETMETACONTACT);
diff --git a/main.cpp b/main.cpp
index 9f70ea8..3d9eba6 100644
--- a/main.cpp
+++ b/main.cpp
@@ -332,6 +332,10 @@ static BOOL CALLBACK DlgProcNewKeyDialog(HWND hwndDlg, UINT msg, WPARAM wParam,
case IDC_IMPORT_AND_USE:
ImportKey();
DBWriteContactSettingByte(new_key_hcnt, szGPGModuleName, "GPGEncryption", 1);
+ void setSrmmIcon(HANDLE hContact);
+ void setClistIcon(HANDLE hContact);
+ setSrmmIcon(new_key_hcnt);
+ setClistIcon(new_key_hcnt);
DestroyWindow(hwndDlg);
break;
case IDC_IGNORE_KEY:
diff --git a/srmm.cpp b/srmm.cpp
index ee603cc..6d00040 100644
--- a/srmm.cpp
+++ b/srmm.cpp
@@ -21,12 +21,14 @@
void ShowStatusIcon(HANDLE hContact);
BOOL isProtoMetaContacts(HANDLE hContact);
HANDLE getMostOnline(HANDLE hContact);
+void setSrmmIcon(HANDLE hContact);
int __cdecl onWindowEvent(WPARAM wParam, LPARAM lParam) {
MessageWindowEventData *mwd = (MessageWindowEventData *)lParam;
- if(mwd->uType == MSG_WINDOW_EVT_OPEN || mwd->uType == MSG_WINDOW_EVT_OPENING) {
- ShowStatusIcon(mwd->hContact);
+ if(mwd->uType == MSG_WINDOW_EVT_OPEN || mwd->uType == MSG_WINDOW_EVT_OPENING)
+ {
+ setSrmmIcon(mwd->hContact);
}
return 0;
}
diff --git a/utilities.cpp b/utilities.cpp
index fb522b6..d181c8b 100644
--- a/utilities.cpp
+++ b/utilities.cpp
@@ -212,6 +212,10 @@ int ToggleEncryption(WPARAM w, LPARAM l)
HANDLE hContact = (HANDLE)w;
BYTE enc = DBGetContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", 0);
DBWriteContactSettingByte(hContact, szGPGModuleName, "GPGEncryption", enc?0:1);
+ void setSrmmIcon(HANDLE hContact);
+ void setClistIcon(HANDLE hContact);
+ setSrmmIcon(hContact);
+ setClistIcon(hContact);
enc = enc?0:1;
CLISTMENUITEM mi = {0};
mi.cbSize=sizeof(mi);