From b6669f0ee3361891e9807e5c734bf9121e9cfb06 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 26 Sep 2023 12:20:03 +0300 Subject: SRMM options update unification --- src/core/stdmsg/src/msgdialog.cpp | 20 +++++-------- src/core/stdmsg/src/msgoptions.cpp | 6 ++-- src/core/stdmsg/src/msgs.cpp | 2 +- src/core/stdmsg/src/msgs.h | 4 +-- src/mir_app/src/chat.h | 2 ++ src/mir_app/src/mir_app.def | 1 + src/mir_app/src/mir_app64.def | 1 + src/mir_app/src/srmm_base.cpp | 4 +++ src/mir_app/src/srmm_util.cpp | 61 +++++++++++++++++++++----------------- 9 files changed, 55 insertions(+), 46 deletions(-) (limited to 'src') diff --git a/src/core/stdmsg/src/msgdialog.cpp b/src/core/stdmsg/src/msgdialog.cpp index aef0cd9910..7794154a64 100644 --- a/src/core/stdmsg/src/msgdialog.cpp +++ b/src/core/stdmsg/src/msgdialog.cpp @@ -135,7 +135,7 @@ bool CMsgDialog::OnInitDialog() m_iSplitterY = g_plugin.getDword(g_plugin.bSavePerContact ? m_hContact : 0, "splitterPos", m_minEditInit.bottom - m_minEditInit.top); m_message.SendMsg(EM_SETEVENTMASK, 0, ENM_MOUSEEVENTS | ENM_CHANGE); - OnOptionsApplied(false); + OnOptionsApplied(); UpdateAvatar(); if (isChat()) { @@ -535,14 +535,6 @@ INT_PTR CMsgDialog::DlgProc(UINT uMsg, WPARAM wParam, LPARAM lParam) UpdateAvatar(); break; - case DM_OPTIONSAPPLIED: - OnOptionsApplied(wParam != 0); - if (isChat()) - RedrawLog(); - else - RemakeLog(); - break; - case DM_NEWTIMEZONE: m_hTimeZone = TimeZone_CreateByContact(m_hContact, nullptr, TZF_KNOWNONLY); m_wMinute = 61; @@ -1080,7 +1072,7 @@ void CMsgDialog::TabAutoComplete() ///////////////////////////////////////////////////////////////////////////////////////// -void CMsgDialog::OnOptionsApplied(bool bUpdateAvatar) +void CMsgDialog::OnOptionsApplied() { CustomButtonData *cbd; for (int i = 0; cbd = Srmm_GetNthButton(i); i++) { @@ -1120,8 +1112,7 @@ void CMsgDialog::OnOptionsApplied(bool bUpdateAvatar) if (CallProtoService(m_szProto, PS_GETCAPS, PFLAGNUM_4, 0) & PF4_AVATARS) m_limitAvatarH = g_plugin.bLimitAvatarHeight ? g_plugin.iAvatarHeight : 0; - if (bUpdateAvatar) - UpdateAvatar(); + UpdateAvatar(); InvalidateRect(m_message.GetHwnd(), nullptr, FALSE); @@ -1139,6 +1130,11 @@ void CMsgDialog::OnOptionsApplied(bool bUpdateAvatar) m_pLog->Clear(); FixTabIcons(); + + if (isChat()) + RedrawLog(); + else + RemakeLog(); } void CMsgDialog::onSplitterX(CSplitter *pSplitter) diff --git a/src/core/stdmsg/src/msgoptions.cpp b/src/core/stdmsg/src/msgoptions.cpp index 4209ce01ea..5fa17a9e4e 100644 --- a/src/core/stdmsg/src/msgoptions.cpp +++ b/src/core/stdmsg/src/msgoptions.cpp @@ -253,7 +253,7 @@ public: msgTimeout = 5000; g_plugin.msgTimeout = msgTimeout; - Srmm_Broadcast(DM_OPTIONSAPPLIED, TRUE, 0); + Srmm_ApplyOptions(); return true; } @@ -370,7 +370,7 @@ public: FreeMsgLogIcons(); LoadMsgLogIcons(); - Srmm_Broadcast(DM_OPTIONSAPPLIED, TRUE, 0); + Srmm_ApplyOptions(); return true; } @@ -484,7 +484,7 @@ public: bool OnApply() override { SaveList(); - Srmm_Broadcast(DM_OPTIONSAPPLIED, TRUE, 0); + Srmm_ApplyOptions(); return true; } diff --git a/src/core/stdmsg/src/msgs.cpp b/src/core/stdmsg/src/msgs.cpp index 3abfeab03a..d64ec7b2c6 100644 --- a/src/core/stdmsg/src/msgs.cpp +++ b/src/core/stdmsg/src/msgs.cpp @@ -449,7 +449,7 @@ void CMsgDialog::SetButtonsPos() static int FontsChanged(WPARAM, LPARAM) { - Srmm_Broadcast(DM_OPTIONSAPPLIED, TRUE, 0); + Srmm_ApplyOptions(); return 0; } diff --git a/src/core/stdmsg/src/msgs.h b/src/core/stdmsg/src/msgs.h index 51662e669d..98670d6dee 100644 --- a/src/core/stdmsg/src/msgs.h +++ b/src/core/stdmsg/src/msgs.h @@ -22,7 +22,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifndef SRMM_MSGS_H #define SRMM_MSGS_H -#define DM_OPTIONSAPPLIED (WM_USER+14) #define DM_UPDATETITLE (WM_USER+16) #define DM_NEWTIMEZONE (WM_USER+18) #define HM_AVATARACK (WM_USER+28) @@ -108,8 +107,6 @@ public: void onClick_Filter(CCtrlButton *); void onClick_NickList(CCtrlButton *); - void OnOptionsApplied(bool bUpdateAvatar); - void UpdateReadChars(void); __forceinline MCONTACT getActiveContact() const { @@ -142,6 +139,7 @@ public: bool GetFirstEvent() override; bool IsActive() const override; void LoadSettings() override; + void OnOptionsApplied() override; void RemakeLog() override; void SetStatusText(const wchar_t *, HICON) override; void ShowFilterMenu() override; diff --git a/src/mir_app/src/chat.h b/src/mir_app/src/chat.h index 6be46ab3ba..6ba50be865 100644 --- a/src/mir_app/src/chat.h +++ b/src/mir_app/src/chat.h @@ -30,6 +30,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define STREAMSTAGE_TAIL 2 #define STREAMSTAGE_STOP 3 +#define DM_OPTIONSAPPLIED (WM_USER+14) + void Srmm_CreateToolbarIcons(HWND hwndDlg, int flags); void Srmm_ProcessToolbarHotkey(MCONTACT hContact, INT_PTR iButtonFrom, HWND hwndDlg); diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def index c76a0cdf00..8a939f15af 100644 --- a/src/mir_app/src/mir_app.def +++ b/src/mir_app/src/mir_app.def @@ -905,3 +905,4 @@ Clist_GroupSaveExpanded @1003 NONAME ?Srmm_Quote@@YG?AV?$CMStringT@_WV?$ChTraitsCRT@_W@@@@PB_WH@Z @1022 NONAME ?SetMessageText@CSrmmBaseDialog@@QAEXPB_W_N@Z @1023 NONAME ?GetInput@CSrmmBaseDialog@@QBEPAUHWND__@@XZ @1024 NONAME +?Srmm_ApplyOptions@@YGXXZ @1025 NONAME diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def index 81d7d3ce08..f36d40f651 100644 --- a/src/mir_app/src/mir_app64.def +++ b/src/mir_app/src/mir_app64.def @@ -905,3 +905,4 @@ Clist_GroupSaveExpanded @1003 NONAME ?Srmm_Quote@@YA?AV?$CMStringT@_WV?$ChTraitsCRT@_W@@@@PEB_WH@Z @1022 NONAME ?SetMessageText@CSrmmBaseDialog@@QEAAXPEB_W_N@Z @1023 NONAME ?GetInput@CSrmmBaseDialog@@QEBAPEAUHWND__@@XZ @1024 NONAME +?Srmm_ApplyOptions@@YAXXZ @1025 NONAME diff --git a/src/mir_app/src/srmm_base.cpp b/src/mir_app/src/srmm_base.cpp index dfe6b6007e..abd760fa97 100644 --- a/src/mir_app/src/srmm_base.cpp +++ b/src/mir_app/src/srmm_base.cpp @@ -567,6 +567,10 @@ void CSrmmBaseDialog::OnDestroy() INT_PTR CSrmmBaseDialog::DlgProc(UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { + case DM_OPTIONSAPPLIED: + OnOptionsApplied(); + return 0; + case WM_COMMAND: if (!lParam && Clist_MenuProcessCommand(LOWORD(wParam), MPCF_CONTACTMENU, m_hContact)) return 0; diff --git a/src/mir_app/src/srmm_util.cpp b/src/mir_app/src/srmm_util.cpp index dd69502e34..4af2be4c17 100644 --- a/src/mir_app/src/srmm_util.cpp +++ b/src/mir_app/src/srmm_util.cpp @@ -29,25 +29,26 @@ const char *g_pszHotkeySection; ///////////////////////////////////////////////////////////////////////////////////////// -MIR_APP_DLL(int) Srmm_GetWindowData(MCONTACT hContact, MessageWindowData &mwd) +MIR_APP_DLL(void) Srmm_AddEvent(MCONTACT hContact, MEVENT hDbEvent) { - if (hContact == 0) - return 1; + wchar_t toolTip[256]; + mir_snwprintf(toolTip, TranslateT("Message from %s"), Clist_GetContactDisplayName(hContact)); - HWND hwnd = WindowList_Find(g_hWindowList, hContact); - if (hwnd == nullptr) - return 1; + CLISTEVENT cle = {}; + cle.hContact = hContact; + cle.hDbEvent = hDbEvent; + cle.flags = CLEF_UNICODE; + cle.hIcon = Skin_LoadIcon(SKINICON_EVENT_MESSAGE); + cle.pszService = MS_MSG_READMESSAGE; + cle.szTooltip.w = toolTip; + g_clistApi.pfnAddEvent(&cle); +} - mwd.hwndWindow = hwnd; - mwd.pDlg = (CSrmmBaseDialog*)GetWindowLongPtr(hwnd, GWLP_USERDATA); - mwd.uState = MSG_WINDOW_STATE_EXISTS; - if (IsWindowVisible(hwnd)) - mwd.uState |= MSG_WINDOW_STATE_VISIBLE; - if (GetForegroundWindow() == hwnd) - mwd.uState |= MSG_WINDOW_STATE_FOCUS; - if (IsIconic(hwnd)) - mwd.uState |= MSG_WINDOW_STATE_ICONIC; - return 0; +///////////////////////////////////////////////////////////////////////////////////////// + +MIR_APP_DLL(void) Srmm_ApplyOptions() +{ + Srmm_Broadcast(DM_OPTIONSAPPLIED, 0, 0); } ///////////////////////////////////////////////////////////////////////////////////////// @@ -89,19 +90,25 @@ MIR_APP_DLL(CMsgDialog*) Srmm_FindDialog(MCONTACT hContact) ///////////////////////////////////////////////////////////////////////////////////////// -MIR_APP_DLL(void) Srmm_AddEvent(MCONTACT hContact, MEVENT hDbEvent) +MIR_APP_DLL(int) Srmm_GetWindowData(MCONTACT hContact, MessageWindowData &mwd) { - wchar_t toolTip[256]; - mir_snwprintf(toolTip, TranslateT("Message from %s"), Clist_GetContactDisplayName(hContact)); + if (hContact == 0) + return 1; - CLISTEVENT cle = {}; - cle.hContact = hContact; - cle.hDbEvent = hDbEvent; - cle.flags = CLEF_UNICODE; - cle.hIcon = Skin_LoadIcon(SKINICON_EVENT_MESSAGE); - cle.pszService = MS_MSG_READMESSAGE; - cle.szTooltip.w = toolTip; - g_clistApi.pfnAddEvent(&cle); + HWND hwnd = WindowList_Find(g_hWindowList, hContact); + if (hwnd == nullptr) + return 1; + + mwd.hwndWindow = hwnd; + mwd.pDlg = (CSrmmBaseDialog *)GetWindowLongPtr(hwnd, GWLP_USERDATA); + mwd.uState = MSG_WINDOW_STATE_EXISTS; + if (IsWindowVisible(hwnd)) + mwd.uState |= MSG_WINDOW_STATE_VISIBLE; + if (GetForegroundWindow() == hwnd) + mwd.uState |= MSG_WINDOW_STATE_FOCUS; + if (IsIconic(hwnd)) + mwd.uState |= MSG_WINDOW_STATE_ICONIC; + return 0; } ///////////////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3