From 4999a28ae1ee4848529b6d22d25e32f7f9e7594f Mon Sep 17 00:00:00 2001 From: Takashi Sawanaka Date: Sat, 31 Jul 2021 16:57:05 +0900 Subject: [PATCH] - Move some CMergeEditVew::On* functions to CMergeDoc class - Sort the order of message handlers in menu order --- Src/HexMergeDoc.cpp | 19 ++-- Src/HexMergeFrm.cpp | 9 +- Src/HexMergeView.cpp | 5 +- Src/ImgMergeFrm.cpp | 54 ++++++---- Src/ImgMergeFrm.h | 12 +-- Src/MainFrm.cpp | 99 ++++++++++-------- Src/Merge.cpp | 2 +- Src/MergeDoc.cpp | 173 ++++++++++++++++++++++++++++--- Src/MergeDoc.h | 12 +++ Src/MergeEditFrm.cpp | 7 +- Src/MergeEditView.cpp | 275 ++++++++++++-------------------------------------- Src/MergeEditView.h | 12 --- 12 files changed, 356 insertions(+), 323 deletions(-) diff --git a/Src/HexMergeDoc.cpp b/Src/HexMergeDoc.cpp index b75b725ad..651c4f081 100644 --- a/Src/HexMergeDoc.cpp +++ b/Src/HexMergeDoc.cpp @@ -79,30 +79,35 @@ IMPLEMENT_DYNCREATE(CHexMergeDoc, CDocument) BEGIN_MESSAGE_MAP(CHexMergeDoc, CDocument) //{{AFX_MSG_MAP(CHexMergeDoc) + // [File] menu ON_COMMAND(ID_FILE_SAVE, OnFileSave) ON_COMMAND(ID_FILE_SAVE_LEFT, OnFileSaveLeft) ON_COMMAND(ID_FILE_SAVE_RIGHT, OnFileSaveRight) ON_COMMAND(ID_FILE_SAVEAS_LEFT, OnFileSaveAsLeft) ON_COMMAND(ID_FILE_SAVEAS_RIGHT, OnFileSaveAsRight) - ON_UPDATE_COMMAND_UI(ID_STATUS_DIFFNUM, OnUpdateStatusNum) ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_LEFT, OnUpdateFileSaveLeft) ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_RIGHT, OnUpdateFileSaveRight) ON_UPDATE_COMMAND_UI(ID_FILE_SAVE, OnUpdateFileSave) ON_COMMAND(ID_RESCAN, OnFileReload) + ON_COMMAND_RANGE(ID_MERGE_COMPARE_TEXT, ID_MERGE_COMPARE_IMAGE, OnFileRecompareAs) + ON_UPDATE_COMMAND_UI_RANGE(ID_MERGE_COMPARE_TEXT, ID_MERGE_COMPARE_IMAGE, OnUpdateFileRecompareAs) + // [View] menu + ON_COMMAND(ID_VIEW_ZOOMIN, OnViewZoomIn) + ON_COMMAND(ID_VIEW_ZOOMOUT, OnViewZoomOut) + ON_COMMAND(ID_VIEW_ZOOMNORMAL, OnViewZoomNormal) + ON_COMMAND(ID_REFRESH, OnRefresh) + // [Merge] menu ON_COMMAND(ID_L2R, OnL2r) ON_COMMAND(ID_R2L, OnR2l) ON_COMMAND(ID_COPY_FROM_LEFT, OnCopyFromLeft) ON_COMMAND(ID_COPY_FROM_RIGHT, OnCopyFromRight) ON_COMMAND(ID_ALL_LEFT, OnAllLeft) ON_COMMAND(ID_ALL_RIGHT, OnAllRight) - ON_COMMAND(ID_VIEW_ZOOMIN, OnViewZoomIn) - ON_COMMAND(ID_VIEW_ZOOMOUT, OnViewZoomOut) - ON_COMMAND(ID_VIEW_ZOOMNORMAL, OnViewZoomNormal) - ON_COMMAND(ID_REFRESH, OnRefresh) - ON_COMMAND_RANGE(ID_MERGE_COMPARE_TEXT, ID_MERGE_COMPARE_IMAGE, OnFileRecompareAs) + // [Plugins] menu ON_COMMAND_RANGE(ID_UNPACKERS_FIRST, ID_UNPACKERS_LAST, OnFileRecompareAs) - ON_UPDATE_COMMAND_UI_RANGE(ID_MERGE_COMPARE_TEXT, ID_MERGE_COMPARE_IMAGE, OnUpdateFileRecompareAs) ON_COMMAND(ID_OPEN_WITH_UNPACKER, OnOpenWithUnpacker) + // Status bar + ON_UPDATE_COMMAND_UI(ID_STATUS_DIFFNUM, OnUpdateStatusNum) //}}AFX_MSG_MAP END_MESSAGE_MAP() diff --git a/Src/HexMergeFrm.cpp b/Src/HexMergeFrm.cpp index e9347ceb0..5139e3875 100644 --- a/Src/HexMergeFrm.cpp +++ b/Src/HexMergeFrm.cpp @@ -34,11 +34,12 @@ BEGIN_MESSAGE_MAP(CHexMergeFrame, CMergeFrameCommon) ON_WM_CLOSE() ON_WM_SIZE() ON_MESSAGE_VOID(WM_IDLEUPDATECMDUI, OnIdleUpdateCmdUI) - ON_UPDATE_COMMAND_UI(ID_VIEW_DETAIL_BAR, OnUpdateControlBarMenu) - ON_COMMAND_EX(ID_VIEW_DETAIL_BAR, OnBarCheck) - ON_UPDATE_COMMAND_UI(ID_VIEW_LOCATION_BAR, OnUpdateControlBarMenu) - ON_COMMAND_EX(ID_VIEW_LOCATION_BAR, OnBarCheck) ON_MESSAGE(MSG_STORE_PANESIZES, OnStorePaneSizes) + // [View] menu + //ON_UPDATE_COMMAND_UI(ID_VIEW_DETAIL_BAR, OnUpdateControlBarMenu) + //ON_COMMAND_EX(ID_VIEW_DETAIL_BAR, OnBarCheck) + //ON_UPDATE_COMMAND_UI(ID_VIEW_LOCATION_BAR, OnUpdateControlBarMenu) + //ON_COMMAND_EX(ID_VIEW_LOCATION_BAR, OnBarCheck) //}}AFX_MSG_MAP END_MESSAGE_MAP() diff --git a/Src/HexMergeView.cpp b/Src/HexMergeView.cpp index 692cd5077..f71975d70 100644 --- a/Src/HexMergeView.cpp +++ b/Src/HexMergeView.cpp @@ -66,7 +66,7 @@ BEGIN_MESSAGE_MAP(CHexMergeView, CView) ON_WM_VSCROLL() ON_WM_MOUSEWHEEL() ON_WM_NCCALCSIZE() - ON_COMMAND(ID_HELP, OnHelp) + // [Edit] menu ON_COMMAND(ID_EDIT_FIND, OnEditFind) ON_COMMAND(ID_EDIT_REPLACE, OnEditReplace) ON_COMMAND(ID_EDIT_REPEAT, OnEditRepeat) @@ -79,10 +79,13 @@ BEGIN_MESSAGE_MAP(CHexMergeView, CView) ON_COMMAND(ID_EDIT_PASTE, OnEditPaste) ON_COMMAND(ID_EDIT_CLEAR, OnEditClear) ON_COMMAND(ID_EDIT_SELECT_ALL, OnEditSelectAll) + // [Merge] menu ON_COMMAND(ID_FIRSTDIFF, OnFirstdiff) ON_COMMAND(ID_LASTDIFF, OnLastdiff) ON_COMMAND(ID_NEXTDIFF, OnNextdiff) ON_COMMAND(ID_PREVDIFF, OnPrevdiff) + // [Help] menu + ON_COMMAND(ID_HELP, OnHelp) //}}AFX_MSG_MAP // Test case to verify WM_COMMAND won't accidentally go through Default() //ON_COMMAND(ID_APP_ABOUT, Default) diff --git a/Src/ImgMergeFrm.cpp b/Src/ImgMergeFrm.cpp index e8f16bac8..bf7149d4f 100644 --- a/Src/ImgMergeFrm.cpp +++ b/Src/ImgMergeFrm.cpp @@ -53,9 +53,11 @@ BEGIN_MESSAGE_MAP(CImgMergeFrame, CMergeFrameCommon) ON_WM_DESTROY() ON_WM_MDIACTIVATE() ON_WM_SIZE() + ON_WM_SETFOCUS () + ON_MESSAGE_VOID(WM_IDLEUPDATECMDUI, OnIdleUpdateCmdUI) + ON_MESSAGE(MSG_STORE_PANESIZES, OnStorePaneSizes) + // [File] menu ON_COMMAND(ID_FILE_SAVE, OnFileSave) - ON_UPDATE_COMMAND_UI(ID_VIEW_LOCATION_BAR, OnUpdateControlBarMenu) - ON_COMMAND_EX(ID_VIEW_LOCATION_BAR, OnBarCheck) ON_UPDATE_COMMAND_UI(ID_FILE_SAVE, OnUpdateFileSave) ON_COMMAND(ID_FILE_SAVE_LEFT, OnFileSaveLeft) ON_COMMAND(ID_FILE_SAVE_MIDDLE, OnFileSaveMiddle) @@ -66,21 +68,16 @@ BEGIN_MESSAGE_MAP(CImgMergeFrame, CMergeFrameCommon) ON_COMMAND(ID_FILE_SAVEAS_MIDDLE, OnFileSaveAsMiddle) ON_COMMAND(ID_FILE_SAVEAS_RIGHT, OnFileSaveAsRight) ON_COMMAND(ID_FILE_CLOSE, OnFileClose) - ON_COMMAND(ID_FILE_LEFT_READONLY, OnLeftReadOnly) - ON_UPDATE_COMMAND_UI(ID_FILE_LEFT_READONLY, OnUpdateLeftReadOnly) - ON_COMMAND(ID_FILE_MIDDLE_READONLY, OnMiddleReadOnly) - ON_UPDATE_COMMAND_UI(ID_FILE_MIDDLE_READONLY, OnUpdateMiddleReadOnly) - ON_COMMAND(ID_FILE_RIGHT_READONLY, OnRightReadOnly) - ON_UPDATE_COMMAND_UI(ID_FILE_RIGHT_READONLY, OnUpdateRightReadOnly) + ON_COMMAND(ID_FILE_LEFT_READONLY, OnFileReadOnlyLeft) + ON_UPDATE_COMMAND_UI(ID_FILE_LEFT_READONLY, OnUpdateFileReadOnlyLeft) + ON_COMMAND(ID_FILE_MIDDLE_READONLY, OnFileReadOnlyMiddle) + ON_UPDATE_COMMAND_UI(ID_FILE_MIDDLE_READONLY, OnUpdateFileReadOnlyMiddle) + ON_COMMAND(ID_FILE_RIGHT_READONLY, OnFileReadOnlyRight) + ON_UPDATE_COMMAND_UI(ID_FILE_RIGHT_READONLY, OnUpdateFileReadOnlyRight) ON_COMMAND(ID_RESCAN, OnFileReload) ON_COMMAND_RANGE(ID_MERGE_COMPARE_TEXT, ID_MERGE_COMPARE_IMAGE, OnFileRecompareAs) - ON_COMMAND_RANGE(ID_UNPACKERS_FIRST, ID_UNPACKERS_LAST, OnFileRecompareAs) ON_UPDATE_COMMAND_UI_RANGE(ID_MERGE_COMPARE_TEXT, ID_MERGE_COMPARE_IMAGE, OnUpdateFileRecompareAs) - ON_COMMAND(ID_OPEN_WITH_UNPACKER, OnOpenWithUnpacker) - ON_COMMAND(ID_WINDOW_CHANGE_PANE, OnWindowChangePane) - ON_MESSAGE_VOID(WM_IDLEUPDATECMDUI, OnIdleUpdateCmdUI) - ON_MESSAGE(MSG_STORE_PANESIZES, OnStorePaneSizes) - ON_UPDATE_COMMAND_UI(ID_STATUS_DIFFNUM, OnUpdateStatusNum) + // [Edit] menu ON_COMMAND(ID_EDIT_UNDO, OnEditUndo) ON_UPDATE_COMMAND_UI(ID_EDIT_UNDO, OnUpdateEditUndo) ON_COMMAND(ID_EDIT_REDO, OnEditRedo) @@ -92,11 +89,16 @@ BEGIN_MESSAGE_MAP(CImgMergeFrame, CMergeFrameCommon) ON_COMMAND(ID_EDIT_PASTE, OnEditPaste) ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, OnUpdateEditPaste) ON_COMMAND(ID_EDIT_SELECT_ALL, OnEditSelectAll) + // [View] menu + ON_UPDATE_COMMAND_UI(ID_VIEW_LOCATION_BAR, OnUpdateControlBarMenu) + ON_COMMAND_EX(ID_VIEW_LOCATION_BAR, OnBarCheck) ON_COMMAND(ID_VIEW_ZOOMIN, OnViewZoomIn) ON_COMMAND(ID_VIEW_ZOOMOUT, OnViewZoomOut) ON_COMMAND(ID_VIEW_ZOOMNORMAL, OnViewZoomNormal) ON_COMMAND(ID_VIEW_SPLITVERTICALLY, OnViewSplitVertically) ON_UPDATE_COMMAND_UI(ID_VIEW_SPLITVERTICALLY, OnUpdateViewSplitVertically) + ON_COMMAND(ID_REFRESH, OnRefresh) + // [Merge] menu ON_COMMAND(ID_FIRSTDIFF, OnFirstdiff) ON_UPDATE_COMMAND_UI(ID_FIRSTDIFF, OnUpdateFirstdiff) ON_COMMAND(ID_LASTDIFF, OnLastdiff) @@ -123,6 +125,7 @@ BEGIN_MESSAGE_MAP(CImgMergeFrame, CMergeFrameCommon) ON_UPDATE_COMMAND_UI(ID_ALL_RIGHT, OnUpdateAllRight) ON_COMMAND(ID_AUTO_MERGE, OnAutoMerge) ON_UPDATE_COMMAND_UI(ID_AUTO_MERGE, OnUpdateAutoMerge) + // [Image] menu ON_COMMAND(ID_IMG_VIEWDIFFERENCES, OnImgViewDifferences) ON_UPDATE_COMMAND_UI(ID_IMG_VIEWDIFFERENCES, OnUpdateImgViewDifferences) ON_COMMAND_RANGE(ID_IMG_ZOOM_25, ID_IMG_ZOOM_800, OnImgZoom) @@ -154,10 +157,17 @@ BEGIN_MESSAGE_MAP(CImgMergeFrame, CMergeFrameCommon) ON_COMMAND_RANGE(ID_IMG_VECTORIMAGESCALING_25, ID_IMG_VECTORIMAGESCALING_800, OnImgVectorImageScaling) ON_UPDATE_COMMAND_UI_RANGE(ID_IMG_VECTORIMAGESCALING_25, ID_IMG_VECTORIMAGESCALING_800, OnUpdateImgVectorImageScaling) ON_COMMAND(ID_IMG_COMPARE_EXTRACTED_TEXT, OnImgCompareExtractedText) + // [Tools] menu ON_COMMAND(ID_TOOLS_GENERATEREPORT, OnToolsGenerateReport) - ON_COMMAND(ID_REFRESH, OnRefresh) - ON_WM_SETFOCUS () + // [Plugins] menu + ON_COMMAND_RANGE(ID_UNPACKERS_FIRST, ID_UNPACKERS_LAST, OnFileRecompareAs) + ON_COMMAND(ID_OPEN_WITH_UNPACKER, OnOpenWithUnpacker) + // [Window] menu + ON_COMMAND(ID_WINDOW_CHANGE_PANE, OnWindowChangePane) + // [Help] menu ON_COMMAND(ID_HELP, OnHelp) + // Status bar + ON_UPDATE_COMMAND_UI(ID_STATUS_DIFFNUM, OnUpdateStatusNum) //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -881,7 +891,7 @@ void CImgMergeFrame::OnFileClose() /** * @brief Enable/disable left buffer read-only */ -void CImgMergeFrame::OnLeftReadOnly() +void CImgMergeFrame::OnFileReadOnlyLeft() { m_bRO[0] = !m_bRO[0]; m_pImgMergeWindow->SetReadOnly(0, m_bRO[0]); @@ -890,7 +900,7 @@ void CImgMergeFrame::OnLeftReadOnly() /** * @brief Called when "Left read-only" item is updated */ -void CImgMergeFrame::OnUpdateLeftReadOnly(CCmdUI* pCmdUI) +void CImgMergeFrame::OnUpdateFileReadOnlyLeft(CCmdUI* pCmdUI) { pCmdUI->Enable(true); pCmdUI->SetCheck(m_bRO[0]); @@ -899,7 +909,7 @@ void CImgMergeFrame::OnUpdateLeftReadOnly(CCmdUI* pCmdUI) /** * @brief Enable/disable middle buffer read-only */ -void CImgMergeFrame::OnMiddleReadOnly() +void CImgMergeFrame::OnFileReadOnlyMiddle() { if (m_pImgMergeWindow->GetPaneCount() == 3) { @@ -911,7 +921,7 @@ void CImgMergeFrame::OnMiddleReadOnly() /** * @brief Called when "Middle read-only" item is updated */ -void CImgMergeFrame::OnUpdateMiddleReadOnly(CCmdUI* pCmdUI) +void CImgMergeFrame::OnUpdateFileReadOnlyMiddle(CCmdUI* pCmdUI) { if (m_pImgMergeWindow->GetPaneCount() < 3) { @@ -927,7 +937,7 @@ void CImgMergeFrame::OnUpdateMiddleReadOnly(CCmdUI* pCmdUI) /** * @brief Enable/disable right buffer read-only */ -void CImgMergeFrame::OnRightReadOnly() +void CImgMergeFrame::OnFileReadOnlyRight() { int pane = m_pImgMergeWindow->GetPaneCount() - 1; m_bRO[pane] = !m_bRO[pane]; @@ -937,7 +947,7 @@ void CImgMergeFrame::OnRightReadOnly() /** * @brief Called when "Right read-only" item is updated */ -void CImgMergeFrame::OnUpdateRightReadOnly(CCmdUI* pCmdUI) +void CImgMergeFrame::OnUpdateFileReadOnlyRight(CCmdUI* pCmdUI) { pCmdUI->Enable(true); pCmdUI->SetCheck(m_pImgMergeWindow->GetReadOnly(m_pImgMergeWindow->GetPaneCount() - 1)); diff --git a/Src/ImgMergeFrm.h b/Src/ImgMergeFrm.h index 90b2c0c45..c1401d10b 100644 --- a/Src/ImgMergeFrm.h +++ b/Src/ImgMergeFrm.h @@ -140,12 +140,12 @@ private: afx_msg void OnFileSaveAsMiddle(); afx_msg void OnUpdateFileSaveAsMiddle(CCmdUI* pCmdUI); afx_msg void OnFileSaveAsRight(); - afx_msg void OnLeftReadOnly(); - afx_msg void OnUpdateLeftReadOnly(CCmdUI* pCmdUI); - afx_msg void OnMiddleReadOnly(); - afx_msg void OnUpdateMiddleReadOnly(CCmdUI* pCmdUI); - afx_msg void OnRightReadOnly(); - afx_msg void OnUpdateRightReadOnly(CCmdUI* pCmdUI); + afx_msg void OnFileReadOnlyLeft(); + afx_msg void OnUpdateFileReadOnlyLeft(CCmdUI* pCmdUI); + afx_msg void OnFileReadOnlyMiddle(); + afx_msg void OnUpdateFileReadOnlyMiddle(CCmdUI* pCmdUI); + afx_msg void OnFileReadOnlyRight(); + afx_msg void OnUpdateFileReadOnlyRight(CCmdUI* pCmdUI); afx_msg void OnFileReload(); afx_msg void OnFileClose(); afx_msg void OnFileRecompareAs(UINT nID); diff --git a/Src/MainFrm.cpp b/Src/MainFrm.cpp index a9d234042..222a7454e 100644 --- a/Src/MainFrm.cpp +++ b/Src/MainFrm.cpp @@ -179,17 +179,44 @@ BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) ON_WM_MEASUREITEM() ON_WM_INITMENUPOPUP() ON_WM_INITMENU() + ON_WM_CLOSE() ON_WM_CREATE() + ON_WM_TIMER() + ON_WM_DESTROY() + ON_MESSAGE(WM_COPYDATA, OnCopyData) + ON_MESSAGE(WM_USER+1, OnUser1) + ON_WM_ACTIVATEAPP() + // [File] menu + ON_COMMAND(ID_FILE_NEW, (OnFileNew<2, ID_MERGE_COMPARE_TEXT>)) + ON_COMMAND(ID_FILE_NEW_TABLE, (OnFileNew<2, ID_MERGE_COMPARE_TABLE>)) + ON_COMMAND(ID_FILE_NEW_HEX, (OnFileNew<2, ID_MERGE_COMPARE_HEX>)) + ON_COMMAND(ID_FILE_NEW_IMAGE, (OnFileNew<2, ID_MERGE_COMPARE_IMAGE>)) + ON_COMMAND(ID_FILE_NEW3, (OnFileNew<3, ID_MERGE_COMPARE_TEXT>)) + ON_COMMAND(ID_FILE_NEW3_TABLE, (OnFileNew<2, ID_MERGE_COMPARE_TABLE>)) + ON_COMMAND(ID_FILE_NEW3_HEX, (OnFileNew<3, ID_MERGE_COMPARE_HEX>)) + ON_COMMAND(ID_FILE_NEW3_IMAGE, (OnFileNew<3, ID_MERGE_COMPARE_IMAGE>)) ON_COMMAND(ID_FILE_OPEN, OnFileOpen) - ON_COMMAND(ID_HELP_GNULICENSE, OnHelpGnulicense) + ON_COMMAND(ID_FILE_OPENPROJECT, OnFileOpenProject) + ON_COMMAND(ID_FILE_SAVEPROJECT, OnSaveProject) + ON_COMMAND(ID_FILE_OPENCONFLICT, OnFileOpenConflict) + ON_COMMAND_RANGE(ID_MRU_FIRST, ID_MRU_LAST, OnMRUs) + ON_UPDATE_COMMAND_UI(ID_MRU_FIRST, OnUpdateNoMRUs) + ON_UPDATE_COMMAND_UI(ID_NO_MRU, OnUpdateNoMRUs) + ON_COMMAND(ID_ACCEL_QUIT, &CMainFrame::OnAccelQuit) + // [Edit] menu ON_COMMAND(ID_OPTIONS, OnOptions) + // [View] menu ON_COMMAND(ID_VIEW_SELECTFONT, OnViewSelectfont) ON_COMMAND(ID_VIEW_USEDEFAULTFONT, OnViewUsedefaultfont) - ON_COMMAND(ID_HELP_CONTENTS, OnHelpContents) - ON_WM_CLOSE() - ON_COMMAND(ID_TOOLS_GENERATEPATCH, OnToolsGeneratePatch) - ON_WM_TIMER() - ON_WM_DESTROY() + ON_COMMAND(ID_VIEW_STATUS_BAR, OnViewStatusBar) + ON_COMMAND(ID_VIEW_TAB_BAR, OnViewTabBar) + ON_UPDATE_COMMAND_UI(ID_VIEW_TAB_BAR, OnUpdateViewTabBar) + ON_COMMAND(ID_VIEW_RESIZE_PANES, OnResizePanes) + ON_UPDATE_COMMAND_UI(ID_VIEW_RESIZE_PANES, OnUpdateResizePanes) + ON_COMMAND_RANGE(ID_TOOLBAR_NONE, ID_TOOLBAR_HUGE, OnToolbarSize) + ON_UPDATE_COMMAND_UI_RANGE(ID_TOOLBAR_NONE, ID_TOOLBAR_HUGE, OnUpdateToolbarSize) + // [Plugins] menu + ON_COMMAND(ID_PLUGINS_LIST, OnPluginsList) ON_COMMAND_RANGE(ID_UNPACK_MANUAL, ID_UNPACK_AUTO, OnPluginUnpackMode) ON_UPDATE_COMMAND_UI_RANGE(ID_UNPACK_MANUAL, ID_UNPACK_AUTO, OnUpdatePluginUnpackMode) ON_COMMAND_RANGE(ID_PREDIFFER_MANUAL, ID_PREDIFFER_AUTO, OnPluginPrediffMode) @@ -199,37 +226,30 @@ BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) ON_UPDATE_COMMAND_UI(ID_TRANSFORM_WITH_SCRIPT, OnUpdatePluginRelatedMenu) ON_UPDATE_COMMAND_UI(ID_RELOAD_PLUGINS, OnUpdatePluginRelatedMenu) ON_COMMAND(ID_RELOAD_PLUGINS, OnReloadPlugins) - ON_COMMAND(ID_HELP_GETCONFIG, OnSaveConfigData) - ON_COMMAND(ID_FILE_NEW, (OnFileNew<2, ID_MERGE_COMPARE_TEXT>)) - ON_COMMAND(ID_FILE_NEW_TABLE, (OnFileNew<2, ID_MERGE_COMPARE_TABLE>)) - ON_COMMAND(ID_FILE_NEW_HEX, (OnFileNew<2, ID_MERGE_COMPARE_HEX>)) - ON_COMMAND(ID_FILE_NEW_IMAGE, (OnFileNew<2, ID_MERGE_COMPARE_IMAGE>)) - ON_COMMAND(ID_FILE_NEW3, (OnFileNew<3, ID_MERGE_COMPARE_TEXT>)) - ON_COMMAND(ID_FILE_NEW3_TABLE, (OnFileNew<2, ID_MERGE_COMPARE_TABLE>)) - ON_COMMAND(ID_FILE_NEW3_HEX, (OnFileNew<3, ID_MERGE_COMPARE_HEX>)) - ON_COMMAND(ID_FILE_NEW3_IMAGE, (OnFileNew<3, ID_MERGE_COMPARE_IMAGE>)) + // [Tools] menu ON_COMMAND(ID_TOOLS_FILTERS, OnToolsFilters) - ON_COMMAND(ID_VIEW_STATUS_BAR, OnViewStatusBar) - ON_UPDATE_COMMAND_UI(ID_VIEW_TAB_BAR, OnUpdateViewTabBar) - ON_COMMAND(ID_VIEW_TAB_BAR, OnViewTabBar) - ON_UPDATE_COMMAND_UI(ID_VIEW_RESIZE_PANES, OnUpdateResizePanes) - ON_COMMAND(ID_VIEW_RESIZE_PANES, OnResizePanes) - ON_COMMAND(ID_FILE_OPENPROJECT, OnFileOpenProject) - ON_MESSAGE(WM_COPYDATA, OnCopyData) - ON_MESSAGE(WM_USER+1, OnUser1) + ON_COMMAND(ID_TOOLS_GENERATEPATCH, OnToolsGeneratePatch) + // [Window] menu ON_COMMAND(ID_WINDOW_CLOSEALL, OnWindowCloseAll) ON_UPDATE_COMMAND_UI(ID_WINDOW_CLOSEALL, OnUpdateWindowCloseAll) - ON_COMMAND(ID_FILE_SAVEPROJECT, OnSaveProject) - ON_WM_ACTIVATEAPP() - ON_COMMAND_RANGE(ID_TOOLBAR_NONE, ID_TOOLBAR_HUGE, OnToolbarSize) - ON_UPDATE_COMMAND_UI_RANGE(ID_TOOLBAR_NONE, ID_TOOLBAR_HUGE, OnUpdateToolbarSize) - ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, OnToolTipText) - ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, OnToolTipText) + // [Help] menu + ON_COMMAND(ID_HELP_CONTENTS, OnHelpContents) + ON_COMMAND(ID_HELP_GNULICENSE, OnHelpGnulicense) + ON_COMMAND(ID_HELP_GETCONFIG, OnSaveConfigData) ON_COMMAND(ID_HELP_RELEASENOTES, OnHelpReleasenotes) ON_COMMAND(ID_HELP_TRANSLATIONS, OnHelpTranslations) - ON_COMMAND(ID_FILE_OPENCONFLICT, OnFileOpenConflict) - ON_COMMAND(ID_PLUGINS_LIST, OnPluginsList) - ON_UPDATE_COMMAND_UI(ID_STATUS_PLUGIN, OnUpdatePluginName) + // Tool bar icon + ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, OnToolTipText) + ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, OnToolTipText) + ON_COMMAND(ID_FIRSTFILE, OnFirstFile) + ON_UPDATE_COMMAND_UI(ID_FIRSTFILE, OnUpdateFirstFile) + ON_COMMAND(ID_PREVFILE, OnPrevFile) + ON_UPDATE_COMMAND_UI(ID_PREVFILE, OnUpdatePrevFile) + ON_COMMAND(ID_NEXTFILE, OnNextFile) + ON_UPDATE_COMMAND_UI(ID_NEXTFILE, OnUpdateNextFile) + ON_COMMAND(ID_LASTFILE, OnLastFile) + ON_UPDATE_COMMAND_UI(ID_LASTFILE, OnUpdateLastFile) + // Tool bar drop-down menu ON_NOTIFY(TBN_DROPDOWN, AFX_IDW_TOOLBAR, OnToolbarButtonDropDown) ON_COMMAND_RANGE(ID_DIFF_OPTIONS_WHITESPACE_COMPARE, ID_DIFF_OPTIONS_WHITESPACE_IGNOREALL, OnDiffWhitespace) ON_UPDATE_COMMAND_UI_RANGE(ID_DIFF_OPTIONS_WHITESPACE_COMPARE, ID_DIFF_OPTIONS_WHITESPACE_IGNOREALL, OnUpdateDiffWhitespace) @@ -247,18 +267,9 @@ BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) ON_UPDATE_COMMAND_UI(ID_DIFF_OPTIONS_INCLUDE_SUBFOLDERS, OnUpdateIncludeSubfolders) ON_COMMAND_RANGE(ID_DIFF_OPTIONS_COMPMETHOD_FULL_CONTENTS, ID_DIFF_OPTIONS_COMPMETHOD_SIZE, OnCompareMethod) ON_UPDATE_COMMAND_UI_RANGE(ID_DIFF_OPTIONS_COMPMETHOD_FULL_CONTENTS, ID_DIFF_OPTIONS_COMPMETHOD_SIZE, OnUpdateCompareMethod) - ON_COMMAND_RANGE(ID_MRU_FIRST, ID_MRU_LAST, OnMRUs) - ON_UPDATE_COMMAND_UI(ID_MRU_FIRST, OnUpdateNoMRUs) - ON_UPDATE_COMMAND_UI(ID_NO_MRU, OnUpdateNoMRUs) - ON_COMMAND(ID_FIRSTFILE, OnFirstFile) - ON_UPDATE_COMMAND_UI(ID_FIRSTFILE, OnUpdateFirstFile) - ON_COMMAND(ID_PREVFILE, OnPrevFile) - ON_UPDATE_COMMAND_UI(ID_PREVFILE, OnUpdatePrevFile) - ON_COMMAND(ID_NEXTFILE, OnNextFile) - ON_UPDATE_COMMAND_UI(ID_NEXTFILE, OnUpdateNextFile) - ON_COMMAND(ID_LASTFILE, OnLastFile) - ON_UPDATE_COMMAND_UI(ID_LASTFILE, OnUpdateLastFile) - ON_COMMAND(ID_ACCEL_QUIT, &CMainFrame::OnAccelQuit) + // Status bar + ON_UPDATE_COMMAND_UI(ID_STATUS_PLUGIN, OnUpdatePluginName) + // Window manager ON_MESSAGE(WMU_CHILDFRAMEADDED, &CMainFrame::OnChildFrameAdded) ON_MESSAGE(WMU_CHILDFRAMEREMOVED, &CMainFrame::OnChildFrameRemoved) ON_MESSAGE(WMU_CHILDFRAMEACTIVATE, &CMainFrame::OnChildFrameActivate) diff --git a/Src/Merge.cpp b/Src/Merge.cpp index e478598f1..fe2634fbc 100644 --- a/Src/Merge.cpp +++ b/Src/Merge.cpp @@ -80,12 +80,12 @@ BEGIN_MESSAGE_MAP(CMergeApp, CWinApp) ON_COMMAND(ID_FILE_MERGINGMODE, OnMergingMode) ON_UPDATE_COMMAND_UI(ID_FILE_MERGINGMODE, OnUpdateMergingMode) ON_UPDATE_COMMAND_UI(ID_STATUS_MERGINGMODE, OnUpdateMergingStatus) + ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) //}}AFX_MSG_MAP // Standard file based document commands //ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) //ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) // Standard print setup command - ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// diff --git a/Src/MergeDoc.cpp b/Src/MergeDoc.cpp index a16699f0d..ac3181c79 100644 --- a/Src/MergeDoc.cpp +++ b/Src/MergeDoc.cpp @@ -72,41 +72,61 @@ IMPLEMENT_DYNCREATE(CMergeDoc, CDocument) BEGIN_MESSAGE_MAP(CMergeDoc, CDocument) //{{AFX_MSG_MAP(CMergeDoc) + // [File] menu ON_COMMAND(ID_FILE_SAVE, OnFileSave) + ON_UPDATE_COMMAND_UI(ID_FILE_SAVE, OnUpdateFileSave) ON_COMMAND(ID_FILE_SAVE_LEFT, OnFileSaveLeft) + ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_LEFT, OnUpdateFileSaveLeft) ON_COMMAND(ID_FILE_SAVE_MIDDLE, OnFileSaveMiddle) + ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_MIDDLE, OnUpdateFileSaveMiddle) ON_COMMAND(ID_FILE_SAVE_RIGHT, OnFileSaveRight) + ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_RIGHT, OnUpdateFileSaveRight) ON_COMMAND(ID_FILE_SAVEAS_LEFT, OnFileSaveAsLeft) - ON_UPDATE_COMMAND_UI(ID_FILE_SAVEAS_MIDDLE, OnUpdateFileSaveAsMiddle) ON_COMMAND(ID_FILE_SAVEAS_MIDDLE, OnFileSaveAsMiddle) + ON_UPDATE_COMMAND_UI(ID_FILE_SAVEAS_MIDDLE, OnUpdateFileSaveAsMiddle) ON_COMMAND(ID_FILE_SAVEAS_RIGHT, OnFileSaveAsRight) - ON_UPDATE_COMMAND_UI(ID_STATUS_DIFFNUM, OnUpdateStatusNum) - ON_COMMAND(ID_TOOLS_GENERATEREPORT, OnToolsGenerateReport) - ON_COMMAND(ID_TOOLS_GENERATEPATCH, OnToolsGeneratePatch) + ON_COMMAND(ID_FILE_LEFT_READONLY, OnFileReadOnlyLeft) + ON_UPDATE_COMMAND_UI(ID_FILE_LEFT_READONLY, OnUpdateFileReadOnlyLeft) + ON_COMMAND(ID_FILE_MIDDLE_READONLY, OnFileReadOnlyMiddle) + ON_UPDATE_COMMAND_UI(ID_FILE_MIDDLE_READONLY, OnUpdateFileReadOnlyMiddle) + ON_COMMAND(ID_FILE_RIGHT_READONLY, OnFileReadOnlyRight) + ON_UPDATE_COMMAND_UI(ID_FILE_RIGHT_READONLY, OnUpdateFileReadOnlyRight) ON_COMMAND(ID_RESCAN, OnFileReload) ON_COMMAND(ID_FILE_ENCODING, OnFileEncoding) + ON_COMMAND(ID_MERGE_COMPARE_TEXT, OnFileRecompareAsText) + ON_UPDATE_COMMAND_UI(ID_MERGE_COMPARE_TEXT, OnUpdateFileRecompareAsText) + ON_COMMAND(ID_MERGE_COMPARE_TABLE, OnFileRecompareAsTable) + ON_UPDATE_COMMAND_UI(ID_MERGE_COMPARE_TABLE, OnUpdateFileRecompareAsTable) + ON_COMMAND_RANGE(ID_MERGE_COMPARE_HEX, ID_MERGE_COMPARE_IMAGE, OnFileRecompareAs) + ON_COMMAND_RANGE(ID_UNPACKERS_FIRST, ID_UNPACKERS_LAST, OnFileRecompareAs) + // [View] menu ON_COMMAND_RANGE(ID_VIEW_DIFFCONTEXT_ALL, ID_VIEW_DIFFCONTEXT_INVERT, OnDiffContext) ON_UPDATE_COMMAND_UI_RANGE(ID_VIEW_DIFFCONTEXT_ALL, ID_VIEW_DIFFCONTEXT_INVERT, OnUpdateDiffContext) + ON_COMMAND(ID_SWAPPANES_SWAP12, (OnViewSwapPanes<0, 1>)) + ON_COMMAND(ID_SWAPPANES_SWAP23, (OnViewSwapPanes<1, 2>)) + ON_COMMAND(ID_SWAPPANES_SWAP13, (OnViewSwapPanes<0, 2>)) + ON_UPDATE_COMMAND_UI_RANGE(ID_SWAPPANES_SWAP23, ID_SWAPPANES_SWAP13, OnUpdateSwapContext) + ON_COMMAND(ID_REFRESH, OnRefresh) + // [Tools] menu + ON_COMMAND(ID_TOOLS_GENERATEREPORT, OnToolsGenerateReport) + ON_COMMAND(ID_TOOLS_GENERATEPATCH, OnToolsGeneratePatch) + // [Plugins] menu ON_COMMAND(ID_OPEN_WITH_UNPACKER, OnOpenWithUnpacker) ON_COMMAND(ID_APPLY_PREDIFFER, OnApplyPrediffer) ON_COMMAND_RANGE(ID_NO_PREDIFFER, ID_NO_PREDIFFER, OnPrediffer) ON_COMMAND_RANGE(ID_PREDIFFERS_FIRST, ID_PREDIFFERS_LAST, OnPrediffer) ON_UPDATE_COMMAND_UI(ID_NO_PREDIFFER, OnUpdatePrediffer) ON_UPDATE_COMMAND_UI_RANGE(ID_PREDIFFERS_FIRST, ID_PREDIFFERS_LAST, OnUpdatePrediffer) + // Encoding Error dialog ON_BN_CLICKED(IDC_FILEENCODING, OnBnClickedFileEncoding) ON_BN_CLICKED(IDC_PLUGIN, OnBnClickedPlugin) ON_BN_CLICKED(IDC_HEXVIEW, OnBnClickedHexView) - ON_COMMAND(IDOK, OnOK) - ON_COMMAND(ID_MERGE_COMPARE_TEXT, OnFileRecompareAsText) - ON_UPDATE_COMMAND_UI(ID_MERGE_COMPARE_TEXT, OnUpdateFileRecompareAsText) - ON_COMMAND(ID_MERGE_COMPARE_TABLE, OnFileRecompareAsTable) - ON_UPDATE_COMMAND_UI(ID_MERGE_COMPARE_TABLE, OnUpdateFileRecompareAsTable) - ON_COMMAND_RANGE(ID_MERGE_COMPARE_HEX, ID_MERGE_COMPARE_IMAGE, OnFileRecompareAs) - ON_COMMAND_RANGE(ID_UNPACKERS_FIRST, ID_UNPACKERS_LAST, OnFileRecompareAs) - ON_COMMAND(ID_SWAPPANES_SWAP12, (OnViewSwapPanes<0, 1>)) - ON_COMMAND(ID_SWAPPANES_SWAP23, (OnViewSwapPanes<1, 2>)) - ON_COMMAND(ID_SWAPPANES_SWAP13, (OnViewSwapPanes<0, 2>)) - ON_UPDATE_COMMAND_UI_RANGE(ID_SWAPPANES_SWAP23, ID_SWAPPANES_SWAP13, OnUpdateSwapContext) + ON_COMMAND(IDOK, OnOK) + // Status bar + ON_UPDATE_COMMAND_UI(ID_STATUS_PANE0FILE_RO, OnUpdateStatusRO) + ON_UPDATE_COMMAND_UI(ID_STATUS_PANE1FILE_RO, OnUpdateStatusRO) + ON_UPDATE_COMMAND_UI(ID_STATUS_PANE2FILE_RO, OnUpdateStatusRO) + ON_UPDATE_COMMAND_UI(ID_STATUS_DIFFNUM, OnUpdateStatusNum) //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -2045,6 +2065,44 @@ void CMergeDoc::OnFileSaveRight() } /** + * @brief Called when "Save" item is updated + */ +void CMergeDoc::OnUpdateFileSave(CCmdUI* pCmdUI) +{ + bool bModified = false; + for (int nPane = 0; nPane < m_nBuffers; nPane++) + { + if (m_ptBuf[nPane]->IsModified()) + bModified = true; + } + pCmdUI->Enable(bModified); +} + +/** + * @brief Called when "Save left (as...)" item is updated + */ +void CMergeDoc::OnUpdateFileSaveLeft(CCmdUI* pCmdUI) +{ + pCmdUI->Enable(m_ptBuf[0]->IsModified()); +} + +/** + * @brief Called when "Save middle (as...)" item is updated + */ +void CMergeDoc::OnUpdateFileSaveMiddle(CCmdUI* pCmdUI) +{ + pCmdUI->Enable(m_nBuffers == 3 && m_ptBuf[1]->IsModified()); +} + +/** + * @brief Called when "Save right (as...)" item is updated + */ +void CMergeDoc::OnUpdateFileSaveRight(CCmdUI* pCmdUI) +{ + pCmdUI->Enable(m_ptBuf[m_nBuffers - 1]->IsModified()); +} + +/** * @brief Saves left-side file with name asked */ void CMergeDoc::OnFileSaveAsLeft() @@ -2080,6 +2138,82 @@ void CMergeDoc::OnFileSaveAsRight() } /** + * @brief Enable/disable left buffer read-only + */ +void CMergeDoc::OnFileReadOnlyLeft() +{ + bool bReadOnly = m_ptBuf[0]->GetReadOnly(); + m_ptBuf[0]->SetReadOnly(!bReadOnly); +} + +/** + * @brief Called when "Left read-only" item is updated + */ +void CMergeDoc::OnUpdateFileReadOnlyLeft(CCmdUI* pCmdUI) +{ + bool bReadOnly = m_ptBuf[0]->GetReadOnly(); + pCmdUI->Enable(true); + pCmdUI->SetCheck(bReadOnly); +} + +/** + * @brief Enable/disable middle buffer read-only + */ +void CMergeDoc::OnFileReadOnlyMiddle() +{ + if (m_nBuffers == 3) + { + bool bReadOnly = m_ptBuf[1]->GetReadOnly(); + m_ptBuf[1]->SetReadOnly(!bReadOnly); + } +} + +/** + * @brief Called when "Middle read-only" item is updated + */ +void CMergeDoc::OnUpdateFileReadOnlyMiddle(CCmdUI* pCmdUI) +{ + if (m_nBuffers < 3) + { + pCmdUI->Enable(false); + } + else + { + bool bReadOnly = m_ptBuf[1]->GetReadOnly(); + pCmdUI->Enable(true); + pCmdUI->SetCheck(bReadOnly); + } +} + +/** + * @brief Enable/disable right buffer read-only + */ +void CMergeDoc::OnFileReadOnlyRight() +{ + bool bReadOnly = m_ptBuf[m_nBuffers - 1]->GetReadOnly(); + m_ptBuf[m_nBuffers - 1]->SetReadOnly(!bReadOnly); +} + +/** + * @brief Called when "Left read-only" item is updated + */ +void CMergeDoc::OnUpdateFileReadOnlyRight(CCmdUI* pCmdUI) +{ + bool bReadOnly = m_ptBuf[m_nBuffers - 1]->GetReadOnly(); + pCmdUI->Enable(true); + pCmdUI->SetCheck(bReadOnly); +} + +/** + * @brief Update readonly statusbaritem + */ +void CMergeDoc::OnUpdateStatusRO(CCmdUI* pCmdUI) +{ + bool bRO = m_ptBuf[pCmdUI->m_nID - ID_STATUS_PANE0FILE_RO]->GetReadOnly(); + pCmdUI->Enable(bRO); +} + +/** * @brief Update diff-number pane text in file compare. * The diff number pane shows selected difference/amount of differences when * there is difference selected. If there is no difference selected, then @@ -2204,6 +2338,15 @@ void CMergeDoc::OnUpdateDiffContext(CCmdUI* pCmdUI) } /** + * @brief Refresh display using text-buffers + * @note This DOES NOT reload files! + */ +void CMergeDoc::OnRefresh() +{ + FlushAndRescan(true); +} + +/** * @brief Build the diff array and prepare buffers accordingly (insert ghost lines, set WinMerge flags) * * @note After PrimeTextBuffers(), all buffers should have the same length. diff --git a/Src/MergeDoc.h b/Src/MergeDoc.h index 5c41688b0..daf489ee2 100644 --- a/Src/MergeDoc.h +++ b/Src/MergeDoc.h @@ -381,9 +381,13 @@ protected: protected: //{{AFX_MSG(CMergeDoc) afx_msg void OnFileSave(); + afx_msg void OnUpdateFileSave(CCmdUI* pCmdUI); afx_msg void OnFileSaveLeft(); + afx_msg void OnUpdateFileSaveLeft(CCmdUI* pCmdUI); afx_msg void OnFileSaveMiddle(); + afx_msg void OnUpdateFileSaveMiddle(CCmdUI* pCmdUI); afx_msg void OnFileSaveRight(); + afx_msg void OnUpdateFileSaveRight(CCmdUI* pCmdUI); afx_msg void OnFileSaveAsLeft(); afx_msg void OnUpdateFileSaveAsMiddle(CCmdUI* pCmdUI); afx_msg void OnFileSaveAsMiddle(); @@ -391,6 +395,13 @@ protected: afx_msg void OnUpdateStatusNum(CCmdUI* pCmdUI); afx_msg void OnFileReload(); afx_msg void OnFileEncoding(); + afx_msg void OnFileReadOnlyLeft(); + afx_msg void OnUpdateFileReadOnlyLeft(CCmdUI* pCmdUI); + afx_msg void OnFileReadOnlyMiddle(); + afx_msg void OnUpdateFileReadOnlyMiddle(CCmdUI* pCmdUI); + afx_msg void OnFileReadOnlyRight(); + afx_msg void OnUpdateFileReadOnlyRight(CCmdUI* pCmdUI); + afx_msg void OnUpdateStatusRO(CCmdUI* pCmdUI); afx_msg void OnDiffContext(UINT nID); afx_msg void OnUpdateDiffContext(CCmdUI* pCmdUI); afx_msg void OnToolsGenerateReport(); @@ -409,6 +420,7 @@ protected: template afx_msg void OnViewSwapPanes(); afx_msg void OnUpdateSwapContext(CCmdUI* pCmdUI); + afx_msg void OnRefresh(); afx_msg void OnUpdatePrediffer(CCmdUI* pCmdUI); afx_msg void OnPrediffer(UINT nID ); //}}AFX_MSG diff --git a/Src/MergeEditFrm.cpp b/Src/MergeEditFrm.cpp index 183d3ab7b..231395671 100644 --- a/Src/MergeEditFrm.cpp +++ b/Src/MergeEditFrm.cpp @@ -39,15 +39,16 @@ BEGIN_MESSAGE_MAP(CMergeEditFrame, CMergeFrameCommon) ON_WM_CLOSE() ON_WM_MDIACTIVATE() ON_WM_TIMER() + ON_WM_SIZE() + ON_MESSAGE_VOID(WM_IDLEUPDATECMDUI, OnIdleUpdateCmdUI) + ON_MESSAGE(MSG_STORE_PANESIZES, OnStorePaneSizes) + // [View] menu ON_UPDATE_COMMAND_UI(ID_VIEW_DETAIL_BAR, OnUpdateControlBarMenu) ON_COMMAND_EX(ID_VIEW_DETAIL_BAR, OnBarCheck) ON_UPDATE_COMMAND_UI(ID_VIEW_LOCATION_BAR, OnUpdateControlBarMenu) ON_COMMAND_EX(ID_VIEW_LOCATION_BAR, OnBarCheck) ON_COMMAND(ID_VIEW_SPLITVERTICALLY, OnViewSplitVertically) ON_UPDATE_COMMAND_UI(ID_VIEW_SPLITVERTICALLY, OnUpdateViewSplitVertically) - ON_MESSAGE(MSG_STORE_PANESIZES, OnStorePaneSizes) - ON_WM_SIZE() - ON_MESSAGE_VOID(WM_IDLEUPDATECMDUI, OnIdleUpdateCmdUI) //}}AFX_MSG_MAP END_MESSAGE_MAP() diff --git a/Src/MergeEditView.cpp b/Src/MergeEditView.cpp index 25caf6a28..c0823ed55 100644 --- a/Src/MergeEditView.cpp +++ b/Src/MergeEditView.cpp @@ -79,8 +79,21 @@ CMergeEditView::~CMergeEditView() BEGIN_MESSAGE_MAP(CMergeEditView, CCrystalEditViewEx) //{{AFX_MSG_MAP(CMergeEditView) - ON_COMMAND(ID_CURDIFF, OnCurdiff) - ON_UPDATE_COMMAND_UI(ID_CURDIFF, OnUpdateCurdiff) + ON_WM_CONTEXTMENU() + ON_WM_TIMER() + ON_WM_LBUTTONDBLCLK() + ON_WM_LBUTTONUP() + ON_WM_RBUTTONDOWN() + ON_WM_VSCROLL () + ON_WM_HSCROLL () + ON_WM_SIZE() + ON_WM_MOVE() + ON_WM_MOUSEWHEEL() + ON_WM_MOUSEHWHEEL() + // [File] menu + ON_COMMAND_RANGE(ID_EOL_TO_DOS, ID_EOL_TO_MAC, OnConvertEolTo) + ON_UPDATE_COMMAND_UI_RANGE(ID_EOL_TO_DOS, ID_EOL_TO_MAC, OnUpdateConvertEolTo) + // [Edit] menu ON_COMMAND(ID_EDIT_COPY, OnEditCopy) ON_UPDATE_COMMAND_UI(ID_EDIT_COPY, OnUpdateEditCopy) ON_COMMAND(ID_EDIT_CUT, OnEditCut) @@ -88,6 +101,39 @@ BEGIN_MESSAGE_MAP(CMergeEditView, CCrystalEditViewEx) ON_COMMAND(ID_EDIT_PASTE, OnEditPaste) ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, OnUpdateEditPaste) ON_COMMAND(ID_EDIT_UNDO, OnEditUndo) + ON_UPDATE_COMMAND_UI(ID_EDIT_UNDO, OnUpdateEditUndo) + ON_COMMAND(ID_EDIT_REDO, OnEditRedo) + ON_UPDATE_COMMAND_UI(ID_EDIT_REDO, OnUpdateEditRedo) + ON_UPDATE_COMMAND_UI(ID_EDIT_REPLACE, OnUpdateEditReplace) + ON_COMMAND(ID_EDIT_WMGOTO, OnWMGoto) + ON_COMMAND(ID_EDIT_COPY_LINENUMBERS, OnEditCopyLineNumbers) + ON_UPDATE_COMMAND_UI(ID_EDIT_COPY_LINENUMBERS, OnUpdateEditCopyLinenumbers) + // [View] menu + ON_COMMAND(ID_SELECTLINEDIFF, OnSelectLineDiff) + ON_UPDATE_COMMAND_UI(ID_SELECTLINEDIFF, OnUpdateSelectLineDiff) + ON_COMMAND(ID_SELECTPREVLINEDIFF, OnSelectLineDiff) + ON_UPDATE_COMMAND_UI(ID_SELECTPREVLINEDIFF, OnUpdateSelectLineDiff) + ON_COMMAND(ID_VIEW_LINEDIFFS, OnViewLineDiffs) + ON_UPDATE_COMMAND_UI(ID_VIEW_LINEDIFFS, OnUpdateViewLineDiffs) + ON_COMMAND(ID_VIEW_WORDWRAP, OnViewWordWrap) + ON_UPDATE_COMMAND_UI(ID_VIEW_WORDWRAP, OnUpdateViewWordWrap) + ON_COMMAND(ID_VIEW_LINENUMBERS, OnViewLineNumbers) + ON_UPDATE_COMMAND_UI(ID_VIEW_LINENUMBERS, OnUpdateViewLineNumbers) + ON_COMMAND(ID_VIEW_WHITESPACE, OnViewWhitespace) + ON_UPDATE_COMMAND_UI(ID_VIEW_WHITESPACE, OnUpdateViewWhitespace) + ON_COMMAND(ID_VIEW_EOL, OnViewEOL) + ON_UPDATE_COMMAND_UI(ID_VIEW_EOL, OnUpdateViewEOL) + ON_COMMAND(ID_VIEW_SELMARGIN, OnViewMargin) + ON_UPDATE_COMMAND_UI(ID_VIEW_SELMARGIN, OnUpdateViewMargin) + ON_UPDATE_COMMAND_UI(ID_VIEW_CHANGESCHEME, OnUpdateViewChangeScheme) + ON_COMMAND_RANGE(ID_COLORSCHEME_FIRST, ID_COLORSCHEME_LAST, OnChangeScheme) + ON_UPDATE_COMMAND_UI_RANGE(ID_COLORSCHEME_FIRST, ID_COLORSCHEME_LAST, OnUpdateChangeScheme) + ON_COMMAND(ID_VIEW_ZOOMIN, OnViewZoomIn) + ON_COMMAND(ID_VIEW_ZOOMOUT, OnViewZoomOut) + ON_COMMAND(ID_VIEW_ZOOMNORMAL, OnViewZoomNormal) + // [Merge] menu + ON_COMMAND(ID_CURDIFF, OnCurdiff) + ON_UPDATE_COMMAND_UI(ID_CURDIFF, OnUpdateCurdiff) ON_COMMAND(ID_FIRSTDIFF, OnFirstdiff) ON_UPDATE_COMMAND_UI(ID_FIRSTDIFF, OnUpdateFirstdiff) ON_COMMAND(ID_LASTDIFF, OnLastdiff) @@ -124,9 +170,6 @@ BEGIN_MESSAGE_MAP(CMergeEditView, CCrystalEditViewEx) ON_UPDATE_COMMAND_UI(ID_NEXTDIFFRO, OnUpdateNextdiffRO) ON_COMMAND(ID_PREVDIFFRO, OnPrevdiffRO) ON_UPDATE_COMMAND_UI(ID_PREVDIFFRO, OnUpdatePrevdiffRO) - ON_WM_LBUTTONDBLCLK() - ON_WM_LBUTTONUP() - ON_WM_RBUTTONDOWN() ON_COMMAND(ID_ALL_LEFT, OnAllLeft) ON_UPDATE_COMMAND_UI(ID_ALL_LEFT, OnUpdateAllLeft) ON_COMMAND(ID_ALL_RIGHT, OnAllRight) @@ -149,89 +192,41 @@ BEGIN_MESSAGE_MAP(CMergeEditView, CCrystalEditViewEx) ON_UPDATE_COMMAND_UI(ID_COPY_FROM_RIGHT, OnUpdateCopyFromRight) ON_COMMAND(ID_COPY_LINES_FROM_RIGHT, OnCopyLinesFromRight) ON_UPDATE_COMMAND_UI(ID_COPY_LINES_FROM_RIGHT, OnUpdateCopyLinesFromRight) - ON_COMMAND(ID_ADD_SYNCPOINT, OnAddSyncPoint) - ON_COMMAND(ID_CLEAR_SYNCPOINTS, OnClearSyncPoints) - ON_UPDATE_COMMAND_UI(ID_CLEAR_SYNCPOINTS, OnUpdateClearSyncPoints) - ON_UPDATE_COMMAND_UI(ID_EDIT_UNDO, OnUpdateEditUndo) - ON_COMMAND(ID_EDIT_REDO, OnEditRedo) - ON_UPDATE_COMMAND_UI(ID_EDIT_REDO, OnUpdateEditRedo) - ON_WM_TIMER() - ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_LEFT, OnUpdateFileSaveLeft) - ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_MIDDLE, OnUpdateFileSaveMiddle) - ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_RIGHT, OnUpdateFileSaveRight) - ON_COMMAND(ID_REFRESH, OnRefresh) - ON_UPDATE_COMMAND_UI(ID_FILE_SAVE, OnUpdateFileSave) - ON_COMMAND(ID_SELECTLINEDIFF, OnSelectLineDiff) - ON_UPDATE_COMMAND_UI(ID_SELECTLINEDIFF, OnUpdateSelectLineDiff) - ON_COMMAND(ID_SELECTPREVLINEDIFF, OnSelectLineDiff) - ON_UPDATE_COMMAND_UI(ID_SELECTPREVLINEDIFF, OnUpdateSelectLineDiff) - ON_COMMAND(ID_ADD_TO_IGNORED_SUBSTITUTIONS, OnAddToSubstitutionFilters) - ON_UPDATE_COMMAND_UI(ID_ADD_TO_IGNORED_SUBSTITUTIONS, OnUpdateAddToSubstitutionFilters) - ON_WM_CONTEXTMENU() - ON_UPDATE_COMMAND_UI(ID_EDIT_REPLACE, OnUpdateEditReplace) - ON_COMMAND(ID_FILE_LEFT_READONLY, OnLeftReadOnly) - ON_UPDATE_COMMAND_UI(ID_FILE_LEFT_READONLY, OnUpdateLeftReadOnly) - ON_COMMAND(ID_FILE_MIDDLE_READONLY, OnMiddleReadOnly) - ON_UPDATE_COMMAND_UI(ID_FILE_MIDDLE_READONLY, OnUpdateMiddleReadOnly) - ON_COMMAND(ID_FILE_RIGHT_READONLY, OnRightReadOnly) - ON_UPDATE_COMMAND_UI(ID_FILE_RIGHT_READONLY, OnUpdateRightReadOnly) - ON_UPDATE_COMMAND_UI(ID_STATUS_PANE0FILE_RO, OnUpdateStatusRO) - ON_UPDATE_COMMAND_UI(ID_STATUS_PANE1FILE_RO, OnUpdateStatusRO) - ON_UPDATE_COMMAND_UI(ID_STATUS_PANE2FILE_RO, OnUpdateStatusRO) - ON_COMMAND_RANGE(ID_EOL_TO_DOS, ID_EOL_TO_MAC, OnConvertEolTo) - ON_UPDATE_COMMAND_UI_RANGE(ID_EOL_TO_DOS, ID_EOL_TO_MAC, OnUpdateConvertEolTo) - ON_UPDATE_COMMAND_UI(ID_STATUS_PANE0FILE_EOL, OnUpdateStatusEOL) - ON_UPDATE_COMMAND_UI(ID_STATUS_PANE1FILE_EOL, OnUpdateStatusEOL) - ON_UPDATE_COMMAND_UI(ID_STATUS_PANE2FILE_EOL, OnUpdateStatusEOL) ON_COMMAND(ID_L2RNEXT, OnL2RNext) ON_UPDATE_COMMAND_UI(ID_L2RNEXT, OnUpdateL2RNext) ON_COMMAND(ID_R2LNEXT, OnR2LNext) ON_UPDATE_COMMAND_UI(ID_R2LNEXT, OnUpdateR2LNext) + ON_COMMAND(ID_ADD_SYNCPOINT, OnAddSyncPoint) + ON_COMMAND(ID_CLEAR_SYNCPOINTS, OnClearSyncPoints) + ON_UPDATE_COMMAND_UI(ID_CLEAR_SYNCPOINTS, OnUpdateClearSyncPoints) + // [Plugins] menu + ON_COMMAND_RANGE(ID_SCRIPT_FIRST, ID_SCRIPT_LAST, OnScripts) + ON_COMMAND(ID_TRANSFORM_WITH_SCRIPT, OnTransformWithScript) + // [Window] menu ON_COMMAND(ID_WINDOW_CHANGE_PANE, OnChangePane) ON_COMMAND(ID_NEXT_PANE, OnChangePane) - ON_COMMAND(ID_EDIT_WMGOTO, OnWMGoto) + ON_COMMAND(ID_WINDOW_SPLIT, OnWindowSplit) + ON_UPDATE_COMMAND_UI(ID_WINDOW_SPLIT, OnUpdateWindowSplit) + // [Help] menu + ON_COMMAND(ID_HELP, OnHelp) + // Context menu + ON_COMMAND(ID_ADD_TO_IGNORED_SUBSTITUTIONS, OnAddToSubstitutionFilters) + ON_UPDATE_COMMAND_UI(ID_ADD_TO_IGNORED_SUBSTITUTIONS, OnUpdateAddToSubstitutionFilters) ON_COMMAND(ID_GOTO_MOVED_LINE_LM, OnGotoMovedLineLM) ON_UPDATE_COMMAND_UI(ID_GOTO_MOVED_LINE_LM, OnUpdateGotoMovedLineLM) ON_COMMAND(ID_GOTO_MOVED_LINE_MR, OnGotoMovedLineMR) ON_UPDATE_COMMAND_UI(ID_GOTO_MOVED_LINE_MR, OnUpdateGotoMovedLineMR) ON_COMMAND(ID_FILE_SHELLMENU, OnShellMenu) ON_UPDATE_COMMAND_UI(ID_FILE_SHELLMENU, OnUpdateShellMenu) - ON_COMMAND_RANGE(ID_SCRIPT_FIRST, ID_SCRIPT_LAST, OnScripts) - ON_COMMAND(ID_TRANSFORM_WITH_SCRIPT, OnTransformWithScript) - ON_WM_VSCROLL () - ON_WM_HSCROLL () - ON_COMMAND(ID_EDIT_COPY_LINENUMBERS, OnEditCopyLineNumbers) - ON_UPDATE_COMMAND_UI(ID_EDIT_COPY_LINENUMBERS, OnUpdateEditCopyLinenumbers) - ON_COMMAND(ID_VIEW_LINEDIFFS, OnViewLineDiffs) - ON_UPDATE_COMMAND_UI(ID_VIEW_LINEDIFFS, OnUpdateViewLineDiffs) - ON_COMMAND(ID_VIEW_WORDWRAP, OnViewWordWrap) - ON_UPDATE_COMMAND_UI(ID_VIEW_WORDWRAP, OnUpdateViewWordWrap) - ON_COMMAND(ID_VIEW_LINENUMBERS, OnViewLineNumbers) - ON_UPDATE_COMMAND_UI(ID_VIEW_LINENUMBERS, OnUpdateViewLineNumbers) - ON_COMMAND(ID_VIEW_WHITESPACE, OnViewWhitespace) - ON_UPDATE_COMMAND_UI(ID_VIEW_WHITESPACE, OnUpdateViewWhitespace) - ON_COMMAND(ID_VIEW_EOL, OnViewEOL) - ON_UPDATE_COMMAND_UI(ID_VIEW_EOL, OnUpdateViewEOL) ON_COMMAND(ID_FILE_OPEN_REGISTERED, OnOpenFile) ON_COMMAND(ID_FILE_OPEN_WITHEDITOR, OnOpenFileWithEditor) ON_COMMAND(ID_FILE_OPEN_WITH, OnOpenFileWith) ON_COMMAND(ID_FILE_OPEN_PARENT_FOLDER, OnOpenParentFolder) - ON_WM_SIZE() - ON_WM_MOVE() - ON_COMMAND(ID_HELP, OnHelp) - ON_COMMAND(ID_VIEW_SELMARGIN, OnViewMargin) - ON_UPDATE_COMMAND_UI(ID_VIEW_SELMARGIN, OnUpdateViewMargin) - ON_UPDATE_COMMAND_UI(ID_VIEW_CHANGESCHEME, OnUpdateViewChangeScheme) - ON_COMMAND_RANGE(ID_COLORSCHEME_FIRST, ID_COLORSCHEME_LAST, OnChangeScheme) - ON_UPDATE_COMMAND_UI_RANGE(ID_COLORSCHEME_FIRST, ID_COLORSCHEME_LAST, OnUpdateChangeScheme) - ON_WM_MOUSEWHEEL() - ON_WM_MOUSEHWHEEL() - ON_COMMAND(ID_VIEW_ZOOMIN, OnViewZoomIn) - ON_COMMAND(ID_VIEW_ZOOMOUT, OnViewZoomOut) - ON_COMMAND(ID_VIEW_ZOOMNORMAL, OnViewZoomNormal) - ON_COMMAND(ID_WINDOW_SPLIT, OnWindowSplit) - ON_UPDATE_COMMAND_UI(ID_WINDOW_SPLIT, OnUpdateWindowSplit) + // Status bar ON_NOTIFY(NM_DBLCLK, AFX_IDW_STATUS_BAR, OnStatusBarDblClick) + ON_UPDATE_COMMAND_UI(ID_STATUS_PANE0FILE_EOL, OnUpdateStatusEOL) + ON_UPDATE_COMMAND_UI(ID_STATUS_PANE1FILE_EOL, OnUpdateStatusEOL) + ON_UPDATE_COMMAND_UI(ID_STATUS_PANE2FILE_EOL, OnUpdateStatusEOL) //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -2546,44 +2541,6 @@ bool CMergeEditView::IsReadOnly(int pane) const } /** - * @brief Called when "Save left (as...)" item is updated - */ -void CMergeEditView::OnUpdateFileSaveLeft(CCmdUI* pCmdUI) -{ - CMergeDoc *pd = GetDocument(); - pCmdUI->Enable(!IsReadOnly(0) && pd->m_ptBuf[0]->IsModified()); -} - -/** - * @brief Called when "Save middle (as...)" item is updated - */ -void CMergeEditView::OnUpdateFileSaveMiddle(CCmdUI* pCmdUI) -{ - CMergeDoc *pd = GetDocument(); - pCmdUI->Enable(pd->m_nBuffers == 3 && !IsReadOnly(1) && pd->m_ptBuf[1]->IsModified()); -} - -/** - * @brief Called when "Save right (as...)" item is updated - */ -void CMergeEditView::OnUpdateFileSaveRight(CCmdUI* pCmdUI) -{ - CMergeDoc *pd = GetDocument(); - pCmdUI->Enable(!IsReadOnly(pd->m_nBuffers - 1) && pd->m_ptBuf[pd->m_nBuffers - 1]->IsModified()); -} - -/** - * @brief Refresh display using text-buffers - * @note This DOES NOT reload files! - */ -void CMergeEditView::OnRefresh() -{ - CMergeDoc *pd = GetDocument(); - ASSERT(pd != nullptr); - pd->FlushAndRescan(true); -} - -/** * @brief Handle some keys when in merging mode */ bool CMergeEditView::MergeModeKeyDown(MSG* pMsg) @@ -2658,95 +2615,6 @@ BOOL CMergeEditView::PreTranslateMessage(MSG* pMsg) return CCrystalEditViewEx::PreTranslateMessage(pMsg); } -/** - * @brief Called when "Save" item is updated - */ -void CMergeEditView::OnUpdateFileSave(CCmdUI* pCmdUI) -{ - CMergeDoc *pd = GetDocument(); - - bool bModified = false; - for (int nPane = 0; nPane < pd->m_nBuffers; nPane++) - { - if (pd->m_ptBuf[nPane]->IsModified()) - bModified = true; - } - pCmdUI->Enable(bModified); -} - -/** - * @brief Enable/disable left buffer read-only - */ -void CMergeEditView::OnLeftReadOnly() -{ - CMergeDoc *pd = GetDocument(); - bool bReadOnly = pd->m_ptBuf[0]->GetReadOnly(); - pd->m_ptBuf[0]->SetReadOnly(!bReadOnly); -} - -/** - * @brief Called when "Left read-only" item is updated - */ -void CMergeEditView::OnUpdateLeftReadOnly(CCmdUI* pCmdUI) -{ - CMergeDoc *pd = GetDocument(); - bool bReadOnly = pd->m_ptBuf[0]->GetReadOnly(); - pCmdUI->Enable(true); - pCmdUI->SetCheck(bReadOnly); -} - -/** - * @brief Enable/disable middle buffer read-only - */ -void CMergeEditView::OnMiddleReadOnly() -{ - CMergeDoc *pd = GetDocument(); - if (pd->m_nBuffers == 3) - { - bool bReadOnly = pd->m_ptBuf[1]->GetReadOnly(); - pd->m_ptBuf[1]->SetReadOnly(!bReadOnly); - } -} - -/** - * @brief Called when "Middle read-only" item is updated - */ -void CMergeEditView::OnUpdateMiddleReadOnly(CCmdUI* pCmdUI) -{ - CMergeDoc *pd = GetDocument(); - if (pd->m_nBuffers < 3) - { - pCmdUI->Enable(false); - } - else - { - bool bReadOnly = pd->m_ptBuf[1]->GetReadOnly(); - pCmdUI->Enable(true); - pCmdUI->SetCheck(bReadOnly); - } -} - -/** - * @brief Enable/disable right buffer read-only - */ -void CMergeEditView::OnRightReadOnly() -{ - CMergeDoc *pd = GetDocument(); - bool bReadOnly = pd->m_ptBuf[pd->m_nBuffers - 1]->GetReadOnly(); - pd->m_ptBuf[pd->m_nBuffers - 1]->SetReadOnly(!bReadOnly); -} - -/** - * @brief Called when "Left read-only" item is updated - */ -void CMergeEditView::OnUpdateRightReadOnly(CCmdUI* pCmdUI) -{ - CMergeDoc *pd = GetDocument(); - bool bReadOnly = pd->m_ptBuf[pd->m_nBuffers - 1]->GetReadOnly(); - pCmdUI->Enable(true); - pCmdUI->SetCheck(bReadOnly); -} - /// Store interface we use to display status line info void CMergeEditView::SetStatusInterface(IMergeEditStatus * piMergeEditStatus) { @@ -2866,15 +2734,6 @@ void CMergeEditView::OnUpdateEditReplace(CCmdUI* pCmdUI) } /** - * @brief Update readonly statusbaritem - */ -void CMergeEditView::OnUpdateStatusRO(CCmdUI* pCmdUI) -{ - bool bRO = GetDocument()->m_ptBuf[pCmdUI->m_nID - ID_STATUS_PANE0FILE_RO]->GetReadOnly(); - pCmdUI->Enable(bRO); -} - -/** * @brief Offer a context menu built with scriptlet/ActiveX functions */ void CMergeEditView::OnContextMenu(CWnd* pWnd, CPoint point) @@ -4074,7 +3933,7 @@ void CMergeEditView::OnChangeScheme(UINT nID) CMergeDoc *pDoc = GetDocument(); ASSERT(pDoc != nullptr); pDoc->SetTextType(nID - ID_COLORSCHEME_FIRST); - OnRefresh(); + pDoc->FlushAndRescan(true); } /** diff --git a/Src/MergeEditView.h b/Src/MergeEditView.h index 44e1763ba..9c3b9826d 100644 --- a/Src/MergeEditView.h +++ b/Src/MergeEditView.h @@ -270,11 +270,6 @@ protected: afx_msg void OnEditRedo(); afx_msg void OnUpdateEditRedo(CCmdUI* pCmdUI); afx_msg void OnTimer(UINT_PTR nIDEvent); - afx_msg void OnUpdateFileSaveLeft(CCmdUI* pCmdUI); - afx_msg void OnUpdateFileSaveMiddle(CCmdUI* pCmdUI); - afx_msg void OnUpdateFileSaveRight(CCmdUI* pCmdUI); - afx_msg void OnRefresh(); - afx_msg void OnUpdateFileSave(CCmdUI* pCmdUI); template afx_msg void OnSelectLineDiff(); afx_msg void OnUpdateSelectLineDiff(CCmdUI* pCmdUI); @@ -282,13 +277,6 @@ protected: afx_msg void OnUpdateAddToSubstitutionFilters(CCmdUI* pCmdUI); afx_msg void OnContextMenu(CWnd* pWnd, CPoint point); afx_msg void OnUpdateEditReplace(CCmdUI* pCmdUI); - afx_msg void OnLeftReadOnly(); - afx_msg void OnUpdateLeftReadOnly(CCmdUI* pCmdUI); - afx_msg void OnMiddleReadOnly(); - afx_msg void OnUpdateMiddleReadOnly(CCmdUI* pCmdUI); - afx_msg void OnRightReadOnly(); - afx_msg void OnUpdateRightReadOnly(CCmdUI* pCmdUI); - afx_msg void OnUpdateStatusRO(CCmdUI* pCmdUI); afx_msg void OnConvertEolTo(UINT nID ); afx_msg void OnUpdateConvertEolTo(CCmdUI* pCmdUI); afx_msg void OnUpdateStatusEOL(CCmdUI* pCmdUI); -- 2.11.0