ardour
playlist_selector.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2004 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_playlist_selector_h__
21 #define __ardour_playlist_selector_h__
22 
23 #include <boost/shared_ptr.hpp>
24 
25 #include <gtkmm/box.h>
26 #include <gtkmm/scrolledwindow.h>
27 #include <gtkmm/button.h>
28 #include <gtkmm/treeview.h>
29 #include <gtkmm2ext/selector.h>
30 
31 #include "ardour_dialog.h"
32 #include "ardour/session_handle.h"
33 
34 namespace ARDOUR {
35  class Session;
36  class PluginManager;
37  class Plugin;
38 }
39 
40 class RouteUI;
41 
43 {
44  public:
47 
48  void show_for (RouteUI*);
49 
50  protected:
51  bool on_unmap_event (GdkEventAny*);
52 
53  private:
54  typedef std::map<PBD::ID,std::list<boost::shared_ptr<ARDOUR::Playlist> >*> TrackPlaylistMap;
55 
56  Gtk::ScrolledWindow scroller;
57  TrackPlaylistMap trpl_map;
59 
60  sigc::connection select_connection;
61 
63  void clear_map ();
64  void close_button_click ();
65  void selection_changed ();
66 
67  struct ModelColumns : public Gtk::TreeModel::ColumnRecord {
69  add (text);
70  add (playlist);
71  }
72  Gtk::TreeModelColumn<std::string> text;
73  Gtk::TreeModelColumn<boost::shared_ptr<ARDOUR::Playlist> > playlist;
74  };
75 
77  Glib::RefPtr<Gtk::TreeStore> model;
78  Gtk::TreeView tree;
79 };
80 
81 #endif // __ardour_playlist_selector_h__
ModelColumns columns
Gtk::TreeModelColumn< boost::shared_ptr< ARDOUR::Playlist > > playlist
Glib::RefPtr< Gtk::TreeStore > model
Gtk::TreeView tree
bool on_unmap_event(GdkEventAny *)
TrackPlaylistMap trpl_map
LIBARDOUR_API uint64_t PluginManager
Definition: plugin.h:85
Definition: amp.h:29
Gtk::TreeModelColumn< std::string > text
Gtk::ScrolledWindow scroller
void add_playlist_to_map(boost::shared_ptr< ARDOUR::Playlist >)
std::map< PBD::ID, std::list< boost::shared_ptr< ARDOUR::Playlist > > * > TrackPlaylistMap
sigc::connection select_connection
void show_for(RouteUI *)