[MSPAINT] Add CMainWindow::CanPaste

CORE-18867
This commit is contained in:
Katayama Hirofumi MZ 2023-06-19 18:59:00 +09:00
parent 19d8862851
commit bc19bbe408
2 changed files with 12 additions and 5 deletions

View file

@ -436,6 +436,16 @@ BOOL CMainWindow::CanRedo() const
return imageModel.CanRedo();
}
BOOL CMainWindow::CanPaste() const
{
if (toolsModel.GetActiveTool() == TOOL_TEXT && ::IsWindowVisible(textEditWindow))
return ::IsClipboardFormatAvailable(CF_UNICODETEXT);
return (::IsClipboardFormatAvailable(CF_ENHMETAFILE) ||
::IsClipboardFormatAvailable(CF_DIB) ||
::IsClipboardFormatAvailable(CF_BITMAP));
}
LRESULT CMainWindow::OnInitMenuPopup(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
HMENU menu = (HMENU)wParam;
@ -465,11 +475,7 @@ LRESULT CMainWindow::OnInitMenuPopup(UINT nMsg, WPARAM wParam, LPARAM lParam, BO
ENABLED_IF(textShown ? hasTextSel : trueSelection));
EnableMenuItem(menu, IDM_EDITINVERTSELECTION, ENABLED_IF(trueSelection));
EnableMenuItem(menu, IDM_EDITCOPYTO, ENABLED_IF(trueSelection));
EnableMenuItem(menu, IDM_EDITPASTE,
ENABLED_IF(textShown ? ::IsClipboardFormatAvailable(CF_UNICODETEXT) :
(::IsClipboardFormatAvailable(CF_ENHMETAFILE) ||
::IsClipboardFormatAvailable(CF_DIB) ||
::IsClipboardFormatAvailable(CF_BITMAP))));
EnableMenuItem(menu, IDM_EDITPASTE, ENABLED_IF(CanPaste()));
//
// View menu

View file

@ -37,6 +37,7 @@ public:
VOID TrackPopupMenu(POINT ptScreen, INT iSubMenu);
BOOL CanUndo() const;
BOOL CanRedo() const;
BOOL CanPaste() const;
private:
HMENU m_hMenu;