Horizon
Loading...
Searching...
No Matches
log_view.hpp
1#pragma once
2#include <gtkmm.h>
3#include "logger/logger.hpp"
4#include <set>
5
6namespace horizon {
7class LogView : public Gtk::Box {
8public:
9 LogView();
10 void push_log(const Logger::Item &it);
11 void clear();
12
13 typedef sigc::signal<void, const Logger::Item &> type_signal_logged;
14 type_signal_logged signal_logged()
15 {
16 return s_signal_logged;
17 }
18
19private:
20 class ListColumns : public Gtk::TreeModelColumnRecord {
21 public:
22 ListColumns()
23 {
24 Gtk::TreeModelColumnRecord::add(seq);
25 Gtk::TreeModelColumnRecord::add(message);
26 Gtk::TreeModelColumnRecord::add(detail);
27 Gtk::TreeModelColumnRecord::add(level);
28 Gtk::TreeModelColumnRecord::add(domain);
29 }
30 Gtk::TreeModelColumn<uint64_t> seq;
31 Gtk::TreeModelColumn<Glib::ustring> message;
32 Gtk::TreeModelColumn<Glib::ustring> detail;
33 Gtk::TreeModelColumn<Logger::Level> level;
34 Gtk::TreeModelColumn<Logger::Domain> domain;
35 };
36 ListColumns list_columns;
37
38 Glib::RefPtr<Gtk::ListStore> store;
39 Gtk::TreeView *tree_view = nullptr;
40 Gtk::ScrolledWindow *sc = nullptr;
41
42 Glib::RefPtr<Gtk::TreeModelFilter> store_filtered;
43
44 Gtk::Box *bbox = nullptr;
45
46 bool follow = true;
47 type_signal_logged s_signal_logged;
48
49 std::set<Logger::Level> levels_visible;
50
51 void copy_to_clipboard();
52};
53} // namespace horizon
Definition log_view.hpp:7
Definition logger.hpp:44