Horizon
preferences_window_in_tool_keys.hpp
1 #pragma once
2 #include <gtkmm.h>
3 
4 namespace horizon {
5 enum class InToolActionID;
6 enum class ToolID;
7 
8 class InToolKeySequencesPreferencesEditor : public Gtk::Grid {
9 public:
10  InToolKeySequencesPreferencesEditor(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &x,
11  class Preferences &prefs);
12  static InToolKeySequencesPreferencesEditor *create(Preferences &prefs);
13 
14 private:
15  class Preferences &preferences;
16  class InToolKeySequencesPreferences &in_tool_keyseq_preferences;
17 
18  class TreeColumns : public Gtk::TreeModelColumnRecord {
19  public:
20  TreeColumns()
21  {
22  Gtk::TreeModelColumnRecord::add(name);
23  Gtk::TreeModelColumnRecord::add(keys);
24  Gtk::TreeModelColumnRecord::add(action);
25  Gtk::TreeModelColumnRecord::add(tool);
26  }
27  Gtk::TreeModelColumn<Glib::ustring> name;
28  Gtk::TreeModelColumn<Glib::ustring> keys;
29  Gtk::TreeModelColumn<InToolActionID> action;
30  Gtk::TreeModelColumn<ToolID> tool;
31  };
32  TreeColumns tree_columns;
33 
34  Glib::RefPtr<Gtk::TreeStore> key_sequences_store;
35  Gtk::TreeView *key_sequences_treeview = nullptr;
36 
37  Gtk::FlowBox *action_editors = nullptr;
38 
39  void update_action_editors();
40  void update_keys();
41  void handle_save();
42  void handle_load();
43  void handle_load_default();
44 };
45 
46 } // namespace horizon
horizon::Preferences
Definition: preferences.hpp:99
horizon::InToolKeySequencesPreferencesEditor
Definition: preferences_window_in_tool_keys.hpp:8
horizon::InToolKeySequencesPreferences
Definition: preferences.hpp:55