summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2023-09-26 12:20:03 +0300
committerGeorge Hazan <george.hazan@gmail.com>2023-09-26 12:20:03 +0300
commitb6669f0ee3361891e9807e5c734bf9121e9cfb06 (patch)
tree89f4662ee0f9b743126b213354820fd1671a5657 /src
parent82228dfaa3f7c387ff1f42e1698c4d68fe8e1335 (diff)
SRMM options update unification
Diffstat (limited to 'src')
-rw-r--r--src/core/stdmsg/src/msgdialog.cpp20
-rw-r--r--src/core/stdmsg/src/msgoptions.cpp6
-rw-r--r--src/core/stdmsg/src/msgs.cpp2
-rw-r--r--src/core/stdmsg/src/msgs.h4
-rw-r--r--src/mir_app/src/chat.h2
-rw-r--r--src/mir_app/src/mir_app.def1
-rw-r--r--src/mir_app/src/mir_app64.def1
-rw-r--r--src/mir_app/src/srmm_base.cpp4
-rw-r--r--src/mir_app/src/srmm_util.cpp61
9 files changed, 55 insertions, 46 deletions
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;
}
/////////////////////////////////////////////////////////////////////////////////////////