Horizon
Loading...
Searching...
No Matches
grids_window.hpp
1#pragma once
2#include <gtkmm.h>
3#include "util/uuid.hpp"
4#include "util/changeable.hpp"
5#include "common/common.hpp"
6#include <set>
7#include "nlohmann/json.hpp"
8#include "grid_controller.hpp"
9#include "common/grid_settings.hpp"
10
11namespace horizon {
12using json = nlohmann::json;
13
14class GridsWindow : public Gtk::Window, public Changeable {
15public:
16 static GridsWindow *create(Gtk::Window *p, GridController &b, GridSettings &settings);
17 GridsWindow(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &x, GridController &b,
18 GridSettings &settings);
19 void set_select_mode(bool select_mode);
20 bool has_grids() const;
21
22private:
23 GridController &grid_controller;
24 GridSettings &settings;
25
26 bool select_mode = false;
27
28 void row_from_grid(Gtk::TreeModel::Row &row, const GridSettings::Grid &g) const;
29
30 class ListColumns : public Gtk::TreeModelColumnRecord {
31 public:
32 ListColumns()
33 {
34 Gtk::TreeModelColumnRecord::add(uuid);
35 Gtk::TreeModelColumnRecord::add(name);
36 Gtk::TreeModelColumnRecord::add(spacing);
37 Gtk::TreeModelColumnRecord::add(origin);
38 }
39 Gtk::TreeModelColumn<UUID> uuid;
40 Gtk::TreeModelColumn<Glib::ustring> name;
41 Gtk::TreeModelColumn<Glib::ustring> spacing;
42 Gtk::TreeModelColumn<Glib::ustring> origin;
43 };
44 ListColumns list_columns;
45
46 Glib::RefPtr<Gtk::ListStore> store;
47 Gtk::TreeView *treeview = nullptr;
48
49 void update_buttons();
50
51 Gtk::Box *button_box = nullptr;
52 Gtk::Button *button_ok = nullptr;
53 Gtk::Button *button_cancel = nullptr;
54 Gtk::Button *button_apply = nullptr;
55 Gtk::Button *button_remove = nullptr;
56 Gtk::HeaderBar *headerbar = nullptr;
57};
58
59} // namespace horizon
Definition changeable.hpp:5
Definition grid_controller.hpp:10
Definition grid_settings.hpp:17
Definition grid_settings.hpp:9
Definition grids_window.hpp:14
a class to store JSON values
Definition json.hpp:177
basic_json<> json
default JSON class
Definition json_fwd.hpp:62