From 204888102bbc85dee1780c5ca02ffb3f1cb2ce65 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 12 Sep 2024 12:55:45 +0300 Subject: =?UTF-8?q?fixes=20#4655=20(Notes=20and=20Reminders:=20=D1=81?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=BE=D0=BA=20=D0=BD=D0=B0=D0=BF=D0=BE=D0=BC?= =?UTF-8?q?=D0=B8=D0=BD=D0=B0=D0=BD=D0=B8=D0=B9=20=D0=BD=D0=B5=20=D1=80?= =?UTF-8?q?=D0=B5=D0=B0=D0=B3=D0=B8=D1=80=D1=83=D0=B5=D1=82=20=D0=BD=D0=B0?= =?UTF-8?q?=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D1=83=20Delete)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/NotesAndReminders/src/reminders.cpp | 75 +++++++++++++++++------------ 1 file changed, 43 insertions(+), 32 deletions(-) (limited to 'plugins/NotesAndReminders/src') diff --git a/plugins/NotesAndReminders/src/reminders.cpp b/plugins/NotesAndReminders/src/reminders.cpp index 9759e1873b..446f1b5c6b 100644 --- a/plugins/NotesAndReminders/src/reminders.cpp +++ b/plugins/NotesAndReminders/src/reminders.cpp @@ -1509,6 +1509,14 @@ static void EditReminder(REMINDERDATA *p) ///////////////////////////////////////////////////////////////////////////////////////// +static INT_PTR CALLBACK ListWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) +{ + if (msg == WM_KEYDOWN && wParam == VK_DELETE) + PostMessage(GetParent(hwnd), WM_COMMAND, ID_CONTEXTMENUREMINDER_DELETE, 0); + + return mir_callNextSubclass(hwnd, ListWindowProc, msg, wParam, lParam); +} + class CReminderListDlg : public CDlgBase { typedef CDlgBase CSuper; @@ -1587,9 +1595,10 @@ public: pListDialog = this; Window_SetIcon_IcoLib(m_hwnd, iconList[6].hIcolib); - TranslateDialogDefault(m_hwnd); SetDlgItemTextA(m_hwnd, IDC_REMINDERDATA, ""); + mir_subclassWindow(m_list.GetHwnd(), ListWindowProc); + int cx1 = 150, cx2 = 205; ptrA colWidth(g_plugin.getStringA("ColWidth")); if (colWidth != 0) { @@ -1682,38 +1691,8 @@ public: ClientToScreen(m_list.GetHwnd(), &pt); TranslateMenu(FhMenu); - int iSel = TrackPopupMenu(FhMenu, TPM_RETURNCMD | TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, 0, m_hwnd, nullptr); + TrackPopupMenu(FhMenu, TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, 0, m_hwnd, nullptr); DestroyMenu(hMenuLoad); - - switch(iSel) { - case ID_CONTEXTMENUREMINDER_EDIT: - idx = m_list.GetSelectionMark(); - if (idx != -1) - EditReminder(getData(idx)); - break; - - case ID_CONTEXTMENUREMINDER_NEW: - PluginMenuCommandNewReminder(0, 0); - break; - - case ID_CONTEXTMENUREMINDER_DELETEALL: - if (arReminders.getCount() && IDOK == MessageBox(m_hwnd, TranslateT("Are you sure you want to delete all reminders?"), _A2W(SECTIONNAME), MB_OKCANCEL)) { - SetDlgItemTextA(m_hwnd, IDC_REMINDERDATA, ""); - DeleteReminders(); - RefreshList(); - } - break; - - case ID_CONTEXTMENUREMINDER_DELETE: - idx = m_list.GetSelectionMark(); - if (idx != -1 && IDOK == MessageBox(m_hwnd, TranslateT("Are you sure you want to delete this reminder?"), _A2W(SECTIONNAME), MB_OKCANCEL)) { - SetDlgItemTextA(m_hwnd, IDC_REMINDERDATA, ""); - DeleteReminder(getData(idx)); - JustSaveReminders(); - RefreshList(); - } - break; - } } void Reload() @@ -1760,6 +1739,38 @@ public: } } break; + + case WM_COMMAND: + int idx; + switch (wParam) { + case ID_CONTEXTMENUREMINDER_EDIT: + idx = m_list.GetSelectionMark(); + if (idx != -1) + EditReminder(getData(idx)); + break; + + case ID_CONTEXTMENUREMINDER_NEW: + PluginMenuCommandNewReminder(0, 0); + break; + + case ID_CONTEXTMENUREMINDER_DELETEALL: + if (arReminders.getCount() && IDOK == MessageBox(m_hwnd, TranslateT("Are you sure you want to delete all reminders?"), _A2W(SECTIONNAME), MB_OKCANCEL)) { + SetDlgItemTextA(m_hwnd, IDC_REMINDERDATA, ""); + DeleteReminders(); + RefreshList(); + } + break; + + case ID_CONTEXTMENUREMINDER_DELETE: + idx = m_list.GetSelectionMark(); + if (idx != -1 && IDOK == MessageBox(m_hwnd, TranslateT("Are you sure you want to delete this reminder?"), _A2W(SECTIONNAME), MB_OKCANCEL)) { + SetDlgItemTextA(m_hwnd, IDC_REMINDERDATA, ""); + DeleteReminder(getData(idx)); + JustSaveReminders(); + RefreshList(); + } + break; + } } return CSuper::DlgProc(msg, wParam, lParam); -- cgit v1.2.3