From 48540940b6c28bb4378abfeb500ec45a625b37b6 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Tue, 15 May 2012 10:38:20 +0000 Subject: initial commit git-svn-id: http://svn.miranda-ng.org/main/trunk@2 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/IcqOscarJ/iconlib.cpp | 101 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 protocols/IcqOscarJ/iconlib.cpp (limited to 'protocols/IcqOscarJ/iconlib.cpp') diff --git a/protocols/IcqOscarJ/iconlib.cpp b/protocols/IcqOscarJ/iconlib.cpp new file mode 100644 index 0000000000..bc378bc094 --- /dev/null +++ b/protocols/IcqOscarJ/iconlib.cpp @@ -0,0 +1,101 @@ +// ---------------------------------------------------------------------------80 +// ICQ plugin for Miranda Instant Messenger +// ________________________________________ +// +// Copyright 2000-2001 Richard Hughes, Roland Rabien, Tristan Van de Vreede +// Copyright 2001-2002 Jon Keating, Richard Hughes +// Copyright 2002-2004 Martin berg, Sam Kothari, Robert Rainwater +// Copyright 2004-2010 Joe Kucera +// +// 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// ----------------------------------------------------------------------------- +// +// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/iconlib.cpp $ +// Revision : $Revision: 13324 $ +// Last change on : $Date: 2011-01-23 17:58:59 +0200 (Вс, 23 янв 2011) $ +// Last change by : $Author: borkra $ +// +// DESCRIPTION: +// +// Support for IcoLib plug-in +// +// ----------------------------------------------------------------------------- + +#include "icqoscar.h" +#include "m_icolib.h" + + +IcqIconHandle IconLibDefine(const char *desc, const char *section, const char *module, const char *ident, const TCHAR *def_file, int def_idx) +{ + SKINICONDESC sid = {0}; + + sid.cbSize = SKINICONDESC_SIZE; + sid.pwszSection = make_unicode_string(section); + sid.pwszDescription = make_unicode_string(desc); + sid.flags = SIDF_UNICODE | SIDF_PATH_TCHAR; + + char szName[MAX_PATH + 128]; + null_snprintf(szName, sizeof(szName), "%s_%s", module ? module : ICQ_PROTOCOL_NAME, ident); + sid.pszName = szName; + sid.ptszDefaultFile = (TCHAR*)def_file; + sid.iDefaultIndex = def_idx; + + IcqIconHandle hIcon = (IcqIconHandle)SAFE_MALLOC(sizeof(IcqIconHandle_s)); + hIcon->szName = null_strdup(sid.pszName); + hIcon->hIcoLib = (HANDLE)CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid); + + SAFE_FREE(&sid.pwszSection); + SAFE_FREE(&sid.pwszDescription); + + return hIcon; +} + + +void IconLibRemove(IcqIconHandle *phIcon) +{ + if (phIcon && *phIcon) + { + IcqIconHandle hIcon = *phIcon; + + CallService(MS_SKIN2_REMOVEICON, 0, (LPARAM)hIcon->szName); + SAFE_FREE(&hIcon->szName); + SAFE_FREE((void**)phIcon); + } +} + + +HANDLE IcqIconHandle_s::Handle() +{ + if (this) + return hIcoLib; + + return NULL; +} + + +HICON IcqIconHandle_s::GetIcon(bool big) +{ + if (this) + return (HICON)CallService(MS_SKIN2_GETICONBYHANDLE, big, (LPARAM)hIcoLib); + + return NULL; +} + +void IcqIconHandle_s::ReleaseIcon(bool big) +{ + CallService(big ? MS_SKIN2_RELEASEICONBIG : MS_SKIN2_RELEASEICON, 0, (LPARAM)szName); +} + -- cgit v1.2.3