1
#ifndef __LISTINGCOMPARISON_H__
2
#define __LISTINGCOMPARISON_H__
4
class CComparisonManager;
5
class CComparableListing
7
friend class CComparisonManager;
9
CComparableListing(wxWindow* pParent);
10
virtual ~CComparableListing() {}
21
virtual bool CanStartComparison(wxString* pError) = 0;
22
virtual void StartComparison() = 0;
23
virtual bool GetNextFile(wxString& name, bool &dir, wxLongLong &size, wxDateTime& date, bool &hasTime) = 0;
24
virtual void CompareAddFile(t_fileEntryFlags flags) = 0;
25
virtual void FinishComparison() = 0;
26
virtual void ScrollTopItem(int item) = 0;
27
virtual void OnExitComparisonMode() = 0;
29
void RefreshComparison();
30
void ExitComparisonMode();
32
bool IsComparing() const;
34
void SetOther(CComparableListing* pOther) { m_pOther = pOther; }
35
CComparableListing* GetOther() { return m_pOther; }
39
wxListItemAttr m_comparisonBackgrounds[3];
44
CComparableListing* m_pOther;
45
CComparisonManager* m_pComparisonManager;
49
class CComparisonManager
52
CComparisonManager(CMainFrame* pMainFrame, CComparableListing* pLeft, CComparableListing* pRight);
54
bool CompareListings();
55
bool IsComparing() const { return m_isComparing; }
57
void ExitComparisonMode();
59
void UpdateToolState();
62
int CompareFiles(const int dirSortMode, const wxString& local, const wxString& remote, bool localDir, bool remoteDir);
64
CMainFrame* m_pMainFrame;
66
// Left/right, first/second, a/b, doesn't matter
67
CComparableListing* m_pLeft;
68
CComparableListing* m_pRight;
73
#endif //__LISTINGCOMPARISON_H__