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/Yahoo/icolib.cpp | 86 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 protocols/Yahoo/icolib.cpp (limited to 'protocols/Yahoo/icolib.cpp') diff --git a/protocols/Yahoo/icolib.cpp b/protocols/Yahoo/icolib.cpp new file mode 100644 index 0000000000..7f87f2c890 --- /dev/null +++ b/protocols/Yahoo/icolib.cpp @@ -0,0 +1,86 @@ +/* + * $Id: util.c 3936 2006-10-02 06:58:19Z ghazan $ + * + * myYahoo Miranda Plugin + * + * Authors: Gennady Feldman (aka Gena01) + * Laurent Marechal (aka Peorth) + * + * This code is under GPL and is based on AIM, MSN and Miranda source code. + * I want to thank Robert Rainwater and George Hazan for their code and support + * and for answering some of my questions during development of this plugin. + */ +#include "yahoo.h" +#include +#include +#include "m_icolib.h" + +#include "resource.h" + +struct +{ + const char* szDescr; + const char* szName; + int defIconID; +} +static iconList[] = { + { LPGEN("Main"), "yahoo", IDI_YAHOO }, + { LPGEN("Mail"), "mail", IDI_INBOX }, + { LPGEN("Profile"), "profile", IDI_PROFILE }, + { LPGEN("Refresh"), "refresh", IDI_REFRESH }, + { LPGEN("Address Book"), "yab", IDI_YAB }, + { LPGEN("Set Status"), "set_status", IDI_SET_STATUS }, + { LPGEN("Calendar"), "calendar", IDI_CALENDAR } +}; + +HANDLE hIconLibItem[SIZEOF(iconList)]; + +void CYahooProto::IconsInit( void ) +{ + TCHAR szFile[MAX_PATH]; + char szSectionName[100]; + + mir_snprintf(szSectionName, sizeof(szSectionName), "%s/%s", LPGEN("Protocols"), LPGEN("YAHOO")); + GetModuleFileName(hInstance, szFile, SIZEOF(szFile)); + + SKINICONDESC sid = {0}; + sid.cbSize = sizeof(SKINICONDESC); + sid.ptszDefaultFile = szFile; + sid.pszSection = szSectionName; + sid.flags = SIDF_PATH_TCHAR; + + for ( int i = 0; i < SIZEOF(iconList); i++ ) { + char szSettingName[100]; + mir_snprintf( szSettingName, sizeof( szSettingName ), "YAHOO_%s", iconList[i].szName ); + + sid.pszName = szSettingName; + sid.pszDescription = (char* )iconList[i].szDescr; + sid.iDefaultIndex = -iconList[i].defIconID; + hIconLibItem[i] = (HANDLE)CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid); + } +} + +HICON CYahooProto::LoadIconEx( const char* name, bool big ) +{ + char szSettingName[100]; + + mir_snprintf( szSettingName, sizeof( szSettingName ), "YAHOO_%s", name ); + + return ( HICON )CallService( MS_SKIN2_GETICON, big, (LPARAM)szSettingName ); +} + +HANDLE CYahooProto::GetIconHandle(int iconId) +{ + for (unsigned i=0; i < SIZEOF(iconList); i++) + if (iconList[i].defIconID == iconId) + return hIconLibItem[i]; + + return NULL; +} + +void CYahooProto::ReleaseIconEx(const char* name, bool big) +{ + char szSettingName[100]; + mir_snprintf(szSettingName, sizeof(szSettingName), "YAHOO_%s", name); + YAHOO_CallService(big ? MS_SKIN2_RELEASEICONBIG : MS_SKIN2_RELEASEICON, 0, (LPARAM)szSettingName); +} -- cgit v1.2.3