From ba430f779e1f3692d563c48b3517915429bd393d Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 11 Apr 2013 08:04:17 +0000 Subject: status icons almost recovered git-svn-id: http://svn.miranda-ng.org/main/trunk@4420 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/TabSRMM/src/controls.cpp | 19 ++++++++----------- plugins/TabSRMM/src/generic_msghandlers.cpp | 25 +++++++++++-------------- 2 files changed, 19 insertions(+), 25 deletions(-) (limited to 'plugins/TabSRMM/src') 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); -- cgit v1.2.3