From 03e7b6d63bdfff3e4b5b7d0eb6899e5bf0108e4e Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Fri, 17 May 2013 21:10:14 +0000 Subject: - New_GPG: reinstated git-svn-id: http://svn.miranda-ng.org/main/trunk@4716 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/New_GPG/src/icons.cpp | 98 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 plugins/New_GPG/src/icons.cpp (limited to 'plugins/New_GPG/src/icons.cpp') diff --git a/plugins/New_GPG/src/icons.cpp b/plugins/New_GPG/src/icons.cpp new file mode 100644 index 0000000000..4c7b100023 --- /dev/null +++ b/plugins/New_GPG/src/icons.cpp @@ -0,0 +1,98 @@ +// Copyright © 2010-2012 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" + +extern HINSTANCE hInst; + +static IconItem iconList[] = +{ + { "Secured", "secured", IDI_SECURED }, + { "Unsecured", "unsecured", IDI_UNSECURED } +}; + +void InitIconLib() +{ + Icon_Register(hInst, szGPGModuleName, iconList, SIZEOF(iconList)); +} + +HICON IconLibGetIcon(const char* ident) +{ + return Skin_GetIcon(ident); +} + +void IconLibReleaseIcon(const char* ident) +{ + Skin_ReleaseIcon(ident); +} + +HANDLE IconLibHookIconsChanged(MIRANDAHOOK hook) +{ + return HookEvent(ME_SKIN2_ICONSCHANGED, hook); +} + +void setClistIcon(HANDLE hContact) +{ + bool enabled = isContactSecured(hContact); + extern HANDLE g_hCLIcon; + HANDLE hMC = hContact; + if(metaIsSubcontact(hContact)) + hMC = metaGetContact(hContact); + else if(metaIsProtoMetaContacts(hContact)) + hMC = metaGetContact(hContact); + const char *szIconId = (enabled) ? "secured" : NULL; + ExtraIcon_SetIcon(g_hCLIcon, hContact, szIconId); + if(hMC) + ExtraIcon_SetIcon(g_hCLIcon, hMC, szIconId); +} + +void setSrmmIcon(HANDLE h) +{ + HANDLE hContact = metaIsProtoMetaContacts(h)?metaGetMostOnline(h):h; + bool enabled = isContactSecured(hContact); + HANDLE hMC = NULL; + if(metaIsSubcontact(hContact)) + hMC = metaGetContact(hContact); + else if(metaIsProtoMetaContacts(hContact)) + hMC = metaGetContact(hContact); + + StatusIconData sid = { sizeof(sid) }; + sid.szModule = szGPGModuleName; + sid.hIcon = IconLibGetIcon("secured"); + sid.dwId = 1; + sid.flags = enabled ? 0 : MBF_HIDDEN; + Srmm_ModifyIcon(hContact, &sid); + if(hMC) + Srmm_ModifyIcon(hMC, &sid); + + sid.hIcon = IconLibGetIcon("unsecured"); + sid.dwId = 2; + sid.flags = enabled ? MBF_HIDDEN : 0; + Srmm_ModifyIcon(hContact, &sid); + if(hMC) + Srmm_ModifyIcon(hMC, &sid); +} + + +void RefreshContactListIcons() +{ + CallService(MS_CLUI_LISTBEGINREBUILD,0,0); + + for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) + setClistIcon(hContact); + + CallService(MS_CLUI_LISTENDREBUILD,0,0); +} -- cgit v1.2.3