summaryrefslogtreecommitdiff
path: root/src/mir_app
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2022-03-26 15:41:27 +0300
committerGeorge Hazan <ghazan@miranda.im>2022-03-26 15:41:27 +0300
commit90c87cac6ad51642d1dd9d9a2400450e667e1da7 (patch)
tree4cd32bab4504fdc183090bc4d4e5433735a61fe2 /src/mir_app
parent5a0b6ba945cbbf543a5b8c6169fc3b2ee03e740f (diff)
fixes #3057 (Унифицировать настройку горячих клавиш для отправки сообщений)
Diffstat (limited to 'src/mir_app')
-rw-r--r--src/mir_app/src/chat.h2
-rw-r--r--src/mir_app/src/hotkeys.cpp2
-rw-r--r--src/mir_app/src/miranda.h2
-rw-r--r--src/mir_app/src/srmm_base.cpp12
-rw-r--r--src/mir_app/src/srmm_log.cpp2
-rw-r--r--src/mir_app/src/srmm_util.cpp24
6 files changed, 42 insertions, 2 deletions
diff --git a/src/mir_app/src/chat.h b/src/mir_app/src/chat.h
index 5020adcb92..8be9224d3d 100644
--- a/src/mir_app/src/chat.h
+++ b/src/mir_app/src/chat.h
@@ -47,6 +47,8 @@ extern GlobalLogSettingsBase *g_Settings;
extern CMOption<bool> g_bChatTrayInactive, g_bChatPopupInactive;
+extern const char *g_pszHotkeySection;
+
// log.c
void LoadMsgLogBitmaps(void);
void FreeMsgLogBitmaps(void);
diff --git a/src/mir_app/src/hotkeys.cpp b/src/mir_app/src/hotkeys.cpp
index 8400697910..da631b75ae 100644
--- a/src/mir_app/src/hotkeys.cpp
+++ b/src/mir_app/src/hotkeys.cpp
@@ -154,7 +154,7 @@ MIR_APP_DLL(int) Hotkey_Register(const HOTKEYDESC *desc, HPLUGIN pPlugin)
p->Enabled = !db_get_b(0, DBMODULENAME "Off", p->pszName, 0);
}
- p->pszService = desc->pszService ? mir_strdup(desc->pszService) : nullptr;
+ p->pszService = mir_strdup(desc->pszService);
p->DefHotkey = desc->DefHotKey & ~HKF_MIRANDA_LOCAL;
p->Hotkey = db_get_w(0, DBMODULENAME, p->pszName, p->DefHotkey);
p->type = p->pszService ?
diff --git a/src/mir_app/src/miranda.h b/src/mir_app/src/miranda.h
index e9ae1c1d2c..aadf1a35b6 100644
--- a/src/mir_app/src/miranda.h
+++ b/src/mir_app/src/miranda.h
@@ -65,6 +65,8 @@ void KillModulePopups(HPLUGIN);
/**** srmm.cpp *************************************************************************/
+#define SRMM_MODULE "SRMsg"
+
void KillModuleSrmmIcons(HPLUGIN);
void KillModuleToolbarIcons(HPLUGIN);
diff --git a/src/mir_app/src/srmm_base.cpp b/src/mir_app/src/srmm_base.cpp
index f93d075edc..b470676d1a 100644
--- a/src/mir_app/src/srmm_base.cpp
+++ b/src/mir_app/src/srmm_base.cpp
@@ -36,6 +36,7 @@ CSrmmBaseDialog::CSrmmBaseDialog(CMPluginBase &pPlugin, int idDialog, SESSION_IN
m_message(this, IDC_SRMM_MESSAGE),
m_nickList(this, IDC_SRMM_NICKLIST),
+ m_btnOk(this, IDOK),
m_btnFilter(this, IDC_SRMM_FILTER),
m_btnHistory(this, IDC_SRMM_HISTORY),
m_btnNickList(this, IDC_SRMM_SHOWNICKLIST),
@@ -202,6 +203,17 @@ LRESULT CSrmmBaseDialog::WndProc_Message(UINT msg, WPARAM wParam, LPARAM lParam)
return 0;
}
}
+
+ {
+ MSG tmp = { m_hwnd, msg, wParam, lParam };
+ if (Hotkey_Check(&tmp, g_pszHotkeySection) == 100) {
+ if (!(GetWindowLongPtr(m_message.GetHwnd(), GWL_STYLE) & ES_READONLY)) {
+ m_btnOk.Click();
+ return true;
+ }
+ }
+ }
+
__fallthrough;
case WM_SYSKEYDOWN:
diff --git a/src/mir_app/src/srmm_log.cpp b/src/mir_app/src/srmm_log.cpp
index fe2770cd4e..bc97e37023 100644
--- a/src/mir_app/src/srmm_log.cpp
+++ b/src/mir_app/src/srmm_log.cpp
@@ -82,7 +82,7 @@ static bool sttEnableCustomLogs(CMsgDialog *pDlg)
CSrmmLogWindow* Srmm_GetLogWindow(CMsgDialog *pDlg)
{
if (sttEnableCustomLogs(pDlg)) {
- CMStringA szViewerName(db_get_sm(pDlg->m_hContact, "SRMsg", "Logger"));
+ CMStringA szViewerName(db_get_sm(pDlg->m_hContact, SRMM_MODULE, "Logger"));
if (szViewerName.IsEmpty())
szViewerName = db_get_sm(0, "SRMM", "Logger", "built-in");
diff --git a/src/mir_app/src/srmm_util.cpp b/src/mir_app/src/srmm_util.cpp
index 6281d0c024..7ca37c9eb9 100644
--- a/src/mir_app/src/srmm_util.cpp
+++ b/src/mir_app/src/srmm_util.cpp
@@ -24,6 +24,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "stdafx.h"
#include "chat.h"
+const char *g_pszHotkeySection;
+
/////////////////////////////////////////////////////////////////////////////////////////
MIR_APP_DLL(DWORD) CALLBACK Srmm_LogStreamCallback(DWORD_PTR dwCookie, LPBYTE pbBuff, LONG cb, LONG * pcb)
@@ -84,6 +86,28 @@ MIR_APP_DLL(void) Srmm_Broadcast(UINT msg, WPARAM wParam, LPARAM lParam)
/////////////////////////////////////////////////////////////////////////////////////////
+MIR_APP_DLL(void) Srmm_CreateHotkey(const char *pszSection, const char *pszDescription)
+{
+ g_pszHotkeySection = pszSection;
+
+ uint16_t wHotKey = HOTKEYCODE(0, VK_RETURN);
+ if (db_get_b(0, SRMM_MODULE, "SendOnCtrlEnter")) {
+ db_unset(0, SRMM_MODULE, "SendOnCtrlEnter");
+ wHotKey = HOTKEYCODE(HOTKEYF_CONTROL, VK_RETURN);
+ }
+
+ if (db_get_b(0, SRMM_MODULE, "SendOnEnter"))
+ db_unset(0, SRMM_MODULE, "SendOnEnter");
+
+ if (db_get_b(0, SRMM_MODULE, "SendOnDblEnter"))
+ db_unset(0, SRMM_MODULE, "SendOnDblEnter");
+
+ HOTKEYDESC hd = { "tabsrmm_send", pszDescription, pszSection, 0, wHotKey, 0, 100 };
+ Hotkey_Register(&hd, g_pChatPlugin);
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
MIR_APP_DLL(HWND) Srmm_FindWindow(MCONTACT hContact)
{
return WindowList_Find(g_hWindowList, hContact);