diff options
Diffstat (limited to 'icons.cpp')
-rw-r--r-- | icons.cpp | 71 |
1 files changed, 38 insertions, 33 deletions
@@ -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);
}
|