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

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

Update new version: 3.15.02

File size: 1.5 KB
Line 
1#ifndef __STATUSVIEW_H__
2#define __STATUSVIEW_H__
3
4#ifdef __WXMSW__
5#include "richedit.h"
6#endif
7
8#include <wx/timer.h>
9
10#include "option_change_event_handler.h"
11
12class CFastTextCtrl;
13class CStatusView final : public wxNavigationEnabled<wxWindow>, private COptionChangeEventHandler
14{
15public:
16        CStatusView(wxWindow* parent, wxWindowID id);
17        virtual ~CStatusView();
18
19        void AddToLog(CLogmsgNotification const& pNotification);
20        void AddToLog(MessageType messagetype, const wxString& message, fz::datetime const& time);
21
22        void InitDefAttr();
23
24        virtual void SetFocus();
25
26        virtual bool Show(bool show = true);
27
28private:
29
30        int m_nLineCount{};
31        wxString m_Content;
32        CFastTextCtrl *m_pTextCtrl{};
33
34        void OnOptionsChanged(changed_options_t const& options);
35
36        DECLARE_EVENT_TABLE()
37        void OnSize(wxSizeEvent &);
38        void OnContextMenu(wxContextMenuEvent&);
39        void OnClear(wxCommandEvent& );
40        void OnCopy(wxCommandEvent& );
41        void OnTimer(wxTimerEvent&);
42
43        std::list<int> m_lineLengths;
44        std::list<int> m_unusedLineLengths;
45
46        struct t_attributeCache
47        {
48                wxString prefix;
49                int len;
50                wxTextAttr attr;
51#ifdef __WXMSW__
52                CHARFORMAT2 cf;
53#endif
54        } m_attributeCache[static_cast<int>(MessageType::count)];
55
56        bool m_rtl{};
57
58        bool m_shown{};
59
60        // Don't update actual log window if not shown,
61        // do it later when showing the window.
62        struct t_line
63        {
64                MessageType messagetype;
65                wxString message;
66                fz::datetime time;
67        };
68        std::list<t_line> m_hiddenLines;
69
70        bool m_showTimestamps{};
71        fz::datetime m_lastTime;
72        wxString m_lastTimeString;
73};
74
75#endif
76
Note: See TracBrowser for help on using the repository browser.