summaryrefslogtreecommitdiff
path: root/plugins/TabSRMM
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2013-08-14 20:56:58 +0000
committerGeorge Hazan <george.hazan@gmail.com>2013-08-14 20:56:58 +0000
commitba56d9f794ef819de024b90f136ee35fd07cb4e8 (patch)
treec5ff1f7a7f2ec48fb7093dfbf8b9a8a83b6e71a2 /plugins/TabSRMM
parent853bdf0154a9ba862489c4c4b287d7db8d0145fe (diff)
cleaning popup-related junk
git-svn-id: http://svn.miranda-ng.org/main/trunk@5693 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/TabSRMM')
-rw-r--r--plugins/TabSRMM/src/chat/tools.cpp2
-rw-r--r--plugins/TabSRMM/src/eventpopups.cpp77
-rw-r--r--plugins/TabSRMM/src/nen.h3
-rw-r--r--plugins/TabSRMM/src/utils.cpp2
4 files changed, 30 insertions, 54 deletions
diff --git a/plugins/TabSRMM/src/chat/tools.cpp b/plugins/TabSRMM/src/chat/tools.cpp
index 393a92e111..71db16c4c9 100644
--- a/plugins/TabSRMM/src/chat/tools.cpp
+++ b/plugins/TabSRMM/src/chat/tools.cpp
@@ -158,7 +158,7 @@ static void TSAPI Chat_DismissPopup(const SESSION_INFO *si, HWND hwndPopup)
static INT_PTR CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
- SESSION_INFO *si = (SESSION_INFO*)CallService(MS_POPUP_GETPLUGINDATA, (WPARAM)hWnd, 0);;
+ SESSION_INFO *si = (SESSION_INFO*)PUGetPluginData(hWnd);
switch (message) {
case WM_COMMAND:
diff --git a/plugins/TabSRMM/src/eventpopups.cpp b/plugins/TabSRMM/src/eventpopups.cpp
index 0aaaa2952a..44cb28d69a 100644
--- a/plugins/TabSRMM/src/eventpopups.cpp
+++ b/plugins/TabSRMM/src/eventpopups.cpp
@@ -40,22 +40,13 @@
#include "commonheaders.h"
-typedef std::vector<PLUGIN_DATAT *>::iterator PopupListIterator;
-static std::vector<PLUGIN_DATAT *> PopupList;
+static LIST<PLUGIN_DATAT> arPopupList(10, HandleKeySortT);
-BOOL bWmNotify = TRUE;
+BOOL bWmNotify = TRUE;
-static const PLUGIN_DATAT* PU_GetByContact(const HANDLE hContact)
+static PLUGIN_DATAT* PU_GetByContact(const HANDLE hContact)
{
- if (PopupList.size()) {
- PopupListIterator it = PopupList.begin();
- while(it != PopupList.end()) {
- if ((*it)->hContact == hContact)
- return(*it);
- it++;
- }
- }
- return 0;
+ return arPopupList.find((PLUGIN_DATAT*)&hContact);
}
/**
@@ -65,22 +56,12 @@ static const PLUGIN_DATAT* PU_GetByContact(const HANDLE hContact)
*/
static void PU_CleanUp()
{
- if (PopupList.size()) {
- PopupListIterator it = PopupList.begin();
- while(it != PopupList.end()) {
- if (PopupList.size() == 0)
- break;
- if ((*it)->hContact == 0) {
- //_DebugTraceW(_T("found stale popup %s"), (*it)->eventData->szText);
- if ((*it)->eventData)
- mir_free((*it)->eventData);
- mir_free(*it);
- it = PopupList.erase(it);
- continue;
- }
- it++;
- }
+ for (int i=0; i < arPopupList.getCount(); i++) {
+ PLUGIN_DATAT *p = arPopupList[i];
+ mir_free(p->eventData);
+ mir_free(p);
}
+ arPopupList.destroy();
}
static void CheckForRemoveMask()
@@ -441,12 +422,9 @@ static int PopupAct(HWND hWnd, UINT mask, PLUGIN_DATAT* pdata)
PUDeletePopup(hWnd);
if (pdata->hContainer)
{
- FLASHWINFO fwi;
- fwi.cbSize = sizeof(fwi);
- fwi.uCount = 0;
+ FLASHWINFO fwi = { sizeof(fwi) };
fwi.dwFlags = FLASHW_STOP;
fwi.hwnd = pdata->hContainer;
- fwi.dwTimeout = 0;
FlashWindowEx(&fwi);
}
}
@@ -455,10 +433,9 @@ static int PopupAct(HWND hWnd, UINT mask, PLUGIN_DATAT* pdata)
static BOOL CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
- PLUGIN_DATAT* pdata = NULL;
-
- pdata = (PLUGIN_DATAT *)CallService(MS_POPUP_GETPLUGINDATA, (WPARAM)hWnd, (LPARAM)pdata);
- if (!pdata) return FALSE;
+ PLUGIN_DATAT *pdata = (PLUGIN_DATAT*)PUGetPluginData(hWnd);
+ if (pdata == NULL)
+ return FALSE;
switch (message) {
case WM_COMMAND:
@@ -510,7 +487,7 @@ static BOOL CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM
* @return
*/
-static TCHAR *ShortenPreview(DBEVENTINFO* dbe)
+static TCHAR* ShortenPreview(DBEVENTINFO* dbe)
{
bool fAddEllipsis = false;
int iPreviewLimit = nen_options.iLimitPreview;
@@ -534,9 +511,9 @@ static TCHAR *ShortenPreview(DBEVENTINFO* dbe)
return buf;
}
-static TCHAR *GetPreviewT(WORD eventType, DBEVENTINFO* dbe)
+static TCHAR* GetPreviewT(WORD eventType, DBEVENTINFO* dbe)
{
- char *pBlob = (char *)dbe->pBlob;
+ char *pBlob = (char *)dbe->pBlob;
switch (eventType) {
case EVENTTYPE_MESSAGE:
@@ -594,11 +571,11 @@ static int PopupUpdateT(HANDLE hContact, HANDLE hEvent)
if (hEvent == NULL)
return 0;
- if (pdata->pluginOptions->bShowHeaders) {
- mir_sntprintf(pdata->szHeader, SIZEOF(pdata->szHeader), _T("%s %d\n"),
- TranslateT("New messages: "), pdata->nrMerged + 1);
- pdata->szHeader[255] = 0;
- }
+ TCHAR szHeader[256];
+ if (pdata->pluginOptions->bShowHeaders)
+ mir_sntprintf(szHeader, SIZEOF(szHeader), _T("%s %d\n"), TranslateT("New messages: "), pdata->nrMerged + 1);
+ else
+ szHeader[0] = 0;
DBEVENTINFO dbe = { sizeof(dbe) };
if (pdata->pluginOptions->bPreview && hContact) {
@@ -625,11 +602,11 @@ static int PopupUpdateT(HANDLE hContact, HANDLE hEvent)
* for which there is enough space in the popup text
*/
- TCHAR lpzText[MAX_SECONDLINE] = _T("");
+ TCHAR lpzText[MAX_SECONDLINE];
int i, available = MAX_SECONDLINE - 1;
if (pdata->pluginOptions->bShowHeaders) {
- _tcsncpy(lpzText, pdata->szHeader, MAX_SECONDLINE);
- available -= lstrlen(pdata->szHeader);
+ _tcsncpy(lpzText, szHeader, MAX_SECONDLINE);
+ available -= lstrlen(szHeader);
}
for (i = pdata->nrMerged; i >= 0; i--) {
available -= lstrlen(pdata->eventData[i].szText);
@@ -657,8 +634,8 @@ static int PopupUpdateT(HANDLE hContact, HANDLE hEvent)
static int PopupShowT(NEN_OPTIONS *pluginOptions, HANDLE hContact, HANDLE hEvent, UINT eventType, HWND hContainer)
{
//there has to be a maximum number of popups shown at the same time
- if (PopupList.size() >= MAX_POPUPS)
- return(2);
+ if (arPopupList.getCount() >= MAX_POPUPS)
+ return 2;
if (!PluginConfig.g_PopupAvail)
return 0;
@@ -734,7 +711,7 @@ static int PopupShowT(NEN_OPTIONS *pluginOptions, HANDLE hContact, HANDLE hEvent
mir_free(pdata->eventData);
mir_free(pdata);
}
- else PopupList.push_back(pdata);
+ else arPopupList.insert(pdata);
if (dbe.pBlob)
mir_free(dbe.pBlob);
diff --git a/plugins/TabSRMM/src/nen.h b/plugins/TabSRMM/src/nen.h
index dfe3402bfa..36cdf03ab2 100644
--- a/plugins/TabSRMM/src/nen.h
+++ b/plugins/TabSRMM/src/nen.h
@@ -143,13 +143,12 @@ struct EVENT_DATAT
struct PLUGIN_DATAT
{
- UINT eventType;
HANDLE hContact;
+ UINT eventType;
NEN_OPTIONS *pluginOptions;
POPUPDATAT *pud;
HWND hWnd;
long iSeconds;
- TCHAR szHeader[256];
int nrMerged;
EVENT_DATAT *eventData;
int nrEventsAlloced;
diff --git a/plugins/TabSRMM/src/utils.cpp b/plugins/TabSRMM/src/utils.cpp
index bfce442532..d278132555 100644
--- a/plugins/TabSRMM/src/utils.cpp
+++ b/plugins/TabSRMM/src/utils.cpp
@@ -690,7 +690,7 @@ int Utils::RTFColorToIndex(int iCol)
*/
INT_PTR CALLBACK Utils::PopupDlgProcError(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
- HANDLE hContact = (HANDLE)CallService(MS_POPUP_GETPLUGINDATA, (WPARAM)hWnd, (LPARAM)&hContact);
+ HANDLE hContact = (HANDLE)PUGetPluginData(hWnd);
switch (message) {
case WM_COMMAND: