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