summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2013-04-11 08:04:17 +0000
committerGeorge Hazan <george.hazan@gmail.com>2013-04-11 08:04:17 +0000
commitba430f779e1f3692d563c48b3517915429bd393d (patch)
tree9af1ee5dcb725e8b66c796b2c76795b4a00481d9 /plugins
parent5fe330d9ca85adf0df19f60839f5472d53e34f9c (diff)
status icons almost recovered
git-svn-id: http://svn.miranda-ng.org/main/trunk@4420 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins')
-rw-r--r--plugins/Scriver/src/statusicon.cpp7
-rw-r--r--plugins/TabSRMM/src/controls.cpp19
-rw-r--r--plugins/TabSRMM/src/generic_msghandlers.cpp25
3 files changed, 22 insertions, 29 deletions
diff --git a/plugins/Scriver/src/statusicon.cpp b/plugins/Scriver/src/statusicon.cpp
index a51cdd22d5..b6879370f3 100644
--- a/plugins/Scriver/src/statusicon.cpp
+++ b/plugins/Scriver/src/statusicon.cpp
@@ -30,9 +30,8 @@ void DrawStatusIcons(HANDLE hContact, HDC hDC, RECT r, int gap)
HICON hIcon;
int x = r.left;
- StatusIconData *si;
int nIcon = 0;
- while ((si = (StatusIconData*)CallService(MS_MSG_GETNTHICON, (WPARAM)hContact, nIcon++)) != NULL) {
+ while (StatusIconData *si = Srmm_GetNthIcon(hContact, nIcon++)) {
if ((si->flags & MBF_DISABLED) && si->hIconDisabled) hIcon = si->hIconDisabled;
else hIcon = si->hIcon;
@@ -46,7 +45,7 @@ void DrawStatusIcons(HANDLE hContact, HDC hDC, RECT r, int gap)
void CheckStatusIconClick(HANDLE hContact, HWND hwndFrom, POINT pt, RECT r, int gap, int click_flags)
{
unsigned int iconNum = (pt.x - r.left) / (GetSystemMetrics(SM_CXSMICON) + gap) + 1;
- StatusIconData *si = (StatusIconData*)CallService(MS_MSG_GETNTHICON, (WPARAM)hContact, iconNum);
+ StatusIconData *si = Srmm_GetNthIcon(hContact, iconNum);
if (si == NULL)
return;
@@ -92,7 +91,7 @@ int DeinitStatusIcons()
int GetStatusIconsCount(HANDLE hContact)
{
int nIcon = 0;
- while ( CallService(MS_MSG_GETNTHICON, (WPARAM)hContact, nIcon) != NULL)
+ while ( Srmm_GetNthIcon(hContact, nIcon) != NULL)
nIcon++;
return nIcon;
}
diff --git a/plugins/TabSRMM/src/controls.cpp b/plugins/TabSRMM/src/controls.cpp
index 5477979d29..6f0d9141a1 100644
--- a/plugins/TabSRMM/src/controls.cpp
+++ b/plugins/TabSRMM/src/controls.cpp
@@ -925,10 +925,9 @@ LONG_PTR CALLBACK StatusBarSubclassProc(HWND hWnd, UINT msg, WPARAM wParam, LPAR
{
int list_icons = 0;
struct TWindowData *dat = (struct TWindowData *)lParam;
- if (dat) {
- while ( CallService(MS_MSG_GETNTHICON, (WPARAM)dat->hContact, list_icons))
+ if (dat)
+ while ( Srmm_GetNthIcon(dat->hContact, list_icons))
list_icons++;
- }
SendMessage(hWnd, WM_SIZE, 0, 0);
@@ -1012,11 +1011,11 @@ LONG_PTR CALLBACK StatusBarSubclassProc(HWND hWnd, UINT msg, WPARAM wParam, LPAR
int gap = 2;
unsigned int iconNum = (pt.x - rc.left) / (PluginConfig.m_smcxicon + gap);
+ char *szModule = NULL, *szTooltip;
int list_icons = 0;
- StatusIconData *si, *clicked = NULL;
- while ((si = (StatusIconData*)CallService(MS_MSG_GETNTHICON, (WPARAM)dat->hContact, list_icons)) != NULL)
+ while (StatusIconData *sid = Srmm_GetNthIcon(dat->hContact, list_icons))
if (list_icons++ == iconNum)
- clicked = si;
+ szModule = sid->szModule, szTooltip = sid->szTooltip;
if ((int)iconNum == list_icons && pContainer) {
TCHAR wBuf[512];
@@ -1043,11 +1042,9 @@ LONG_PTR CALLBACK StatusBarSubclassProc(HWND hWnd, UINT msg, WPARAM wParam, LPAR
CallService(szTTService, (WPARAM)wBuf, (LPARAM)&ti);
tooltip_active = TRUE;
}
- else {
- if (clicked) {
- CallService("mToolTip/ShowTip", (WPARAM)clicked->szTooltip, (LPARAM)&ti);
- tooltip_active = TRUE;
- }
+ else if (szModule) {
+ CallService("mToolTip/ShowTip", (WPARAM)szTooltip, (LPARAM)&ti);
+ tooltip_active = TRUE;
}
}
SendMessage(hWnd, SB_GETRECT, 1, (LPARAM)&rc);
diff --git a/plugins/TabSRMM/src/generic_msghandlers.cpp b/plugins/TabSRMM/src/generic_msghandlers.cpp
index ad5ae42a4b..67d47edc1b 100644
--- a/plugins/TabSRMM/src/generic_msghandlers.cpp
+++ b/plugins/TabSRMM/src/generic_msghandlers.cpp
@@ -2039,9 +2039,8 @@ void DrawStatusIcons(struct TWindowData *dat, HDC hDC, RECT r, int gap)
SetBkMode(hDC, TRANSPARENT);
- StatusIconData *si;
int nIcon = 0;
- while ((si = (StatusIconData*)CallService(MS_MSG_GETNTHICON, (WPARAM)dat->hContact, nIcon++)) != NULL) {
+ while (StatusIconData *si = Srmm_GetNthIcon(dat->hContact, nIcon++)) {
if ((si->flags & MBF_DISABLED) && si->hIconDisabled)
hIcon = si->hIconDisabled;
else
@@ -2079,11 +2078,6 @@ void DrawStatusIcons(struct TWindowData *dat, HDC hDC, RECT r, int gap)
void SI_CheckStatusIconClick(struct TWindowData *dat, HWND hwndFrom, POINT pt, RECT r, int gap, int code)
{
- StatusIconClickData sicd;
-
- UINT iconNum = (pt.x - (r.left + 0)) / (PluginConfig.m_smcxicon + gap);
- UINT list_icons = 0;
-
if (dat && (code == NM_CLICK || code == NM_RCLICK)) {
POINT ptScreen;
@@ -2092,11 +2086,13 @@ void SI_CheckStatusIconClick(struct TWindowData *dat, HWND hwndFrom, POINT pt, R
return;
}
- StatusIconData *si, *clicked = NULL;
+ UINT iconNum = (pt.x - (r.left + 0)) / (PluginConfig.m_smcxicon + gap), list_icons = 0;
+ DWORD dwID;
+ char *szModule = NULL;
if (dat)
- while ((si = (StatusIconData*)CallService(MS_MSG_GETNTHICON, (WPARAM)dat->hContact, list_icons)) != NULL) {
+ while (StatusIconData *si = Srmm_GetNthIcon(dat->hContact, list_icons)) {
if (list_icons == iconNum)
- clicked = si;
+ szModule = si->szModule, dwID = si->dwId;
list_icons++;
}
@@ -2121,11 +2117,12 @@ void SI_CheckStatusIconClick(struct TWindowData *dat, HWND hwndFrom, POINT pt, R
PostMessage(PluginConfig.g_hwndHotkeyHandler, DM_TRAYICONNOTIFY, 101, WM_LBUTTONUP);
else if (code == NM_RCLICK)
PostMessage(PluginConfig.g_hwndHotkeyHandler, DM_TRAYICONNOTIFY, 101, WM_RBUTTONUP);
- } else if (clicked) {
- sicd.cbSize = sizeof(StatusIconClickData);
+ }
+ else if (szModule) {
+ StatusIconClickData sicd = { sizeof(sicd) };
GetCursorPos(&sicd.clickLocation);
- sicd.dwId = clicked->dwId;
- sicd.szModule = clicked->szModule;
+ sicd.dwId = dwID;
+ sicd.szModule = szModule;
sicd.flags = (code == NM_RCLICK ? MBCF_RIGHTBUTTON : 0);
NotifyEventHooks(hHookIconPressedEvt, (WPARAM)dat->hContact, (LPARAM)&sicd);
InvalidateRect(dat->pContainer->hwndStatus, NULL, TRUE);