From f04d64869f3b1de54fb343f28f955584780001b8 Mon Sep 17 00:00:00 2001 From: mataes2007 Date: Sat, 26 Nov 2011 15:41:10 +0000 Subject: Project folders rename part 3 git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@215 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- SecureIM/loadicons.cpp | 104 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 SecureIM/loadicons.cpp (limited to 'SecureIM/loadicons.cpp') diff --git a/SecureIM/loadicons.cpp b/SecureIM/loadicons.cpp new file mode 100644 index 0000000..1b9d473 --- /dev/null +++ b/SecureIM/loadicons.cpp @@ -0,0 +1,104 @@ +#include "commonheaders.h" + + +HINSTANCE LoadIconsPack(const char* szIconsPack) +{ + HINSTANCE hNewIconInst = NULL; + WORD i; + + hNewIconInst = LoadLibrary(szIconsPack); + + if (hNewIconInst != NULL) + { + for(i=ID_FIRSTICON; i<=ID_LASTICON; i++) + if (LoadIcon(hNewIconInst, MAKEINTRESOURCE(i)) == NULL) + { + FreeLibrary(hNewIconInst); + hNewIconInst = NULL; + break; + } + } + return hNewIconInst; +} + + + +int ReloadIcons(WPARAM wParam, LPARAM lParam) +{ + HICON hIcon; + for (int i=0; icons[i].key; i++) { + hIcon = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)icons[i].name); + if(icons[i].tbl == TBL_IEC) + g_hIEC[icons[i].idx]=hIcon; + else + if(icons[i].tbl == TBL_ICO) + g_hICO[icons[i].idx]=hIcon; + else + if(icons[i].tbl == TBL_POP) + g_hPOP[icons[i].idx]=hIcon; + } + + return 0; +} + + +void InitIcons(void) +{ + HINSTANCE hNewIconInst = NULL; + + if( g_hFolders ) { + LPSTR pathname = (LPSTR) alloca(MAX_PATH); + FoldersGetCustomPathEx(g_hFolders, pathname, MAX_PATH, "icons\\", "secureim_icons.dll"); + if (hNewIconInst == NULL) + hNewIconInst = LoadIconsPack(pathname); + } + + if (hNewIconInst == NULL) + hNewIconInst = LoadIconsPack("icons\\secureim_icons.dll"); + + if (hNewIconInst == NULL) + hNewIconInst = LoadIconsPack("plugins\\secureim_icons.dll"); + + if (hNewIconInst == NULL) + g_hIconInst = g_hInst; + else + g_hIconInst = hNewIconInst; + + + SKINICONDESC sid; + memset(&sid,0,sizeof(sid)); + + sid.cbSize = sizeof(SKINICONDESC); + sid.pszSection = "SecureIM"; + + HICON hIcon; + for (int i=0; icons[i].key; i++) { + if(ServiceExists(MS_SKIN2_ADDICON)) { + sid.pszSection = icons[i].section; + sid.pszName = icons[i].name; + sid.pszDescription = icons[i].text; + sid.pszDefaultFile = "secureim_icons.dll"; + sid.iDefaultIndex = icons[i].key; + sid.hDefaultIcon = (HICON)LoadImage(g_hIconInst, MAKEINTRESOURCE(icons[i].key), IMAGE_ICON, 16, 16, LR_SHARED); + CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid); + hIcon = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)icons[i].name); + } + else { + hIcon = (HICON)LoadImage(g_hIconInst, MAKEINTRESOURCE(icons[i].key), IMAGE_ICON, 16, 16, LR_SHARED); + } + if(icons[i].tbl == TBL_IEC) + g_hIEC[icons[i].idx]=hIcon; + else + if(icons[i].tbl == TBL_ICO) + g_hICO[icons[i].idx]=hIcon; + else + if(icons[i].tbl == TBL_POP) + g_hPOP[icons[i].idx]=hIcon; + } + + if(ServiceExists(MS_SKIN2_ADDICON)) { + AddHookFunction(ME_SKIN2_ICONSCHANGED, ReloadIcons); + } +} + +// EOF -- cgit v1.2.3