diff options
Diffstat (limited to 'plugins/SecureIM/src/crypt_icons.cpp')
-rw-r--r-- | plugins/SecureIM/src/crypt_icons.cpp | 90 |
1 files changed, 20 insertions, 70 deletions
diff --git a/plugins/SecureIM/src/crypt_icons.cpp b/plugins/SecureIM/src/crypt_icons.cpp index f48e94278e..ed0b68d15a 100644 --- a/plugins/SecureIM/src/crypt_icons.cpp +++ b/plugins/SecureIM/src/crypt_icons.cpp @@ -1,6 +1,5 @@ #include "commonheaders.h"
-
typedef struct {
HICON icon;
SHORT mode;
@@ -47,52 +46,19 @@ HICON mode2icon(int mode,int type) { return icon;
}
-
-// преобразует mode в HICON который НУЖНО разрушить в конце
-HICON mode2icon2(int mode,int type) {
- return CopyIcon(mode2icon(mode,type));
-}
-
-
-// преобразует mode в IconExtraColumn который НЕ нужно разрушать в конце
-IconExtraColumn mode2iec(int mode) {
-
- int m=mode&0x0f,s=(mode&SECURED)>>4; // разобрали на части - режим и состояние
-
- if ( mode==-1 || (!s && !bASI && m!=MODE_PGP && m!=MODE_GPG)) {
- return g_IEC[0]; // вернем пустое место
- }
-
- int i=1+m*IEC_CNT+IEC_CL_DIS+s;
- if ( g_IEC[i].hImage==(HANDLE)-1 ) {
-/* g_hIEC[i] = mode2icon(mode,1);
- g_IEC[i].hImage = (HANDLE) CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)g_hIEC[i], 0);*/
- HICON icon = mode2icon(mode,1);
- g_IEC[i].hImage = (HANDLE) CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)icon, 0);
- }
- return g_IEC[i];
-}
-
-
// обновляет иконки в clist и в messagew
-void ShowStatusIcon(HANDLE hContact,int mode) {
-
+void ShowStatusIcon(HANDLE hContact,int mode)
+{
HANDLE hMC = getMetaContact(hContact);
- if ( bADV || g_hCLIcon ) { // обновить иконки в clist
- if ( mode!= -1 ) {
- IconExtraColumn iec=mode2iec(mode);
- if ( g_hCLIcon ) {
- ExtraIcon_SetIcon(g_hCLIcon, hContact, iec.hImage);
- if ( hMC )
- ExtraIcon_SetIcon(g_hCLIcon, hMC, iec.hImage);
- }
- else {
- CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM)hContact, (LPARAM)&iec);
- if ( hMC )
- CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM)hMC, (LPARAM)&iec);
- }
- }
+
+ // обновить иконки в clist
+ if (mode != -1) {
+ HICON hIcon = mode2icon(mode, 1);
+ ExtraIcon_SetIcon(g_hCLIcon, hContact, hIcon);
+ if ( hMC )
+ ExtraIcon_SetIcon(g_hCLIcon, hMC, hIcon);
}
+
if ( ServiceExists(MS_MSG_MODIFYICON)) { // обновить иконки в srmm
StatusIconData sid;
memset(&sid,0,sizeof(sid));
@@ -100,52 +66,36 @@ void ShowStatusIcon(HANDLE hContact,int mode) { sid.szModule = (char*)szModuleName;
for(int i=MODE_NATIVE; i<MODE_CNT;i++) {
sid.dwId = i;
- sid.flags = (mode&SECURED)?0:MBF_DISABLED;
- if ( mode==-1 || (mode&0x0f)!=i || isChatRoom(hContact))
+ sid.flags = (mode & SECURED) ? 0 : MBF_DISABLED;
+ if (mode == -1 || (mode & 0x0f) != i || isChatRoom(hContact))
sid.flags |= MBF_HIDDEN; // отключаем все ненужные иконки
CallService(MS_MSG_MODIFYICON, (WPARAM)hContact, (LPARAM)&sid);
if ( hMC )
- CallService(MS_MSG_MODIFYICON, (WPARAM)hMC, (LPARAM)&sid);
+ CallService(MS_MSG_MODIFYICON, (WPARAM)hMC, (LPARAM)&sid);
}
}
}
-
-void ShowStatusIcon(HANDLE hContact) {
+void ShowStatusIcon(HANDLE hContact)
+{
ShowStatusIcon(hContact,isContactSecured(hContact));
}
-
-void ShowStatusIconNotify(HANDLE hContact) {
+void ShowStatusIconNotify(HANDLE hContact)
+{
int mode = isContactSecured(hContact);
NotifyEventHooks(g_hEvent[(mode&SECURED)!=0], (WPARAM)hContact, 0);
ShowStatusIcon(hContact,mode);
}
-
-void RefreshContactListIcons(void) {
-
- HANDLE hContact;
-// CallService(MS_CLUI_LISTBEGINREBUILD,0,0);
- if ( !g_hCLIcon ) {
- hContact = db_find_first();
- while (hContact) { // сначала все выключаем
- ShowStatusIcon(hContact,-1);
- hContact = db_find_next(hContact);
- }
- // менем местоположение иконки
- for(int i=0;i<1+MODE_CNT*IEC_CNT;i++) {
- g_IEC[i].ColumnType = bADV;
- }
- }
- hContact = db_find_first();
+void RefreshContactListIcons(void)
+{
+ HANDLE hContact = db_find_first();
while (hContact) { // и снова зажигаем иконку
if ( isSecureProtocol(hContact))
ShowStatusIcon(hContact);
hContact = db_find_next(hContact);
}
-// CallService(MS_CLUI_LISTENDREBUILD,0,0);
}
-
// EOF
|