From 25c5793e0be2d223cd8c3f562f574546cff81c30 Mon Sep 17 00:00:00 2001 From: George Hazan <ghazan@miranda.im> Date: Fri, 20 Apr 2018 13:35:23 +0300 Subject: StdMsg: code cleaning --- src/core/stdmsg/src/msgs.h | 65 ++++++++++++-- src/core/stdmsg/src/stdafx.h | 56 ------------ src/core/stdmsg/src/tabs.cpp | 203 ++++++++++++++++++++++--------------------- 3 files changed, 162 insertions(+), 162 deletions(-) (limited to 'src/core') diff --git a/src/core/stdmsg/src/msgs.h b/src/core/stdmsg/src/msgs.h index a926188e0c..2c14795074 100644 --- a/src/core/stdmsg/src/msgs.h +++ b/src/core/stdmsg/src/msgs.h @@ -22,9 +22,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifndef SRMM_MSGS_H #define SRMM_MSGS_H -#include <richedit.h> -#include <richole.h> - #define DM_REMAKELOG (WM_USER+11) #define HM_DBEVENTADDED (WM_USER+12) #define DM_CASCADENEWWINDOW (WM_USER+13) @@ -57,16 +54,16 @@ protected: CMsgDialog(int idDialog, SESSION_INFO *si = nullptr); +public: virtual void CloseTab() override; + + __forceinline SESSION_INFO* getChat() const { return m_si; } }; class CSrmmWindow : public CMsgDialog { - friend class CTabbedWindow; typedef CMsgDialog CSuper; - static LRESULT CALLBACK TabSubclassProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - virtual LRESULT WndProc_Log(UINT msg, WPARAM wParam, LPARAM lParam) override; virtual LRESULT WndProc_Message(UINT msg, WPARAM wParam, LPARAM lParam) override; @@ -141,6 +138,62 @@ public: } }; +///////////////////////////////////////////////////////////////////////////////////////// + +#define GC_ADDTAB (WM_USER+200) +#define GC_REMOVETAB (WM_USER+201) +#define GC_DROPPEDTAB (WM_USER+202) +#define GC_RENAMETAB (WM_USER+203) + +class CChatRoomDlg : public CMsgDialog +{ + typedef CMsgDialog CSuper; + friend class CTabbedWindow; + + static INT_PTR CALLBACK FilterWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); + + virtual LRESULT WndProc_Log(UINT msg, WPARAM wParam, LPARAM lParam) override; + virtual LRESULT WndProc_Message(UINT msg, WPARAM wParam, LPARAM lParam) override; + virtual LRESULT WndProc_Nicklist(UINT msg, WPARAM wParam, LPARAM lParam) override; + + wchar_t szTabSave[20]; + + CCtrlButton m_btnOk; + CSplitter m_splitterX, m_splitterY; + CTabbedWindow *m_pOwner; + + int m_iSplitterX, m_iSplitterY; + + void onActivate(void); + +public: + CChatRoomDlg(CTabbedWindow*, SESSION_INFO*); + + virtual void OnInitDialog() override; + virtual void OnDestroy() override; + + virtual INT_PTR DlgProc(UINT msg, WPARAM wParam, LPARAM lParam) override; + virtual int Resizer(UTILRESIZECONTROL *urc) override; + + virtual void LoadSettings() override; + virtual void RedrawLog() override; + virtual void StreamInEvents(LOGINFO *lin, bool bRedraw) override; + virtual void ScrollToBottom() override; + virtual void ShowFilterMenu() override; + virtual void UpdateNickList() override; + virtual void UpdateOptions() override; + virtual void UpdateStatusBar() override; + virtual void UpdateTitle() override; + + void onClick_Ok(CCtrlButton*); + + void onClick_Filter(CCtrlButton*); + void onClick_NickList(CCtrlButton*); + + void onSplitterX(CSplitter*); + void onSplitterY(CSplitter*); +}; + INT_PTR CALLBACK ErrorDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); int DbEventIsForMsgWindow(DBEVENTINFO *dbei); int DbEventIsShown(DBEVENTINFO *dbei); diff --git a/src/core/stdmsg/src/stdafx.h b/src/core/stdmsg/src/stdafx.h index 2705dc8261..d9d52bc165 100644 --- a/src/core/stdmsg/src/stdafx.h +++ b/src/core/stdmsg/src/stdafx.h @@ -179,59 +179,3 @@ CTabbedWindow* GetContainer(); void TB_SaveSession(SESSION_INFO *si); #pragma comment(lib,"comctl32.lib") - -///////////////////////////////////////////////////////////////////////////////////////// - -#define GC_ADDTAB (WM_USER+200) -#define GC_REMOVETAB (WM_USER+201) -#define GC_DROPPEDTAB (WM_USER+202) -#define GC_RENAMETAB (WM_USER+203) - -class CChatRoomDlg : public CMsgDialog -{ - typedef CMsgDialog CSuper; - friend class CTabbedWindow; - - static INT_PTR CALLBACK FilterWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); - - virtual LRESULT WndProc_Log(UINT msg, WPARAM wParam, LPARAM lParam) override; - virtual LRESULT WndProc_Message(UINT msg, WPARAM wParam, LPARAM lParam) override; - virtual LRESULT WndProc_Nicklist(UINT msg, WPARAM wParam, LPARAM lParam) override; - - wchar_t szTabSave[20]; - - CCtrlButton m_btnOk; - CSplitter m_splitterX, m_splitterY; - CTabbedWindow *m_pOwner; - - int m_iSplitterX, m_iSplitterY; - - void onActivate(void); - -public: - CChatRoomDlg(CTabbedWindow*, SESSION_INFO*); - - virtual void OnInitDialog() override; - virtual void OnDestroy() override; - - virtual INT_PTR DlgProc(UINT msg, WPARAM wParam, LPARAM lParam) override; - virtual int Resizer(UTILRESIZECONTROL *urc) override; - - virtual void LoadSettings() override; - virtual void RedrawLog() override; - virtual void StreamInEvents(LOGINFO *lin, bool bRedraw) override; - virtual void ScrollToBottom() override; - virtual void ShowFilterMenu() override; - virtual void UpdateNickList() override; - virtual void UpdateOptions() override; - virtual void UpdateStatusBar() override; - virtual void UpdateTitle() override; - - void onClick_Ok(CCtrlButton*); - - void onClick_Filter(CCtrlButton*); - void onClick_NickList(CCtrlButton*); - - void onSplitterX(CSplitter*); - void onSplitterY(CSplitter*); -}; diff --git a/src/core/stdmsg/src/tabs.cpp b/src/core/stdmsg/src/tabs.cpp index 8d16a92200..f25439dd63 100644 --- a/src/core/stdmsg/src/tabs.cpp +++ b/src/core/stdmsg/src/tabs.cpp @@ -61,6 +61,108 @@ CTabbedWindow* GetContainer() ///////////////////////////////////////////////////////////////////////////////////////// +static LRESULT CALLBACK TabSubclassProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) +{ + CTabbedWindow *pOwner = (CTabbedWindow*)GetWindowLongPtr(hwnd, GWLP_USERDATA); + TCHITTESTINFO tci = {}; + + static bool bDragging = false; + static int iBeginIndex = 0; + switch (msg) { + case WM_LBUTTONDOWN: + tci.pt.x = (short)LOWORD(GetMessagePos()); + tci.pt.y = (short)HIWORD(GetMessagePos()); + if (DragDetect(hwnd, tci.pt) && TabCtrl_GetItemCount(hwnd) > 1) { + tci.flags = TCHT_ONITEM; + ScreenToClient(hwnd, &tci.pt); + int idx = TabCtrl_HitTest(hwnd, &tci); + if (idx != -1) { + CMsgDialog *pDlg = (CMsgDialog*)pOwner->m_tab.GetNthPage(idx); + if (pDlg) { + SESSION_INFO *si = pDlg->getChat(); + if (si != nullptr) { + bool bOnline = db_get_w(si->hContact, si->pszModule, "Status", ID_STATUS_OFFLINE) == ID_STATUS_ONLINE; + MODULEINFO *mi = pci->MM_FindModule(si->pszModule); + bDragging = true; + iBeginIndex = idx; + ImageList_BeginDrag(hIconsList, bOnline ? mi->OnlineIconIndex : mi->OfflineIconIndex, 8, 8); + ImageList_DragEnter(hwnd, tci.pt.x, tci.pt.y); + SetCapture(hwnd); + } + } + return TRUE; + } + } + else pOwner->TabClicked(); + break; + + case WM_CAPTURECHANGED: + bDragging = false; + ImageList_DragLeave(hwnd); + ImageList_EndDrag(); + break; + + case WM_MOUSEMOVE: + if (bDragging) { + tci.pt.x = (short)LOWORD(GetMessagePos()); + tci.pt.y = (short)HIWORD(GetMessagePos()); + ScreenToClient(hwnd, &tci.pt); + ImageList_DragMove(tci.pt.x, tci.pt.y); + } + break; + + case WM_LBUTTONUP: + if (bDragging && ReleaseCapture()) { + tci.pt.x = (short)LOWORD(GetMessagePos()); + tci.pt.y = (short)HIWORD(GetMessagePos()); + tci.flags = TCHT_ONITEM; + bDragging = false; + ImageList_DragLeave(hwnd); + ImageList_EndDrag(); + + ScreenToClient(hwnd, &tci.pt); + int idx = TabCtrl_HitTest(hwnd, &tci); + if (idx != -1 && idx != iBeginIndex) + SendMessage(GetParent(hwnd), GC_DROPPEDTAB, idx, iBeginIndex); + } + break; + + case WM_LBUTTONDBLCLK: + if (g_Settings.bTabCloseOnDblClick) { + tci.pt.x = (short)LOWORD(GetMessagePos()); + tci.pt.y = (short)HIWORD(GetMessagePos()); + ScreenToClient(hwnd, &tci.pt); + + tci.flags = TCHT_ONITEM; + int idx = TabCtrl_HitTest(hwnd, &tci); + if (idx != -1) { + CMsgDialog *pDlg = (CMsgDialog*)pOwner->m_tab.GetNthPage(idx); + if (pDlg) + pDlg->CloseTab(); + } + } + break; + + case WM_MBUTTONUP: + tci.pt.x = (short)LOWORD(GetMessagePos()); + tci.pt.y = (short)HIWORD(GetMessagePos()); + tci.flags = TCHT_ONITEM; + + ScreenToClient(hwnd, &tci.pt); + int idx = TabCtrl_HitTest(hwnd, &tci); + if (idx != -1) { + CMsgDialog *pDlg = (CMsgDialog*)pOwner->m_tab.GetNthPage(idx); + if (pDlg) + pDlg->CloseTab(); + } + break; + } + + return mir_callNextSubclass(hwnd, TabSubclassProc, msg, wParam, lParam); +} + +///////////////////////////////////////////////////////////////////////////////////////// + CTabbedWindow::CTabbedWindow() : CDlgBase(g_hInst, IDD_CONTAINER), m_tab(this, IDC_TAB), @@ -72,7 +174,7 @@ CTabbedWindow::CTabbedWindow() : void CTabbedWindow::OnInitDialog() { SetWindowLongPtr(m_tab.GetHwnd(), GWLP_USERDATA, LPARAM(this)); - mir_subclassWindow(m_tab.GetHwnd(), &CSrmmWindow::TabSubclassProc); + mir_subclassWindow(m_tab.GetHwnd(), ::TabSubclassProc); m_hwndStatus = CreateWindowEx(0, STATUSCLASSNAME, nullptr, WS_CHILD | WS_VISIBLE | SBT_TOOLTIPS | SBARS_SIZEGRIP, 0, 0, 0, 0, m_hwnd, nullptr, g_hInst, nullptr); SendMessage(m_hwndStatus, SB_SETMINHEIGHT, GetSystemMetrics(SM_CYSMICON), 0); @@ -319,105 +421,6 @@ void CTabbedWindow::TabClicked() ///////////////////////////////////////////////////////////////////////////////////////// -LRESULT CALLBACK CSrmmWindow::TabSubclassProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - CTabbedWindow *pOwner = (CTabbedWindow*)GetWindowLongPtr(hwnd, GWLP_USERDATA); - TCHITTESTINFO tci = {}; - int idx; - - static bool bDragging = false; - static int iBeginIndex = 0; - switch (msg) { - case WM_LBUTTONDOWN: - tci.pt.x = (short)LOWORD(GetMessagePos()); - tci.pt.y = (short)HIWORD(GetMessagePos()); - if (DragDetect(hwnd, tci.pt) && TabCtrl_GetItemCount(hwnd) > 1) { - tci.flags = TCHT_ONITEM; - ScreenToClient(hwnd, &tci.pt); - idx = TabCtrl_HitTest(hwnd, &tci); - if (idx != -1) { - CSrmmWindow *pDlg = (CSrmmWindow*)pOwner->m_tab.GetNthPage(idx); - if (pDlg) { - SESSION_INFO *si = pDlg->m_si; - if (si != nullptr) { - bool bOnline = db_get_w(si->hContact, si->pszModule, "Status", ID_STATUS_OFFLINE) == ID_STATUS_ONLINE; - MODULEINFO *mi = pci->MM_FindModule(si->pszModule); - bDragging = true; - iBeginIndex = idx; - ImageList_BeginDrag(hIconsList, bOnline ? mi->OnlineIconIndex : mi->OfflineIconIndex, 8, 8); - ImageList_DragEnter(hwnd, tci.pt.x, tci.pt.y); - SetCapture(hwnd); - } - } - return TRUE; - } - } - else pOwner->TabClicked(); - break; - - case WM_CAPTURECHANGED: - bDragging = false; - ImageList_DragLeave(hwnd); - ImageList_EndDrag(); - break; - - case WM_MOUSEMOVE: - if (bDragging) { - tci.pt.x = (short)LOWORD(GetMessagePos()); - tci.pt.y = (short)HIWORD(GetMessagePos()); - ScreenToClient(hwnd, &tci.pt); - ImageList_DragMove(tci.pt.x, tci.pt.y); - } - break; - - case WM_LBUTTONUP: - if (bDragging && ReleaseCapture()) { - tci.pt.x = (short)LOWORD(GetMessagePos()); - tci.pt.y = (short)HIWORD(GetMessagePos()); - tci.flags = TCHT_ONITEM; - bDragging = false; - ImageList_DragLeave(hwnd); - ImageList_EndDrag(); - - ScreenToClient(hwnd, &tci.pt); - idx = TabCtrl_HitTest(hwnd, &tci); - if (idx != -1 && idx != iBeginIndex) - SendMessage(GetParent(hwnd), GC_DROPPEDTAB, idx, iBeginIndex); - } - break; - - case WM_LBUTTONDBLCLK: - tci.pt.x = (short)LOWORD(GetMessagePos()); - tci.pt.y = (short)HIWORD(GetMessagePos()); - tci.flags = TCHT_ONITEM; - - ScreenToClient(hwnd, &tci.pt); - idx = TabCtrl_HitTest(hwnd, &tci); - if (idx != -1 && g_Settings.bTabCloseOnDblClick) { - CSrmmBaseDialog *pDlg = (CSrmmBaseDialog*)pOwner->m_tab.GetNthPage(idx); - if (pDlg) - pDlg->CloseTab(); - } - break; - - case WM_MBUTTONUP: - tci.pt.x = (short)LOWORD(GetMessagePos()); - tci.pt.y = (short)HIWORD(GetMessagePos()); - tci.flags = TCHT_ONITEM; - - ScreenToClient(hwnd, &tci.pt); - idx = TabCtrl_HitTest(hwnd, &tci); - if (idx != -1) { - CSrmmBaseDialog *pDlg = (CSrmmBaseDialog*)pOwner->m_tab.GetNthPage(idx); - if (pDlg) - pDlg->CloseTab(); - } - break; - } - - return mir_callNextSubclass(hwnd, TabSubclassProc, msg, wParam, lParam); -} - INT_PTR CTabbedWindow::DlgProc(UINT msg, WPARAM wParam, LPARAM lParam) { int idx; -- cgit v1.2.3