From bd820972afe24409e6b570adbc45f5dc0fa2385d Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 11 Apr 2013 07:08:40 +0000 Subject: SRMM icons to be unloaded automatically git-svn-id: http://svn.miranda-ng.org/main/trunk@4418 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- src/modules/srmm/statusicon.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/modules/srmm') diff --git a/src/modules/srmm/statusicon.cpp b/src/modules/srmm/statusicon.cpp index dcf055a88f..ca5f526fac 100644 --- a/src/modules/srmm/statusicon.cpp +++ b/src/modules/srmm/statusicon.cpp @@ -49,6 +49,8 @@ struct StatusIconMain : public MZeroedObject } StatusIconData sid; + + int hPangpack; OBJLIST arChildren; }; @@ -111,6 +113,7 @@ static INT_PTR AddStatusIcon(WPARAM wParam, LPARAM lParam) p = new StatusIconMain; memcpy(&p->sid, sid, sizeof(p->sid)); + p->hPangpack = (int)wParam; p->sid.szModule = mir_strdup(sid->szModule); p->sid.szTooltip = mir_strdup(sid->szTooltip); arIcons.insert(p); @@ -185,9 +188,18 @@ static int OnModulesLoaded(WPARAM, LPARAM) return 0; } +void KillModuleSrmmIcons(int hLangpack) +{ + for (int i=arIcons.getCount()-1; i >= 0; i--) { + StatusIconMain &p = arIcons[i]; + if (p.hPangpack == hLangpack) + arIcons.remove(i); + } +} + int LoadSrmmModule() { - CreateServiceFunction(MS_MSG_ADDICON, AddStatusIcon); + CreateServiceFunction("MessageAPI/AddIcon", AddStatusIcon); CreateServiceFunction(MS_MSG_REMOVEICON, RemoveStatusIcon); CreateServiceFunction(MS_MSG_MODIFYICON, ModifyStatusIcon); CreateServiceFunction(MS_MSG_GETNTHICON, GetNthIcon); -- cgit v1.2.3