LRESULT CDirView::OnGenerateFileCmpReport(WPARAM wParam, LPARAM lParam)
{
OpenSelection();
- CFrameWnd * pFrame = GetMainFrame()->GetActiveFrame();
- IMergeDoc * pMergeDoc = dynamic_cast<IMergeDoc *>(pFrame->GetActiveDocument());
- if (pMergeDoc == nullptr)
- pMergeDoc = dynamic_cast<IMergeDoc *>(pFrame);
auto *pReportFileName = reinterpret_cast<const TCHAR *>(wParam);
bool *pCompleted = reinterpret_cast<bool *>(lParam);
- if (pMergeDoc != nullptr)
+ if (IMergeDoc * pMergeDoc = GetMainFrame()->GetActiveIMergeDoc())
{
pMergeDoc->GenerateReport(pReportFileName);
pMergeDoc->CloseNow();
~CHexMergeDoc();
int UpdateDiffItem(CDirDoc * pDirDoc);
bool PromptAndSaveIfNeeded(bool bAllowCancel);
+ CDirDoc* GetDirDoc() const override { return m_pDirDoc; };
void SetDirDoc(CDirDoc * pDirDoc) override;
void DirDocClosing(CDirDoc * pDirDoc) override;
bool CloseNow() override;
Removed,\r
};\r
\r
+ virtual CDirDoc* GetDirDoc() const = 0;\r
virtual void SetDirDoc(CDirDoc *pDirDoc) = 0;\r
virtual bool CloseNow(void) = 0;\r
virtual bool GenerateReport(const String &path) const = 0;\r
bool OpenDocs(int nFiles, const FileLocation fileloc[], const bool bRO[], const String strDesc[], CMDIFrameWnd *pParent);
void MoveOnLoad(int nPane = -1, int nLineIndex = -1);
void ChangeFile(int pane, const String& path);
+ CDirDoc* GetDirDoc() const override { return m_pDirDoc; };
void SetDirDoc(CDirDoc * pDirDoc) override;
void UpdateResources();
bool CloseNow() override;
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)
- //}}AFX_MSG_MAP
ON_MESSAGE(WMU_CHILDFRAMEADDED, &CMainFrame::OnChildFrameAdded)
ON_MESSAGE(WMU_CHILDFRAMEREMOVED, &CMainFrame::OnChildFrameRemoved)
ON_MESSAGE(WMU_CHILDFRAMEACTIVATE, &CMainFrame::OnChildFrameActivate)
ON_MESSAGE(WMU_CHILDFRAMEACTIVATED, &CMainFrame::OnChildFrameActivated)
+ //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/**
LRESULT CMainFrame::OnUser1(WPARAM wParam, LPARAM lParam)
{
- CFrameWnd * pFrame = GetActiveFrame();
- if (pFrame != nullptr)
- {
- IMergeDoc *pMergeDoc = dynamic_cast<IMergeDoc *>(pFrame->GetActiveDocument());
- if (pMergeDoc == nullptr)
- pMergeDoc = dynamic_cast<IMergeDoc *>(pFrame);
- if (pMergeDoc != nullptr)
- pMergeDoc->CheckFileChanged();
- }
+ if (IMergeDoc *pMergeDoc = GetActiveIMergeDoc())
+ pMergeDoc->CheckFileChanged();
return 0;
}
CMDIFrameWnd::OnActivateApp(bActive, hTask);
#endif
- CFrameWnd * pFrame = GetActiveFrame();
- if (pFrame != nullptr)
- {
- IMergeDoc *pMergeDoc = dynamic_cast<IMergeDoc *>(pFrame->GetActiveDocument());
- if (pMergeDoc == nullptr)
- pMergeDoc = dynamic_cast<IMergeDoc *>(pFrame);
- if (pMergeDoc != nullptr)
- PostMessage(WM_USER+1);
- }
+ if (IMergeDoc *pMergeDoc = GetActiveIMergeDoc())
+ PostMessage(WM_USER+1);
}
BOOL CMainFrame::CreateToolbar()
pCmdUI->SetText(_T(""));
}
+/**
+ * @brief Move to next file
+ */
+void CMainFrame::OnNextFile()
+{
+ if (IMergeDoc* pMergeDoc = GetActiveIMergeDoc())
+ if (CDirDoc* pDirDoc = pMergeDoc->GetDirDoc())
+ pDirDoc->MoveToNextFile(pMergeDoc);
+}
+
+/**
+ * @brief Called when Move to next file is updated
+ */
+void CMainFrame::OnUpdateNextFile(CCmdUI* pCmdUI)
+{
+ bool enabled = false;
+ if (IMergeDoc* pMergeDoc = GetActiveIMergeDoc())
+ if (CDirDoc* pDirDoc = pMergeDoc->GetDirDoc())
+ enabled = !pDirDoc->IsLastFile();
+ pCmdUI->Enable(enabled);
+}
+
+/**
+ * @brief Move to previous file
+ */
+void CMainFrame::OnPrevFile()
+{
+ if (IMergeDoc* pMergeDoc = GetActiveIMergeDoc())
+ if (CDirDoc* pDirDoc = pMergeDoc->GetDirDoc())
+ pDirDoc->MoveToPrevFile(pMergeDoc);
+}
+
+/**
+ * @brief Called when Move to previous file is updated
+ */
+void CMainFrame::OnUpdatePrevFile(CCmdUI* pCmdUI)
+{
+ bool enabled = false;
+ if (IMergeDoc* pMergeDoc = GetActiveIMergeDoc())
+ if (CDirDoc* pDirDoc = pMergeDoc->GetDirDoc())
+ enabled = !pDirDoc->IsFirstFile();
+ pCmdUI->Enable(enabled);
+}
+
+/**
+ * @brief Move to first file
+ */
+void CMainFrame::OnFirstFile()
+{
+ if (IMergeDoc* pMergeDoc = GetActiveIMergeDoc())
+ if (CDirDoc* pDirDoc = pMergeDoc->GetDirDoc())
+ pDirDoc->MoveToFirstFile(pMergeDoc);
+}
+
+/**
+ * @brief Called when Move to first file is updated
+ */
+void CMainFrame::OnUpdateFirstFile(CCmdUI* pCmdUI)
+{
+ bool enabled = false;
+ if (IMergeDoc* pMergeDoc = GetActiveIMergeDoc())
+ if (CDirDoc* pDirDoc = pMergeDoc->GetDirDoc())
+ enabled = !pDirDoc->IsFirstFile();
+ pCmdUI->Enable(enabled);
+}
+
+/**
+ * @brief Move to last file
+ */
+void CMainFrame::OnLastFile()
+{
+ if (IMergeDoc* pMergeDoc = GetActiveIMergeDoc())
+ if (CDirDoc* pDirDoc = pMergeDoc->GetDirDoc())
+ pDirDoc->MoveToLastFile(pMergeDoc);
+}
+
+/**
+ * @brief Called when Move to last file item is updated
+ */
+void CMainFrame::OnUpdateLastFile(CCmdUI* pCmdUI)
+{
+ bool enabled = false;
+ if (IMergeDoc* pMergeDoc = GetActiveIMergeDoc())
+ if (CDirDoc* pDirDoc = pMergeDoc->GetDirDoc())
+ enabled = !pDirDoc->IsLastFile();
+ pCmdUI->Enable(enabled);
+}
+
void CMainFrame::ReloadMenu()
{
// set the menu of the main frame window
}
}
+IMergeDoc* CMainFrame::GetActiveIMergeDoc()
+{
+ CFrameWnd* pFrame = GetActiveFrame();
+ if (!pFrame)
+ return nullptr;
+ IMergeDoc* pMergeDoc = dynamic_cast<IMergeDoc*>(pFrame->GetActiveDocument());
+ if (!pMergeDoc)
+ pMergeDoc = dynamic_cast<IMergeDoc *>(pFrame);
+ return pMergeDoc;
+}
+
void CMainFrame::UpdateDocTitle()
{
CDocManager* pDocManager = AfxGetApp()->m_pDocManager;
class PackingInfo;
class CLanguageSelect;
+struct IMergeDoc;
CMainFrame * GetMainFrame(); // access to the singleton main frame object
void ReloadMenu();
DropHandler *GetDropHandler() const { return m_pDropHandler; }
const CTypedPtrArray<CPtrArray, CMDIChildWnd*>* GetChildArray() const { return &m_arrChild; }
+ IMergeDoc* GetActiveIMergeDoc();
// Overrides
virtual void GetMessageString(UINT nID, CString& rMessage) const;
afx_msg void OnUpdateCompareMethod(CCmdUI* pCmdUI);
afx_msg void OnMRUs(UINT nID);
afx_msg void OnUpdateNoMRUs(CCmdUI* pCmdUI);
- afx_msg void OnTimer(UINT_PTR nIDEvent);
+ afx_msg void OnFirstFile();
+ afx_msg void OnUpdateFirstFile(CCmdUI* pCmdUI);
+ afx_msg void OnPrevFile();
+ afx_msg void OnUpdatePrevFile(CCmdUI* pCmdUI);
+ afx_msg void OnNextFile();
+ afx_msg void OnUpdateNextFile(CCmdUI* pCmdUI);
+ afx_msg void OnLastFile();
+ afx_msg void OnUpdateLastFile(CCmdUI* pCmdUI);
+ afx_msg void OnTimer(UINT_PTR nIDEvent);
afx_msg void OnDestroy();
afx_msg void OnAccelQuit();
- //}}AFX_MSG
afx_msg LRESULT OnChildFrameAdded(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnChildFrameRemoved(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnChildFrameActivate(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnChildFrameActivated(WPARAM wParam, LPARAM lParam);
+ //}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
void RemoveMergeViews(int nGroup);
void SetLocationView(CLocationView *pLocationView) { m_pLocationView = pLocationView; }
+ CDirDoc * GetDirDoc() const override { return m_pDirDoc; }
void SetDirDoc(CDirDoc * pDirDoc) override;
- CDirDoc * GetDirDoc() const { return m_pDirDoc; }
void DirDocClosing(CDirDoc * pDirDoc) override;
bool CloseNow() override;
void SwapFiles(int nFromIndex, int nToIndex);
ON_COMMAND(ID_VIEW_ZOOMNORMAL, OnViewZoomNormal)
ON_COMMAND(ID_WINDOW_SPLIT, OnWindowSplit)
ON_UPDATE_COMMAND_UI(ID_WINDOW_SPLIT, OnUpdateWindowSplit)
- 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_NOTIFY(NM_DBLCLK, AFX_IDW_STATUS_BAR, OnStatusBarDblClick)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
}
/**
- * @brief Move to next file
- */
-void CMergeEditView::OnNextFile()
-{
- CMergeDoc* pd = GetDocument();
- CDirDoc* pDirDoc = pd->GetDirDoc();
- if (pDirDoc)
- {
- pDirDoc->MoveToNextFile(pd);
- }
-}
-
-/**
- * @brief Called when Move to next file is updated
- */
-void CMergeEditView::OnUpdateNextFile(CCmdUI* pCmdUI)
-{
- CMergeDoc* pd = GetDocument();
- CDirDoc* pDirDoc = pd->GetDirDoc();
- bool enabled = pDirDoc ? !pd->GetDirDoc()->IsLastFile() : false;
- pCmdUI->Enable(enabled);
-}
-
-/**
- * @brief Move to previous file
- */
-void CMergeEditView::OnPrevFile()
-{
- CMergeDoc* pd = GetDocument();
- CDirDoc* pDirDoc = pd->GetDirDoc();
- if (pDirDoc)
- {
- pDirDoc->MoveToPrevFile(pd);
- }
-}
-
-/**
- * @brief Called when Move to previous file is updated
- */
-void CMergeEditView::OnUpdatePrevFile(CCmdUI* pCmdUI)
-{
- CMergeDoc* pd = GetDocument();
- CDirDoc* pDirDoc = pd->GetDirDoc();
- bool enabled = pDirDoc ? !pd->GetDirDoc()->IsFirstFile() : false;
- pCmdUI->Enable(enabled);
-}
-
-/**
- * @brief Move to first file
- */
-void CMergeEditView::OnFirstFile()
-{
- CMergeDoc* pd = GetDocument();
- CDirDoc* pDirDoc = pd->GetDirDoc();
- if (pDirDoc)
- {
- pDirDoc->MoveToFirstFile(pd);
- }
-}
-
-/**
- * @brief Called when Move to first file is updated
- */
-void CMergeEditView::OnUpdateFirstFile(CCmdUI* pCmdUI)
-{
- CMergeDoc* pd = GetDocument();
- CDirDoc* pDirDoc = pd->GetDirDoc();
- bool enabled = pDirDoc ? !pDirDoc->IsFirstFile() : false;
- pCmdUI->Enable(enabled);
-}
-
-/**
- * @brief Move to last file
- */
-void CMergeEditView::OnLastFile()
-{
- CMergeDoc* pd = GetDocument();
- CDirDoc* pDirDoc = pd->GetDirDoc();
- if (pDirDoc)
- {
- pDirDoc->MoveToLastFile(pd);
- }
-}
-
-/**
- * @brief Called when Move to last file item is updated
- */
-void CMergeEditView::OnUpdateLastFile(CCmdUI* pCmdUI)
-{
- CMergeDoc* pd = GetDocument();
- CDirDoc* pDirDoc = pd->GetDirDoc();
- bool enabled = pDirDoc ? !pd->GetDirDoc()->IsLastFile() : false;
- pCmdUI->Enable(enabled);
-}
-
-/**
* @brief Do Auto merge
*/
void CMergeEditView::OnAutoMerge()
afx_msg void OnWindowSplit();
afx_msg void OnUpdateWindowSplit(CCmdUI* pCmdUI);
afx_msg void OnStatusBarDblClick(NMHDR* pNMHDR, LRESULT* pResult);
- afx_msg void OnFirstFile();
- afx_msg void OnUpdateFirstFile(CCmdUI* pCmdUI);
- afx_msg void OnPrevFile();
- afx_msg void OnUpdatePrevFile(CCmdUI* pCmdUI);
- afx_msg void OnNextFile();
- afx_msg void OnUpdateNextFile(CCmdUI* pCmdUI);
- afx_msg void OnLastFile();
- afx_msg void OnUpdateLastFile(CCmdUI* pCmdUI);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()