ardour
keyeditor.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2012 Paul Davis
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 
18 */
19 
20 #ifndef __ardour_gtk_key_editor_h__
21 #define __ardour_gtk_key_editor_h__
22 
23 #include <string>
24 
25 #include <gtkmm/buttonbox.h>
26 #include <gtkmm/treeview.h>
27 #include <gtkmm/treestore.h>
28 #include <gtkmm/scrolledwindow.h>
29 
30 #include "ardour_window.h"
31 
32 class KeyEditor : public ArdourWindow
33 {
34  public:
35  KeyEditor ();
36 
37  protected:
38  void on_show ();
39  void on_unmap ();
40  bool on_key_press_event (GdkEventKey*);
41  bool on_key_release_event (GdkEventKey*);
42 
43  private:
44  struct KeyEditorColumns : public Gtk::TreeModel::ColumnRecord {
46  add (action);
47  add (binding);
48  add (path);
49  add (bindable);
50  }
51  Gtk::TreeModelColumn<std::string> action;
52  Gtk::TreeModelColumn<std::string> binding;
53  Gtk::TreeModelColumn<std::string> path;
54  Gtk::TreeModelColumn<bool> bindable;
55  };
56 
57  Gtk::VBox vpacker;
58  Gtk::ScrolledWindow scroller;
59  Gtk::TreeView view;
60  Glib::RefPtr<Gtk::TreeStore> model;
62  Gtk::Button unbind_button;
63  Gtk::HButtonBox unbind_box;
64  Gtk::HBox reset_box;
65  Gtk::Button reset_button;
66  Gtk::Label reset_label;
67 
68  void unbind ();
69 
70  guint last_keyval;
71 
72  void action_selected ();
73  void populate ();
74 
75  void reset ();
76 };
77 
78 #endif /* __ardour_gtk_key_editor_h__ */
bool on_key_press_event(GdkEventKey *)
Definition: keyeditor.cc:182
KeyEditorColumns columns
Definition: keyeditor.h:61
Gtk::TreeModelColumn< std::string > binding
Definition: keyeditor.h:52
Gtk::TreeModelColumn< std::string > action
Definition: keyeditor.h:51
Glib::RefPtr< Gtk::TreeStore > model
Definition: keyeditor.h:60
Gtk::HBox reset_box
Definition: keyeditor.h:64
Gtk::Button reset_button
Definition: keyeditor.h:65
bool on_key_release_event(GdkEventKey *)
Definition: keyeditor.cc:191
Gtk::TreeModelColumn< std::string > path
Definition: keyeditor.h:53
void reset()
Definition: keyeditor.cc:313
Gtk::HButtonBox unbind_box
Definition: keyeditor.h:63
Gtk::Label reset_label
Definition: keyeditor.h:66
Gtk::TreeModelColumn< bool > bindable
Definition: keyeditor.h:54
Gtk::Button unbind_button
Definition: keyeditor.h:62
void on_unmap()
Definition: keyeditor.cc:149
guint last_keyval
Definition: keyeditor.h:70
void populate()
Definition: keyeditor.cc:229
void action_selected()
Definition: keyeditor.cc:155
Gtk::TreeView view
Definition: keyeditor.h:59
void on_show()
Definition: keyeditor.cc:141
Gtk::ScrolledWindow scroller
Definition: keyeditor.h:58
Gtk::VBox vpacker
Definition: keyeditor.h:57
void unbind()
Definition: keyeditor.cc:117