Program Listing for File log_panel.h
↰ Return to documentation for file (/tmp/ws/src/log_view/include/log_view/panels/log_panel.h
)
#ifndef LOG_VIEW_LOG_PANEL_H_
#define LOG_VIEW_LOG_PANEL_H_
#include <log_view/log_filter.h>
#include <log_view/log_store.h>
#include <log_view/panel_interface.h>
namespace log_view {
class LogPanel : public PanelInterface {
public:
LogPanel(int height, int width, int y, int x, LogStorePtr& logs, LogFilter& filter) : PanelInterface(height, width, y, x), logs_(logs), filter_(filter) {}
virtual ~LogPanel() {}
virtual void refresh();
virtual void selectAll();
virtual void startSelect(int row);
virtual void endSelect(int row);
virtual bool handleMouse(const MEVENT& event);
virtual bool handleKey(int key);
virtual void resize(int height, int width, int y, int x);
protected:
virtual bool canNavigate() const { return true; }
virtual size_t getContentSize() const { return filter_.indices().size(); }
virtual int getContentWidth() const;
virtual void setCursor(int64_t cursor) { filter_.setCursor(cursor); }
virtual int64_t getCursor() const { return filter_.getCursor(); }
virtual void copyToClipboard();
std::string getPrefix(const LogEntry& entry, size_t line) const;
void printEntry(size_t row, const LogEntry& entry, size_t line, size_t index);
LogStorePtr logs_;
LogFilter& filter_;
bool mouse_down_ = false;
bool filled_ = false;
};
typedef std::shared_ptr<LogPanel> LogPanelPtr;
} // namespace log_view
#endif // LOG_VIEW_LOG_PANEL_H_