summaryrefslogtreecommitdiff
path: root/metacontacts/icons.c
diff options
context:
space:
mode:
authorsje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2006-11-01 14:37:48 +0000
committersje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2006-11-01 14:37:48 +0000
commit200aa11bbd25189047b388b88b3fc1f50b785d7c (patch)
treee79c54c87855599ca27f4681b6b898173960202c /metacontacts/icons.c
parent10a3bfa53858f75fa64833ce5d860a14a756c38a (diff)
git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@8 4f64403b-2f21-0410-a795-97e2b3489a10
Diffstat (limited to 'metacontacts/icons.c')
-rw-r--r--metacontacts/icons.c92
1 files changed, 92 insertions, 0 deletions
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);
+ }
+}