From 12070f1ab059a9c1595616cde2397a09023eec9f Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Mon, 23 Aug 2010 22:53:44 +0300 Subject: modified: clist.cpp modified: commonheaders.h modified: icons.cpp modified: init.cpp modified: main.cpp modified: srmm.cpp modified: utilities.cpp --- icons.cpp | 71 ++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 38 insertions(+), 33 deletions(-) (limited to 'icons.cpp') 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); } -- cgit v1.2.3