summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2018-06-17 21:30:32 +0300
committerGeorge Hazan <ghazan@miranda.im>2018-06-17 21:30:32 +0300
commit5d1adca6a83289d3dcc23bc0af82193da69d9d96 (patch)
tree8ee7d5758389c54a02a5e1d6725d1b9b5cd70364
parentee8fcfa82fa32a1b9a9a8123bf0e220c06779c0c (diff)
GetTabWindow applied to all another places
-rw-r--r--plugins/TabSRMM/src/chat_window.cpp12
-rw-r--r--plugins/TabSRMM/src/container.cpp27
-rw-r--r--plugins/TabSRMM/src/functions.h2
-rw-r--r--plugins/TabSRMM/src/msgdialog.cpp14
-rw-r--r--plugins/TabSRMM/src/msgs.cpp5
-rw-r--r--plugins/TabSRMM/src/sidebar.cpp9
-rw-r--r--plugins/TabSRMM/src/tabctrl.cpp43
-rw-r--r--plugins/TabSRMM/src/userprefs.cpp29
8 files changed, 44 insertions, 97 deletions
diff --git a/plugins/TabSRMM/src/chat_window.cpp b/plugins/TabSRMM/src/chat_window.cpp
index 6dd8682774..6fdf4e0cd4 100644
--- a/plugins/TabSRMM/src/chat_window.cpp
+++ b/plugins/TabSRMM/src/chat_window.cpp
@@ -771,15 +771,12 @@ void CChatRoomDlg::CloseTab()
i++;
TabCtrl_SetCurSel(m_hwndParent, i);
- TCITEM item = {};
- item.mask = TCIF_PARAM;
- TabCtrl_GetItem(m_hwndParent, i, &item); // retrieve dialog hwnd for the now active tab...
- m_pContainer->m_hwndActive = (HWND)item.lParam;
+ m_pContainer->m_hwndActive = GetTabWindow(m_hwndParent, i);
RECT rc;
SendMessage(m_pContainer->m_hwnd, DM_QUERYCLIENTAREA, 0, (LPARAM)&rc);
SetWindowPos(m_pContainer->m_hwndActive, HWND_TOP, rc.left, rc.top, (rc.right - rc.left), (rc.bottom - rc.top), SWP_SHOWWINDOW);
- ShowWindow((HWND)item.lParam, SW_SHOW);
+ ShowWindow(m_pContainer->m_hwndActive, SW_SHOW);
SetForegroundWindow(m_pContainer->m_hwndActive);
SetFocus(m_pContainer->m_hwndActive);
SendMessage(m_pContainer->m_hwnd, WM_SIZE, 0, 0);
@@ -2458,11 +2455,8 @@ void ShowRoom(TContainerData *pContainer, SESSION_INFO *si)
pContainer->iTabIndex = iCount;
if (iCount > 0) {
- TCITEM item = {};
for (int i = iCount - 1; i >= 0; i--) {
- item.mask = TCIF_PARAM;
- TabCtrl_GetItem(hwndTab, i, &item);
- HWND hwnd = (HWND)item.lParam;
+ HWND hwnd = GetTabWindow(hwndTab, i);
CSrmmWindow *dat = (CSrmmWindow*)GetWindowLongPtr(hwnd, GWLP_USERDATA);
if (dat) {
int relPos = M.GetDword(dat->m_hContact, "tabindex", i * 100);
diff --git a/plugins/TabSRMM/src/container.cpp b/plugins/TabSRMM/src/container.cpp
index cb0f86dc4f..b1a30a8193 100644
--- a/plugins/TabSRMM/src/container.cpp
+++ b/plugins/TabSRMM/src/container.cpp
@@ -41,7 +41,7 @@ static TContainerData* TSAPI RemoveContainerFromList(TContainerData*);
static bool fForceOverlayIcons = false;
-static HWND GetTabWindow(HWND hwndTab, int i)
+HWND GetTabWindow(HWND hwndTab, int i)
{
if (i < 0)
return nullptr;
@@ -1942,24 +1942,14 @@ int TSAPI GetTabIndexFromHWND(HWND hwndTab, HWND hwnd)
{
int iItems = TabCtrl_GetItemCount(hwndTab);
- TCITEM item = {};
- item.mask = TCIF_PARAM;
for (int i = 0; i < iItems; i++) {
- TabCtrl_GetItem(hwndTab, i, &item);
- if ((HWND)item.lParam == hwnd)
+ HWND pDlg = GetTabWindow(hwndTab, i);
+ if (pDlg == hwnd)
return i;
}
return -1;
}
-HWND TSAPI GetHWNDFromTabIndex(HWND hwndTab, int idx)
-{
- TCITEM item = {};
- item.mask = TCIF_PARAM;
- TabCtrl_GetItem(hwndTab, idx, &item);
- return (HWND)item.lParam;
-}
-
// activates the tab belonging to the given client HWND (handle of the actual
// message window.
@@ -1981,7 +1971,7 @@ int TSAPI ActivateTabFromHWND(HWND hwndTab, HWND hwnd)
void TSAPI CloseOtherTabs(HWND hwndTab, CTabBaseDlg &dat)
{
for (int idxt = 0; idxt < dat.m_pContainer->iChilds;) {
- HWND otherTab = GetHWNDFromTabIndex(hwndTab, idxt);
+ HWND otherTab = GetTabWindow(hwndTab, idxt);
if (otherTab != nullptr && otherTab != dat.GetHwnd())
SendMessage(otherTab, WM_CLOSE, 1, 0);
else
@@ -2307,14 +2297,11 @@ void TSAPI BroadCastContainer(const TContainerData *pContainer, UINT message, WP
return;
HWND hwndTab = GetDlgItem(pContainer->m_hwnd, IDC_MSGTABS);
- TCITEM item = {};
- item.mask = TCIF_PARAM;
-
int nCount = TabCtrl_GetItemCount(hwndTab);
for (int i = 0; i < nCount; i++) {
- TabCtrl_GetItem(hwndTab, i, &item);
- if (IsWindow((HWND)item.lParam))
- SendMessage((HWND)item.lParam, message, wParam, lParam);
+ HWND hDlg = GetTabWindow(hwndTab, i);
+ if (IsWindow(hDlg))
+ SendMessage(hDlg, message, wParam, lParam);
}
}
diff --git a/plugins/TabSRMM/src/functions.h b/plugins/TabSRMM/src/functions.h
index 1027d21c3b..5b1c88200d 100644
--- a/plugins/TabSRMM/src/functions.h
+++ b/plugins/TabSRMM/src/functions.h
@@ -80,7 +80,7 @@ TContainerData* TSAPI CreateContainer(const wchar_t *name, int iTemp, MCONTACT h
TContainerData* TSAPI FindContainerByName(const wchar_t *name);
int TSAPI GetTabIndexFromHWND(HWND hwndTab, HWND hwnd);
-HWND TSAPI GetHWNDFromTabIndex(HWND hwndTab, int idx);
+HWND TSAPI GetTabWindow(HWND hwndTab, int idx);
int TSAPI GetTabItemFromMouse(HWND hwndTab, POINT *pt);
void TSAPI CloseOtherTabs(HWND hwndTab, CTabBaseDlg &dat);
int TSAPI ActivateTabFromHWND(HWND hwndTab, HWND hwnd);
diff --git a/plugins/TabSRMM/src/msgdialog.cpp b/plugins/TabSRMM/src/msgdialog.cpp
index 8929da899f..8711846b61 100644
--- a/plugins/TabSRMM/src/msgdialog.cpp
+++ b/plugins/TabSRMM/src/msgdialog.cpp
@@ -1141,12 +1141,9 @@ void CSrmmWindow::onClick_Ok(CCtrlButton*)
int tabCount = TabCtrl_GetItemCount(m_hwndParent);
ptrA szFromStream(m_message.GetRichTextRtf(!m_SendFormat));
- TCITEM tci = {};
- tci.mask = TCIF_PARAM;
for (int i = 0; i < tabCount; i++) {
- TabCtrl_GetItem(m_hwndParent, i, &tci);
// get the contact from the tabs lparam which hopefully is the tabs hwnd so we can get its userdata.... hopefully
- HWND contacthwnd = (HWND)tci.lParam;
+ HWND contacthwnd = GetTabWindow(m_hwndParent, i);
if (IsWindow(contacthwnd)) {
// if the contact hwnd is the current contact then ignore it and let the normal code deal with the msg
if (contacthwnd != m_hwnd) {
@@ -3013,15 +3010,12 @@ INT_PTR CSrmmWindow::DlgProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
i++;
TabCtrl_SetCurSel(m_hwndParent, i);
- TCITEM item = {};
- item.mask = TCIF_PARAM;
- TabCtrl_GetItem(m_hwndParent, i, &item); // retrieve dialog hwnd for the now active tab...
-
- m_pContainer->m_hwndActive = (HWND)item.lParam;
+ // retrieve dialog hwnd for the now active tab...
+ m_pContainer->m_hwndActive = GetTabWindow(m_hwndParent, i);
SendMessage(m_pContainer->m_hwnd, DM_QUERYCLIENTAREA, 0, (LPARAM)&rc);
SetWindowPos(m_pContainer->m_hwndActive, HWND_TOP, rc.left, rc.top, (rc.right - rc.left), (rc.bottom - rc.top), SWP_SHOWWINDOW);
- ShowWindow((HWND)item.lParam, SW_SHOW);
+ ShowWindow(m_pContainer->m_hwndActive, SW_SHOW);
SetForegroundWindow(m_pContainer->m_hwndActive);
SetFocus(m_pContainer->m_hwndActive);
}
diff --git a/plugins/TabSRMM/src/msgs.cpp b/plugins/TabSRMM/src/msgs.cpp
index 2f659e5233..ac2a69d626 100644
--- a/plugins/TabSRMM/src/msgs.cpp
+++ b/plugins/TabSRMM/src/msgs.cpp
@@ -617,11 +617,8 @@ HWND TSAPI CreateNewTabForContact(TContainerData *pContainer, MCONTACT hContact,
pContainer->iTabIndex = iCount;
if (iCount > 0) {
- TCITEM item = {};
for (int i = iCount - 1; i >= 0; i--) {
- item.mask = TCIF_PARAM;
- TabCtrl_GetItem(hwndTab, i, &item);
- HWND hwnd = (HWND)item.lParam;
+ HWND hwnd = GetTabWindow(hwndTab, i);
CSrmmWindow *dat = (CSrmmWindow*)GetWindowLongPtr(hwnd, GWLP_USERDATA);
if (dat) {
int relPos = M.GetDword(dat->m_hContact, "tabindex", i * 100);
diff --git a/plugins/TabSRMM/src/sidebar.cpp b/plugins/TabSRMM/src/sidebar.cpp
index cf64ff1ad1..27a7e69825 100644
--- a/plugins/TabSRMM/src/sidebar.cpp
+++ b/plugins/TabSRMM/src/sidebar.cpp
@@ -496,17 +496,14 @@ void CSideBar::populateAll()
int iItems = (int)TabCtrl_GetItemCount(hwndTab);
- TCITEM item = {};
- item.mask = TCIF_PARAM;
-
m_iTopButtons = 0;
for (int i = 0; i < iItems; i++) {
- TabCtrl_GetItem(hwndTab, i, &item);
- if (item.lParam == 0 || !IsWindow((HWND)item.lParam))
+ HWND hDlg = GetTabWindow(hwndTab, i);
+ if (hDlg == 0 || !IsWindow(hDlg))
continue;
- CSrmmWindow *dat = (CSrmmWindow*)::GetWindowLongPtr((HWND)item.lParam, GWLP_USERDATA);
+ CSrmmWindow *dat = (CSrmmWindow*)::GetWindowLongPtr(hDlg, GWLP_USERDATA);
if (dat == nullptr)
continue;
diff --git a/plugins/TabSRMM/src/tabctrl.cpp b/plugins/TabSRMM/src/tabctrl.cpp
index 87098af94a..c8b6566781 100644
--- a/plugins/TabSRMM/src/tabctrl.cpp
+++ b/plugins/TabSRMM/src/tabctrl.cpp
@@ -611,9 +611,6 @@ static void PaintWorker(HWND hwnd, TabControlData *tabdat)
InvalidateRect(hwnd, nullptr, FALSE);
tabdat->iHoveredTabIndex = hotItem;
- TCITEM tci = {};
- tci.mask = TCIF_PARAM;
-
tabdat->fAeroTabs = (CSkin::m_fAeroSkinsValid && (isAero || PluginConfig.m_fillColor)) ? TRUE : FALSE;
tabdat->fCloseButton = (tabdat->pContainer->dwFlagsEx & TCF_CLOSEBUTTON ? TRUE : FALSE);
tabdat->helperDat = nullptr;
@@ -846,10 +843,9 @@ page_done:
if (i == iActive)
continue;
- TabCtrl_GetItem(hwnd, i, &tci);
CSrmmWindow *dat = nullptr;
- if (tci.lParam)
- dat = (CSrmmWindow*)GetWindowLongPtr((HWND)tci.lParam, GWLP_USERDATA);
+ if (HWND hDlg = GetTabWindow(hwnd, i))
+ dat = (CSrmmWindow*)GetWindowLongPtr(hDlg, GWLP_USERDATA);
TabCtrl_GetItemRect(hwnd, i, &rcItem);
if (!bClassicDraw && uiBottom) {
rcItem.top -= PluginConfig.tabConfig.m_bottomAdjust;
@@ -881,9 +877,8 @@ page_done:
int nHint = 0;
rcItem = rctActive;
- TabCtrl_GetItem(hwnd, iActive, &tci);
- if (tci.lParam)
- dat = (CSrmmWindow*)GetWindowLongPtr((HWND)tci.lParam, GWLP_USERDATA);
+ if (HWND hDlg = GetTabWindow(hwnd, iActive))
+ dat = (CSrmmWindow*)GetWindowLongPtr(hDlg, GWLP_USERDATA);
if (!bClassicDraw && !(dwStyle & TCS_BUTTONS)) {
InflateRect(&rcItem, 2, 2);
@@ -1110,14 +1105,12 @@ static LRESULT CALLBACK TabControlSubclassProc(HWND hwnd, UINT msg, WPARAM wPara
if (DragDetect(hwnd, pt) && TabCtrl_GetItemCount(hwnd) > 1) {
int i = GetTabItemFromMouse(hwnd, &pt);
if (i != -1) {
- TCITEM tc;
- tc.mask = TCIF_PARAM;
- TabCtrl_GetItem(hwnd, i, &tc);
- CSrmmWindow *dat = (CSrmmWindow*)GetWindowLongPtr((HWND)tc.lParam, GWLP_USERDATA);
+ HWND hDlg = GetTabWindow(hwnd, i);
+ CSrmmWindow *dat = (CSrmmWindow*)GetWindowLongPtr(hDlg, GWLP_USERDATA);
if (dat) {
tabdat->bDragging = TRUE;
tabdat->iBeginIndex = i;
- tabdat->hwndDrag = (HWND)tc.lParam;
+ tabdat->hwndDrag = hDlg;
tabdat->dragDat = dat;
tabdat->fSavePos = TRUE;
tabdat->himlDrag = ImageList_Create(16, 16, ILC_MASK | ILC_COLOR32, 1, 0);
@@ -1137,15 +1130,12 @@ static LRESULT CALLBACK TabControlSubclassProc(HWND hwnd, UINT msg, WPARAM wPara
if (DragDetect(hwnd, pt) && TabCtrl_GetItemCount(hwnd) > 1) {
int i = GetTabItemFromMouse(hwnd, &pt);
if (i != -1) {
- TCITEM tc;
- tc.mask = TCIF_PARAM;
- TabCtrl_GetItem(hwnd, i, &tc);
-
- CSrmmWindow *dat = (CSrmmWindow*)GetWindowLongPtr((HWND)tc.lParam, GWLP_USERDATA);
+ HWND hDlg = GetTabWindow(hwnd, i);
+ CSrmmWindow *dat = (CSrmmWindow*)GetWindowLongPtr(hDlg, GWLP_USERDATA);
if (dat) {
tabdat->bDragging = TRUE;
tabdat->iBeginIndex = i;
- tabdat->hwndDrag = (HWND)tc.lParam;
+ tabdat->hwndDrag = hDlg;
tabdat->dragDat = dat;
tabdat->himlDrag = ImageList_Create(16, 16, ILC_MASK | ILC_COLOR32, 1, 0);
tabdat->fSavePos = FALSE;
@@ -1257,18 +1247,13 @@ static LRESULT CALLBACK TabControlSubclassProc(HWND hwnd, UINT msg, WPARAM wPara
ti.cbSize = sizeof(ti);
ti.ptCursor = pt;
- TCITEM item = {};
- item.mask = TCIF_PARAM;
int nItem = GetTabItemFromMouse(hwnd, &pt);
if (nItem >= 0 && nItem < TabCtrl_GetItemCount(hwnd)) {
- TabCtrl_GetItem(hwnd, nItem, &item);
-
- /*
- * get the message window data for the session to which this tab item belongs
- */
+ // get the message window data for the session to which this tab item belongs
+ HWND hDlg = GetTabWindow(hwnd, nItem);
CSrmmWindow *dat = nullptr;
- if (IsWindow((HWND)item.lParam) && item.lParam != 0)
- dat = (CSrmmWindow*)GetWindowLongPtr((HWND)item.lParam, GWLP_USERDATA);
+ if (IsWindow(hDlg) && hDlg != 0)
+ dat = (CSrmmWindow*)GetWindowLongPtr(hDlg, GWLP_USERDATA);
if (dat) {
tabdat->fTipActive = TRUE;
ti.isGroup = 0;
diff --git a/plugins/TabSRMM/src/userprefs.cpp b/plugins/TabSRMM/src/userprefs.cpp
index 65494b062b..7b6e0c214c 100644
--- a/plugins/TabSRMM/src/userprefs.cpp
+++ b/plugins/TabSRMM/src/userprefs.cpp
@@ -400,7 +400,7 @@ static INT_PTR CALLBACK DlgProcUserPrefsLogOptions(HWND hwndDlg, UINT msg, WPARA
INT_PTR CALLBACK DlgProcUserPrefsFrame(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
MCONTACT hContact = (MCONTACT)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
- TCITEM tci;
+ HWND hwndTab = GetDlgItem(hwndDlg, IDC_OPTIONSTAB);
switch (msg) {
case WM_INITDIALOG:
@@ -418,23 +418,23 @@ INT_PTR CALLBACK DlgProcUserPrefsFrame(HWND hwndDlg, UINT msg, WPARAM wParam, LP
mir_snwprintf(szBuffer, TranslateT("Set messaging options for %s"), Clist_GetContactDisplayName(hContact));
SetWindowText(hwndDlg, szBuffer);
- memset(&tci, 0, sizeof(tci));
+ TCITEM tci;
tci.mask = TCIF_PARAM | TCIF_TEXT;
tci.lParam = (LPARAM)CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_USERPREFS), hwndDlg, DlgProcUserPrefs, hContact);
tci.pszText = TranslateT("General");
- TabCtrl_InsertItem(GetDlgItem(hwndDlg, IDC_OPTIONSTAB), 0, &tci);
+ TabCtrl_InsertItem(hwndTab, 0, &tci);
MoveWindow((HWND)tci.lParam, 6, DPISCALEY_S(32), rcClient.right - 12, rcClient.bottom - DPISCALEY_S(80), 1);
ShowWindow((HWND)tci.lParam, SW_SHOW);
EnableThemeDialogTexture((HWND)tci.lParam, ETDT_ENABLETAB);
tci.lParam = (LPARAM)CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_USERPREFS1), hwndDlg, DlgProcUserPrefsLogOptions, hContact);
tci.pszText = TranslateT("Message Log");
- TabCtrl_InsertItem(GetDlgItem(hwndDlg, IDC_OPTIONSTAB), 1, &tci);
+ TabCtrl_InsertItem(hwndTab, 1, &tci);
MoveWindow((HWND)tci.lParam, 6, DPISCALEY_S(32), rcClient.right - 12, rcClient.bottom - DPISCALEY_S(80), 1);
ShowWindow((HWND)tci.lParam, SW_HIDE);
EnableThemeDialogTexture((HWND)tci.lParam, ETDT_ENABLETAB);
}
- TabCtrl_SetCurSel(GetDlgItem(hwndDlg, IDC_OPTIONSTAB), 0);
+ TabCtrl_SetCurSel(hwndTab, 0);
ShowWindow(hwndDlg, SW_SHOW);
return TRUE;
@@ -443,15 +443,11 @@ INT_PTR CALLBACK DlgProcUserPrefsFrame(HWND hwndDlg, UINT msg, WPARAM wParam, LP
case IDC_OPTIONSTAB:
switch (((LPNMHDR)lParam)->code) {
case TCN_SELCHANGING:
- tci.mask = TCIF_PARAM;
- TabCtrl_GetItem(GetDlgItem(hwndDlg, IDC_OPTIONSTAB), TabCtrl_GetCurSel(GetDlgItem(hwndDlg, IDC_OPTIONSTAB)), &tci);
- ShowWindow((HWND)tci.lParam, SW_HIDE);
+ ShowWindow(GetTabWindow(hwndTab, TabCtrl_GetCurSel(hwndTab)), SW_HIDE);
break;
case TCN_SELCHANGE:
- tci.mask = TCIF_PARAM;
- TabCtrl_GetItem(GetDlgItem(hwndDlg, IDC_OPTIONSTAB), TabCtrl_GetCurSel(GetDlgItem(hwndDlg, IDC_OPTIONSTAB)), &tci);
- ShowWindow((HWND)tci.lParam, SW_SHOW);
+ ShowWindow(GetTabWindow(hwndTab, TabCtrl_GetCurSel(hwndTab)), SW_SHOW);
break;
}
break;
@@ -466,15 +462,12 @@ INT_PTR CALLBACK DlgProcUserPrefsFrame(HWND hwndDlg, UINT msg, WPARAM wParam, LP
case IDOK:
DWORD dwActionToTake = 0; // child pages request which action to take
- HWND hwnd = Srmm_FindWindow(hContact);
+ HWND hwnd = Srmm_FindWindow(hContact);
- tci.mask = TCIF_PARAM;
+ int count = TabCtrl_GetItemCount(hwndTab);
+ for (int i = 0; i < count; i++)
+ SendMessage(GetTabWindow(hwndTab, i), WM_COMMAND, WM_USER + 100, (LPARAM)&dwActionToTake);
- int count = TabCtrl_GetItemCount(GetDlgItem(hwndDlg, IDC_OPTIONSTAB));
- for (int i = 0; i < count; i++) {
- TabCtrl_GetItem(GetDlgItem(hwndDlg, IDC_OPTIONSTAB), i, &tci);
- SendMessage((HWND)tci.lParam, WM_COMMAND, WM_USER + 100, (LPARAM)&dwActionToTake);
- }
if (hwnd) {
CSrmmWindow *dat = (CSrmmWindow*)GetWindowLongPtr(hwnd, GWLP_USERDATA);
if (dat) {