diff options
author | George Hazan <george.hazan@gmail.com> | 2023-12-03 15:47:12 +0300 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2023-12-03 15:47:12 +0300 |
commit | 0805744c4b2f73149d27f5fbadb767d3d5bd50b1 (patch) | |
tree | fed632071267b83ece5bb710c2c1f08d9c477cba /src/mir_app | |
parent | 6936e530d411a5d516e13e86022fb064dd342f77 (diff) |
SRMM: quote panel
Diffstat (limited to 'src/mir_app')
-rw-r--r-- | src/mir_app/src/mir_app.def | 2 | ||||
-rw-r--r-- | src/mir_app/src/mir_app64.def | 2 | ||||
-rw-r--r-- | src/mir_app/src/srmm_base.cpp | 32 |
3 files changed, 36 insertions, 0 deletions
diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def index 33ebc19958..ba74665e56 100644 --- a/src/mir_app/src/mir_app.def +++ b/src/mir_app/src/mir_app.def @@ -912,3 +912,5 @@ Clist_GroupSaveExpanded @1003 NONAME ?IsReadonly@Contact@@YG_NI@Z @1030 NONAME
?Readonly@Contact@@YGXI_N@Z @1031 NONAME
?addButton@CMPluginBase@@QAEPAXPBUBBButton@@@Z @1032 NONAME
+?SetQuoteEvent@CSrmmBaseDialog@@QAEXI@Z @1033 NONAME
+?onClick_CloseQuote@CSrmmBaseDialog@@IAEXPAVCCtrlButton@@@Z @1034 NONAME
diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def index fc9a419bce..257fa93dfd 100644 --- a/src/mir_app/src/mir_app64.def +++ b/src/mir_app/src/mir_app64.def @@ -912,3 +912,5 @@ Clist_GroupSaveExpanded @1003 NONAME ?IsReadonly@Contact@@YA_NI@Z @1030 NONAME
?Readonly@Contact@@YAXI_N@Z @1031 NONAME
?addButton@CMPluginBase@@QEAAPEAXPEBUBBButton@@@Z @1032 NONAME
+?SetQuoteEvent@CSrmmBaseDialog@@QEAAXI@Z @1033 NONAME
+?onClick_CloseQuote@CSrmmBaseDialog@@IEAAXPEAVCCtrlButton@@@Z @1034 NONAME
diff --git a/src/mir_app/src/srmm_base.cpp b/src/mir_app/src/srmm_base.cpp index 025ae2466c..a744a3e9e3 100644 --- a/src/mir_app/src/srmm_base.cpp +++ b/src/mir_app/src/srmm_base.cpp @@ -49,6 +49,9 @@ CSrmmBaseDialog::CSrmmBaseDialog(CMPluginBase &pPlugin, int idDialog, SESSION_IN m_btnItalic(this, IDC_SRMM_ITALICS),
m_btnUnderline(this, IDC_SRMM_UNDERLINE),
+ m_Quote(this, IDC_SRMM_QUOTE),
+ m_btnCloseQuote(this, IDC_SRMM_CLOSEQUOTE, SKINICON_OTHER_DELETE, LPGEN("Remove quoting")),
+
m_si(si),
m_hContact(0),
m_clrInputBG(GetSysColor(COLOR_WINDOW))
@@ -60,6 +63,8 @@ CSrmmBaseDialog::CSrmmBaseDialog(CMPluginBase &pPlugin, int idDialog, SESSION_IN m_btnHistory.OnClick = Callback(this, &CSrmmBaseDialog::onClick_History);
m_btnChannelMgr.OnClick = Callback(this, &CSrmmBaseDialog::onClick_ChanMgr);
+ m_btnCloseQuote.OnClick = Callback(this, &CSrmmBaseDialog::onClick_CloseQuote);
+
m_nickList.OnDblClick = Callback(this, &CSrmmBaseDialog::onDblClick_List);
timerRedraw.OnEvent = Callback(this, &CSrmmBaseDialog::OnRedrawTimer);
@@ -519,6 +524,9 @@ bool CSrmmBaseDialog::OnInitDialog() WindowList_Add(g_hWindowList, m_hwnd, m_hContact);
SetWindowLongPtr(m_hwnd, GWLP_USERDATA, (LONG_PTR)this);
+ m_btnCloseQuote.Hide();
+ m_Quote.Hide();
+
m_bReadOnly = Contact::IsReadonly(m_hContact);
if (m_bReadOnly)
m_message.Hide();
@@ -874,6 +882,14 @@ void CSrmmBaseDialog::onClick_ChanMgr(CCtrlButton *pButton) Chat_DoEventHook(m_si, GC_USER_CHANMGR, nullptr, nullptr, 0);
}
+void CSrmmBaseDialog::onClick_CloseQuote(CCtrlButton*)
+{
+ m_Quote.Hide();
+ m_btnCloseQuote.Hide();
+ m_hQuoteEvent = 0;
+ Resize();
+}
+
void CSrmmBaseDialog::onDblClick_List(CCtrlListBox *pList)
{
TVHITTESTINFO hti;
@@ -1068,3 +1084,19 @@ void CSrmmBaseDialog::RefreshButtonStatus() m_btnUnderline.Push(false);
}
}
+
+void CSrmmBaseDialog::SetQuoteEvent(MEVENT hEvent)
+{
+ DB::EventInfo dbei(hEvent);
+ if (dbei) {
+ CMStringW wszText(TranslateT("In reply to"));
+ wszText += L": ";
+ wszText += ptrW(DbEvent_GetTextW(&dbei, CP_UTF8)).get();
+ m_Quote.SetText(wszText);
+
+ m_hQuoteEvent = hEvent;
+ m_Quote.Show();
+ m_btnCloseQuote.Show();
+ Resize();
+ }
+}
|