panel_interface.h
Go to the documentation of this file.
1 
28 #ifndef LOG_VIEW_PANEL_INTERFACE_H_
29 #define LOG_VIEW_PANEL_INTERFACE_H_
30 
31 #include <memory>
32 #include <string>
33 
34 #include <curses.h>
35 #include <panel.h>
36 
37 #define KEY_ENTER_VAL 10
38 
39 namespace log_view {
40 
42  public:
43  PanelInterface(int height, int width, int y, int x);
44  virtual ~PanelInterface();
45  virtual void refresh() = 0;
46  virtual void forceRefresh();
47  virtual void resize(int height, int width, int y, int x);
48  virtual bool handleInput(int key);
49  virtual bool handleNavigation(int key);
50  virtual bool handleMouse(const MEVENT& event) { return false; }
51  virtual bool handleKey(int key) { return false; }
52  virtual bool encloses(int y, int x);
53 
54  virtual void hide(bool enable);
55  virtual bool setFocus(bool enable);
56  virtual void toTop();
57  virtual bool setCursor();
58 
59  virtual int x() const;
60  virtual int y() const;
61  virtual int width() const;
62  virtual int height() const;
63  virtual bool hidden() const;
64  virtual bool visible() const;
65  virtual bool focus() const;
66  virtual bool scrollbar() const;
67 
68  protected:
69  virtual bool canFocus() const { return false; }
70  virtual void drawScrollBar(size_t count, int height, int y, int x);
71 
72  // text input
73  virtual bool canInput() const { return false; }
74  virtual void activate(bool enable) {}
75  virtual int inputOffset() const { return 0; }
76 
77  // navigation
78  virtual bool canNavigate() const { return false; }
79  virtual bool canSelect() const { return false; }
80  virtual size_t getContentSize() const { return 0; }
81  virtual int getContentHeight() const { return height_; }
82  virtual int getContentWidth() const { return width_; }
83  virtual void setCursor(int64_t cursor) {}
84  virtual int64_t getCursor() const { return 0; }
85  virtual void follow(bool enable);
86  virtual void pageUp();
87  virtual void pageDown();
88  virtual void move(int step);
89  virtual void moveTo(size_t index);
90  virtual void shift(int cols);
91  virtual void select() {};
92  virtual bool following() { return getCursor() < 0; }
93 
94  WINDOW* window_ = nullptr;
95  PANEL* panel_ = nullptr;
96  int x_;
97  int y_;
98  int width_;
99  int height_;
100  bool cleared_ = false;
101  bool hidden_ = false;
102 
103  // text input
104  bool focus_ = false;
105  std::string input_text_;
106  int input_loc_ = -1;
107 
108  // navigation
109  bool follow_ = true;
110  size_t last_content_size_ = 0;
111  int64_t last_cursor_ = 0;
112  size_t max_length_ = 0;
113  int shift_ = 0;
114 };
115 typedef std::shared_ptr<PanelInterface> PanelInterfacePtr;
116 
117 } // namespace log_view
118 
119 #endif // LOG_VIEW_PANEL_INTERFACE_H_
log_view::PanelInterface::getContentSize
virtual size_t getContentSize() const
Definition: panel_interface.h:80
log_view::PanelInterface::getContentWidth
virtual int getContentWidth() const
Definition: panel_interface.h:82
log_view::PanelInterface::handleNavigation
virtual bool handleNavigation(int key)
Definition: panel_interface.cpp:128
log_view::PanelInterface::setCursor
virtual void setCursor(int64_t cursor)
Definition: panel_interface.h:83
log_view::PanelInterface::activate
virtual void activate(bool enable)
Definition: panel_interface.h:74
log_view::PanelInterface::hide
virtual void hide(bool enable)
Definition: panel_interface.cpp:185
log_view::PanelInterface::width_
int width_
Definition: panel_interface.h:98
log_view
Definition: datatypes.h:35
log_view::PanelInterface::canNavigate
virtual bool canNavigate() const
Definition: panel_interface.h:78
log_view::PanelInterface::setCursor
virtual bool setCursor()
Definition: panel_interface.cpp:215
log_view::PanelInterface::height_
int height_
Definition: panel_interface.h:99
log_view::PanelInterface::visible
virtual bool visible() const
Definition: panel_interface.cpp:286
log_view::PanelInterface::following
virtual bool following()
Definition: panel_interface.h:92
log_view::PanelInterface::x_
int x_
Definition: panel_interface.h:96
log_view::PanelInterface::scrollbar
virtual bool scrollbar() const
Definition: panel_interface.cpp:294
log_view::PanelInterface::y
virtual int y() const
Definition: panel_interface.cpp:270
log_view::PanelInterface::drawScrollBar
virtual void drawScrollBar(size_t count, int height, int y, int x)
Definition: panel_interface.cpp:230
log_view::PanelInterface::move
virtual void move(int step)
Definition: panel_interface.cpp:317
log_view::PanelInterface::moveTo
virtual void moveTo(size_t index)
Definition: panel_interface.cpp:336
log_view::PanelInterface::canInput
virtual bool canInput() const
Definition: panel_interface.h:73
log_view::PanelInterface
Definition: panel_interface.h:41
log_view::PanelInterface::pageUp
virtual void pageUp()
Definition: panel_interface.cpp:309
log_view::PanelInterface::hidden
virtual bool hidden() const
Definition: panel_interface.cpp:282
log_view::PanelInterface::follow_
bool follow_
Definition: panel_interface.h:109
log_view::PanelInterface::height
virtual int height() const
Definition: panel_interface.cpp:278
log_view::PanelInterface::width
virtual int width() const
Definition: panel_interface.cpp:274
log_view::PanelInterface::encloses
virtual bool encloses(int y, int x)
Definition: panel_interface.cpp:181
log_view::PanelInterface::follow
virtual void follow(bool enable)
Definition: panel_interface.cpp:298
log_view::PanelInterface::refresh
virtual void refresh()=0
log_view::PanelInterfacePtr
std::shared_ptr< PanelInterface > PanelInterfacePtr
Definition: panel_interface.h:115
log_view::PanelInterface::resize
virtual void resize(int height, int width, int y, int x)
Definition: panel_interface.cpp:54
log_view::PanelInterface::handleMouse
virtual bool handleMouse(const MEVENT &event)
Definition: panel_interface.h:50
log_view::PanelInterface::focus_
bool focus_
Definition: panel_interface.h:104
log_view::PanelInterface::focus
virtual bool focus() const
Definition: panel_interface.cpp:290
log_view::PanelInterface::pageDown
virtual void pageDown()
Definition: panel_interface.cpp:313
log_view::PanelInterface::getContentHeight
virtual int getContentHeight() const
Definition: panel_interface.h:81
log_view::PanelInterface::getCursor
virtual int64_t getCursor() const
Definition: panel_interface.h:84
log_view::PanelInterface::x
virtual int x() const
Definition: panel_interface.cpp:266
log_view::PanelInterface::input_loc_
int input_loc_
Definition: panel_interface.h:106
log_view::PanelInterface::canFocus
virtual bool canFocus() const
Definition: panel_interface.h:69
log_view::PanelInterface::cleared_
bool cleared_
Definition: panel_interface.h:100
log_view::PanelInterface::handleKey
virtual bool handleKey(int key)
Definition: panel_interface.h:51
log_view::PanelInterface::y_
int y_
Definition: panel_interface.h:97
log_view::PanelInterface::~PanelInterface
virtual ~PanelInterface()
Definition: panel_interface.cpp:44
log_view::PanelInterface::shift_
int shift_
Definition: panel_interface.h:113
log_view::PanelInterface::forceRefresh
virtual void forceRefresh()
Definition: panel_interface.cpp:48
log_view::PanelInterface::toTop
virtual void toTop()
Definition: panel_interface.cpp:262
log_view::PanelInterface::last_content_size_
size_t last_content_size_
Definition: panel_interface.h:110
log_view::PanelInterface::handleInput
virtual bool handleInput(int key)
Definition: panel_interface.cpp:66
log_view::PanelInterface::window_
WINDOW * window_
Definition: panel_interface.h:94
log_view::PanelInterface::PanelInterface
PanelInterface(int height, int width, int y, int x)
Definition: panel_interface.cpp:34
log_view::PanelInterface::input_text_
std::string input_text_
Definition: panel_interface.h:105
log_view::PanelInterface::inputOffset
virtual int inputOffset() const
Definition: panel_interface.h:75
log_view::PanelInterface::setFocus
virtual bool setFocus(bool enable)
Definition: panel_interface.cpp:206
log_view::PanelInterface::max_length_
size_t max_length_
Definition: panel_interface.h:112
log_view::PanelInterface::select
virtual void select()
Definition: panel_interface.h:91
log_view::PanelInterface::last_cursor_
int64_t last_cursor_
Definition: panel_interface.h:111
log_view::PanelInterface::shift
virtual void shift(int cols)
Definition: panel_interface.cpp:350
log_view::PanelInterface::canSelect
virtual bool canSelect() const
Definition: panel_interface.h:79
log_view::PanelInterface::panel_
PANEL * panel_
Definition: panel_interface.h:95
log_view::PanelInterface::hidden_
bool hidden_
Definition: panel_interface.h:101


log_view
Author(s): Marc Alban
autogenerated on Sat Sep 17 2022 02:22:53