From 200aa11bbd25189047b388b88b3fc1f50b785d7c Mon Sep 17 00:00:00 2001 From: sje Date: Wed, 1 Nov 2006 14:37:48 +0000 Subject: git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@8 4f64403b-2f21-0410-a795-97e2b3489a10 --- metacontacts/icons.c | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 metacontacts/icons.c (limited to 'metacontacts/icons.c') diff --git a/metacontacts/icons.c b/metacontacts/icons.c new file mode 100644 index 0000000..e94eff1 --- /dev/null +++ b/metacontacts/icons.c @@ -0,0 +1,92 @@ +#include "metacontacts.h" + +HICON hIconToggleOn, hIconToggleOff, hIconConvert, hIconAdd, hIconEdit, hIconDefault, hIconRemove; +HANDLE hIcoLibIconsChanged = 0; + +int ReloadIcons(WPARAM wParam, LPARAM lParam) { + hIconToggleOff = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)"mc_off"); + hIconToggleOn = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)"mc_on"); + hIconConvert = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)"mc_convert"); + hIconAdd = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)"mc_add"); + hIconEdit = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)"mc_edit"); + hIconDefault = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)"mc_default"); + hIconRemove = (HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)"mc_remove"); + + { + // fix menu icons + CLISTMENUITEM menu; + ZeroMemory(&menu,sizeof(menu)); + menu.cbSize=sizeof(menu); + menu.flags = CMIM_ICON; + + if(!Meta_IsEnabled()) menu.hIcon=hIconToggleOn; + else menu.hIcon=hIconToggleOff; + + CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hMenuOnOff, (LPARAM)&menu); + + menu.hIcon = hIconConvert; + CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hMenuConvert, (LPARAM)&menu); + menu.hIcon = hIconAdd; + CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hMenuAdd, (LPARAM)&menu); + menu.hIcon = hIconEdit; + CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hMenuEdit, (LPARAM)&menu); + menu.hIcon = hIconDefault; + CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hMenuDefault, (LPARAM)&menu); + menu.hIcon = hIconRemove; + CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hMenuDelete, (LPARAM)&menu); + } + return 0; +} + +void InitIcons() { + if(ServiceExists(MS_SKIN2_ADDICON)) { + SKINICONDESC2 sid = {0}; + + sid.cbSize = sizeof(SKINICONDESC2); + sid.pszSection = "MetaContacts"; + +#define AddIcon(x,y,z) \ + sid.pszDescription = Translate(x); \ + sid.pszName = y; \ + sid.pszDefaultFile = "MetaContacts.dll"; \ + sid.hDefaultIcon = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(z), IMAGE_ICON, 0, 0, 0); \ + CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid); \ + sid.iDefaultIndex++; + + AddIcon("Toggle Off", "mc_off", IDI_MCMENUOFF); + AddIcon("Toggle On", "mc_on", IDI_MCMENU); + AddIcon("Convert to MetaContact", "mc_convert", IDI_MCCONVERT); + AddIcon("Add to Existing", "mc_add", IDI_MCADD); + AddIcon("Edit", "mc_edit", IDI_MCEDIT); + AddIcon("Set to Default", "mc_default", IDI_MCSETDEFAULT); + AddIcon("Remove", "mc_remove", IDI_MCREMOVE); + +#undef AddIcon + + ReloadIcons(0, 0); + + hIcoLibIconsChanged = HookEvent(ME_SKIN2_ICONSCHANGED, ReloadIcons); + } else { + hIconToggleOff = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_MCMENUOFF), IMAGE_ICON, 0, 0, 0);//LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS ); + hIconToggleOn = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_MCMENU), IMAGE_ICON, 0, 0, 0);//LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS ); + hIconConvert = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_MCCONVERT), IMAGE_ICON, 0, 0, 0);//LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS ); + hIconAdd = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_MCADD), IMAGE_ICON, 0, 0, 0);//LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS ); + hIconEdit = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_MCEDIT), IMAGE_ICON, 0, 0, 0);//LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS ); + hIconDefault = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_MCSETDEFAULT), IMAGE_ICON, 0, 0, 0);//LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS ); + hIconRemove = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_MCREMOVE), IMAGE_ICON, 0, 0, 0);//LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS ); + } + +} + +void DeinitIcons() { + if(hIcoLibIconsChanged) UnhookEvent(hIcoLibIconsChanged); + else { + DestroyIcon(hIconToggleOff); + DestroyIcon(hIconToggleOn); + DestroyIcon(hIconConvert); + DestroyIcon(hIconAdd); + DestroyIcon(hIconEdit); + DestroyIcon(hIconDefault); + DestroyIcon(hIconRemove); + } +} -- cgit v1.2.3