source: filezilla/trunk/fuentes/src/interface/listingcomparison.h @ 3185

Last change on this file since 3185 was 3185, checked in by jrpelegrina, 3 years ago

Update new version: 3.15.02

File size: 1.6 KB
Line 
1#ifndef __LISTINGCOMPARISON_H__
2#define __LISTINGCOMPARISON_H__
3
4class CComparisonManager;
5class CComparableListing
6{
7        friend class CComparisonManager;
8public:
9        CComparableListing(wxWindow* pParent);
10        virtual ~CComparableListing() {}
11
12        enum t_fileEntryFlags
13        {
14                normal,
15                fill,
16                different,
17                newer,
18                lonely
19        };
20
21        virtual bool CanStartComparison() = 0;
22        virtual void StartComparison() = 0;
23        virtual bool get_next_file(wxString& name, bool &dir, int64_t &size, fz::datetime& date) = 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;
28
29        void RefreshComparison();
30        void ExitComparisonMode();
31
32        bool IsComparing() const;
33
34        void SetOther(CComparableListing* pOther) { m_pOther = pOther; }
35        CComparableListing* GetOther() { return m_pOther; }
36
37protected:
38
39        wxListItemAttr m_comparisonBackgrounds[3];
40
41private:
42        wxWindow* m_pParent;
43
44        CComparableListing* m_pOther;
45        CComparisonManager* m_pComparisonManager;
46};
47
48class CState;
49class CComparisonManager
50{
51public:
52        CComparisonManager(CState* pState);
53
54        bool CompareListings();
55        bool IsComparing() const { return m_isComparing; }
56
57        void ExitComparisonMode();
58
59        void SetListings(CComparableListing* pLeft, CComparableListing* pRight);
60
61protected:
62        int CompareFiles(const int dirSortMode, const wxString& local, const wxString& remote, bool localDir, bool remoteDir);
63
64        CState* m_pState;
65
66        // Left/right, first/second, a/b, doesn't matter
67        CComparableListing* m_pLeft{};
68        CComparableListing* m_pRight{};
69
70        bool m_isComparing{};
71};
72
73#endif //__LISTINGCOMPARISON_H__
Note: See TracBrowser for help on using the repository browser.