1 /* 2 * Copyright (C) 2009-2010 Carl Hetherington <carl@carlh.net> 3 * Copyright (C) 2009-2010 Paul Davis <paul@linuxaudiosystems.com> 4 * Copyright (C) 2015-2019 Robin Gareus <robin@gareus.org> 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License along 17 * with this program; if not, write to the Free Software Foundation, Inc., 18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 19 */ 20 21 #ifndef __gtk_ardour_editor_snapshots_h__ 22 #define __gtk_ardour_editor_snapshots_h__ 23 24 #include <gtkmm/widget.h> 25 #include <gtkmm/scrolledwindow.h> 26 #include <gtkmm/treemodel.h> 27 #include <gtkmm/treeview.h> 28 #include "editor_component.h" 29 30 class EditorSnapshots : public EditorComponent, public ARDOUR::SessionHandlePtr 31 { 32 public: 33 EditorSnapshots (Editor *); 34 35 void set_session (ARDOUR::Session *); 36 widget()37 Gtk::Widget& widget () { 38 return _scroller; 39 } 40 41 void redisplay (); 42 43 private: 44 45 Gtk::ScrolledWindow _scroller; 46 47 struct Columns : public Gtk::TreeModel::ColumnRecord { ColumnsColumns48 Columns () { 49 add (visible_name); 50 add (real_name); 51 add (time_formatted); 52 } 53 Gtk::TreeModelColumn<std::string> visible_name; 54 Gtk::TreeModelColumn<std::string> real_name; 55 Gtk::TreeModelColumn<std::string> time_formatted; 56 }; 57 58 Columns _columns; 59 Glib::RefPtr<Gtk::ListStore> _snapshot_model; 60 Gtk::TreeView _snapshot_display; 61 Gtk::Menu _menu; 62 63 bool button_press (GdkEventButton *); 64 void selection_changed (); 65 void popup_context_menu (int, int32_t, std::string); 66 void remove (std::string); 67 void rename (std::string); 68 }; 69 70 #endif // __gtk_ardour_editor_snapshots_h__ 71