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 public:
9  KeySequencesPreferencesEditor(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &x,
10  class Preferences &prefs);
11  static KeySequencesPreferencesEditor *create(Preferences &prefs);
12 
13 private:
14  class Preferences &preferences;
15  class KeySequencesPreferences &keyseq_preferences;
16 
17  class TreeColumns : public Gtk::TreeModelColumnRecord {
18  public:
19  TreeColumns()
20  {
21  Gtk::TreeModelColumnRecord::add(name);
22  Gtk::TreeModelColumnRecord::add(keys);
23  Gtk::TreeModelColumnRecord::add(action);
24  }
25  Gtk::TreeModelColumn<Glib::ustring> name;
26  Gtk::TreeModelColumn<Glib::ustring> keys;
27  Gtk::TreeModelColumn<ActionToolID> action;
28  };
29  TreeColumns tree_columns;
30 
31  Glib::RefPtr<Gtk::TreeStore> key_sequences_store;
32  Gtk::TreeView *key_sequences_treeview = nullptr;
33 
34  Gtk::FlowBox *action_editors = nullptr;
35 
36  void update_action_editors();
37  void update_keys();
38  void handle_save();
39  void handle_load();
40  void handle_load_default();
41 };
42 
43 } // namespace horizon
Definition: preferences_window_keys.hpp:7
Definition: preferences.hpp:44
Definition: preferences.hpp:136