diff options
Diffstat (limited to 'Plugins/extraicons/extraicons.cpp')
-rw-r--r-- | Plugins/extraicons/extraicons.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Plugins/extraicons/extraicons.cpp b/Plugins/extraicons/extraicons.cpp index 8d43f0d..2e3a636 100644 --- a/Plugins/extraicons/extraicons.cpp +++ b/Plugins/extraicons/extraicons.cpp @@ -52,6 +52,7 @@ int PreShutdown(WPARAM wParam, LPARAM lParam); int IconsChanged(WPARAM wParam, LPARAM lParam);
int ClistExtraListRebuild(WPARAM wParam, LPARAM lParam);
int ClistExtraImageApply(WPARAM wParam, LPARAM lParam);
+int ClistExtraClick(WPARAM wParam, LPARAM lParam);
int ExtraIcon_Register(WPARAM wParam, LPARAM lParam);
int ExtraIcon_SetIcon(WPARAM wParam, LPARAM lParam);
@@ -95,6 +96,7 @@ extern "C" int __declspec(dllexport) Load(PLUGINLINK *link) hHooks.push_back(HookEvent(ME_SYSTEM_PRESHUTDOWN, &PreShutdown));
hHooks.push_back(HookEvent(ME_CLIST_EXTRA_LIST_REBUILD, &ClistExtraListRebuild));
hHooks.push_back(HookEvent(ME_CLIST_EXTRA_IMAGE_APPLY, &ClistExtraImageApply));
+ hHooks.push_back(HookEvent(ME_CLIST_EXTRA_CLICK, &ClistExtraClick));
// Services
@@ -352,3 +354,23 @@ int ClistExtraImageApply(WPARAM wParam, LPARAM lParam) return 0;
}
+
+int ClistExtraClick(WPARAM wParam, LPARAM lParam)
+{
+ HANDLE hContact = (HANDLE) wParam;
+ if (hContact == NULL)
+ return 0;
+
+ int extra = (int) lParam;
+
+ for (unsigned int i = 0; i < extraIcons.size(); ++i)
+ {
+ if (ConvertToClistSlot(extraIcons[i]->getSlot()) == extra)
+ {
+ extraIcons[i]->onClick(hContact);
+ break;
+ }
+ }
+
+ return 0;
+}
|