1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
// Copyright © 2010 SecureIM developers (baloo and others), sss
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "commonheaders.h"
// обновляет иконки в clist и в messagew
void ShowStatusIcon(HANDLE hContact,bool enabled) {
extern HANDLE g_hCLIcon;
extern IconExtraColumn g_IEC;
HANDLE getMetaContact(HANDLE hContact);
HANDLE hMC = getMetaContact(hContact);
HICON icon = NULL; //need to get icon here
if(g_hCLIcon)
{ // обновить иконки в clist
// IconExtraColumn iec=g_IEC.hImage = (HANDLE) CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)icon, (LPARAM)0);;
// if(g_hCLIcon)
{
// ExtraIcon_SetIcon(g_hCLIcon, hContact, iec.hImage);
// if(hMC)
// ExtraIcon_SetIcon(g_hCLIcon, hMC, iec.hImage);
}
}
if(ServiceExists(MS_MSG_MODIFYICON))
{ // обновить иконки в srmm
// StatusIconData sid;
// memset(&sid,0,sizeof(sid));
// sid.cbSize = sizeof(sid);
// sid.szModule = (char*)szGPGModuleName;
// sid.flags |= MBF_HIDDEN; // отключаем все ненужные иконки
// CallService(MS_MSG_MODIFYICON, (WPARAM)hContact, (LPARAM)&sid);
// if( hMC )
// CallService(MS_MSG_MODIFYICON, (WPARAM)hMC, (LPARAM)&sid);
}
}
void ShowStatusIcon(HANDLE hContact)
{
ShowStatusIcon(hContact,isContactSecured(hContact));
}
void ShowStatusIconNotify(HANDLE hContact) {
bool enabled = isContactSecured(hContact);
// NotifyEventHooks(g_hEvent[(mode&SECURED)!=0], (WPARAM)hContact, 0);
ShowStatusIcon(hContact,enabled);
}
void RefreshContactListIcons(void)
{
HANDLE hContact;
extern HANDLE g_hCLIcon;
// CallService(MS_CLUI_LISTBEGINREBUILD,0,0);
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);
}
}
hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDFIRST, 0, 0);
while (hContact)
{ // и снова зажигаем иконку
ShowStatusIcon(hContact);
hContact = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)hContact, 0);
}
// CallService(MS_CLUI_LISTENDREBUILD,0,0);
}
|