#include "coretools.h"
#include "logfile.h"
#include "paths.h"
+#include "WaitStatusCursor.h"
extern int recursive;
void CDirDoc::Rescan()
{
+ WaitStatusCursor waitstatus(_T("Rescanning"));
+
ASSERT(m_pCtxt != NULL);
- BeginWaitCursor();
gLog.Write(_T("Starting directory scan:\r\n\tLeft: %s\r\n\tRight: %s\r\n"),
m_pCtxt->m_strLeft, m_pCtxt->m_strRight);
((CDirFrame*)(m_pDirView->GetParent()))->SetStatus(s);
Redisplay();
- EndWaitCursor();
}
// return true if we need to hide this item because it is a backup
#include "MainFrm.h"
#include "resource.h"
#include "coretools.h"
+#include "WaitStatusCursor.h"
#ifdef _DEBUG
#define new DEBUG_NEW
void CDirView::OnLButtonDblClk(UINT nFlags, CPoint point)
{
- CWaitCursor wait;
+ WaitStatusCursor waitstatus(_T("Opening selection"));
OpenSelection();
CListViewEx::OnLButtonDblClk(nFlags, point);
}
{
if(nChar==VK_RETURN)
{
- CWaitCursor wait;
+ WaitStatusCursor waitstatus(_T("Opening selection"));
OpenSelection();
}
CListViewEx::OnChar(nChar, nRepCnt, nFlags);
#include "ssapi.h" // BSP - Includes for Visual Source Safe COM interface
#include "multimon.h"
#include "paths.h"
+#include "WaitStatusCursor.h"
+
#ifdef _DEBUG
#define new DEBUG_NEW
FreeRegExpList();
}
+// This is a bridge to implement IStatusDisplay for WaitStatusCursor
+// by forwarding all calls to the main frame
+class StatusDisplay : public IStatusDisplay
+{
+public:
+ StatusDisplay() : m_pfrm(0) { }
+ void SetFrame(CMainFrame * frm) { m_pfrm = frm; }
+// Implement IStatusDisplay
+ virtual CString BeginStatus(LPCTSTR str) { return m_pfrm->SetStatus(str); }
+ virtual void ChangeStatus(LPCTSTR str) { m_pfrm->SetStatus(str); }
+ virtual void EndStatus(LPCTSTR str, LPCTSTR oldstr) { m_pfrm->SetStatus(oldstr); }
+
+protected:
+ CMainFrame * m_pfrm;
+};
+
+static StatusDisplay myStatusDisplay;
+
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
// CG: The following line was added by the Splash Screen component.
CSplashWnd::ShowSplashScreen(this);
+ // Start handling status messages from WaitStatusCursors
+ myStatusDisplay.SetFrame(this);
+ WaitStatusCursor::SetStatusDisplay(&myStatusDisplay);
+
return 0;
}
pMergeDoc->GetParentFrame()->SavePosition();
}
+ // Stop handling status messages from WaitStatusCursors
+ WaitStatusCursor::SetStatusDisplay(0);
+ myStatusDisplay.SetFrame(0);
CMDIFrameWnd::OnClose();
}
return pDirDoc;
}
+// Set status in the main status pane
+CString CMainFrame::SetStatus(LPCTSTR status)
+{
+ CString old = m_wndStatusBar.GetPaneText(0);
+ m_wndStatusBar.SetPaneText(0, status);
+ return old;
+}
+
/////////////////////////////////////////////////////////////////////////////
//
BOOL ctrlKey = ::GetAsyncKeyState(VK_CONTROL);
DoFileOpen(files[0], files[1], ctrlKey);
}
+
HMENU NewDefaultMenu();
BOOL CreateBackup(LPCTSTR pszPath);
BOOL CheckSavePath(CString& strSavePath);
+ CString SetStatus(LPCTSTR status);
// Overrides
// ClassWizard generated virtual function overrides
!ENDIF
# End Source File
+# Begin Source File
+
+SOURCE=.\WaitStatusCursor.cpp
+# End Source File
# End Group
# Begin Group "Header Files"
SOURCE=.\VssPrompt.h
# End Source File
+# Begin Source File
+
+SOURCE=.\WaitStatusCursor.h
+# End Source File
# End Group
# Begin Group "Resource Files"
#include "childFrm.h"
#include "dirdoc.h"
#include "files.h"
+#include "WaitStatusCursor.h"
#ifdef _DEBUG
#define new DEBUG_NEW
m_bNeedIdleRescan = FALSE;
COleDateTimeSpan elapsed = COleDateTime::GetCurrentTime() - m_LastRescan;
if (elapsed.GetTotalSeconds() > 1)
+ {
+ WaitStatusCursor waitstatus(_T("Rescanning"));
FlushAndRescan();
+ }
}
}
#include "MergeEditView.h"
#include "MergeDoc.h"
#include "MainFrm.h"
+#include "WaitStatusCursor.h"
#ifdef _DEBUG
#define new DEBUG_NEW
void CMergeEditView::OnL2r()
{
- BeginWaitCursor();
+ WaitStatusCursor waitstatus(_T("Copying Left to Right"));
GetDocument()->ListCopy(true);
- EndWaitCursor();
}
void CMergeEditView::OnUpdateL2r(CCmdUI* pCmdUI)
void CMergeEditView::OnR2l()
{
- BeginWaitCursor();
+ WaitStatusCursor waitstatus(_T("Copying Right to Left"));
GetDocument()->ListCopy(false);
- EndWaitCursor();
}
void CMergeEditView::OnUpdateR2l(CCmdUI* pCmdUI)
void CMergeEditView::OnAllLeft()
{
+ WaitStatusCursor waitstatus(_T("Copying All to Left"));
+
CMergeDoc* pDoc = GetDocument();
- BeginWaitCursor();
// Unfortunately difftools is not designed for this kind
// of use and sometimes all differences cannot be merged
// in one run.
pDoc->ListCopy(false);
}
}
- EndWaitCursor();
}
void CMergeEditView::OnUpdateAllLeft(CCmdUI* pCmdUI)
void CMergeEditView::OnAllRight()
{
+ WaitStatusCursor waitstatus(_T("Copying All to Right"));
+
CMergeDoc* pDoc = GetDocument();
- BeginWaitCursor();
// Unfortunately difftools is not designed for this kind
// of use and sometimes all differences cannot be merged
// in one run.
pDoc->ListCopy(true);
}
}
- EndWaitCursor();
}
void CMergeEditView::OnUpdateAllRight(CCmdUI* pCmdUI)
2003-04-20 Perry
Changed dynamic array to be CArray based
editlib: ccrystaltextview.cpp
+ PATCH: [ 724309 ] Add WaitStatusCursors
+ WinMerge: DirDoc.cpp DirView.cpp MainFrm.cpp Merge.dsp MergeDoc.cpp MergeEditView.cpp
+ WaitStatusCursor.cpp WaitStatusCursor.h
2003-04-19 Perry
[ 724280 ] Could use wait cursors at OpenSelection calls