1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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);
}
}
|