Add remove all and disconnect all to port matrix menu. Hide bundles whose channels...
[ardour.git] / gtk2_ardour / editor_route_groups.h
index 5235a6a7e4141e3ad6d25767e51624c651f1e402..cb0162d142070d50982caf5f554123741cf68832 100644 (file)
@@ -1,3 +1,22 @@
+/*
+    Copyright (C) 2000-2009 Paul Davis
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
 #include "editor_component.h"
 
 class EditorRouteGroups : public EditorComponent
@@ -5,7 +24,7 @@ class EditorRouteGroups : public EditorComponent
 public:
        EditorRouteGroups (Editor *);
 
-       void connect_to_session (ARDOUR::Session *);
+       void set_session (ARDOUR::Session *);
 
        Gtk::Widget& widget () {
                return *_display_packer;
@@ -14,9 +33,10 @@ public:
        Gtk::Menu* menu (ARDOUR::RouteGroup *);
 
        void clear ();
-       
+       ARDOUR::RouteGroup* new_route_group () const;
+
 private:
-       
+
         struct Columns : public Gtk::TreeModel::ColumnRecord {
 
                 Columns () {
@@ -46,12 +66,12 @@ private:
 
        void activate_all ();
        void disable_all ();
-       void subgroup (ARDOUR::RouteGroup*);
-       void unsubgroup (ARDOUR::RouteGroup*);
+       void subgroup (ARDOUR::RouteGroup *);
+       void unsubgroup (ARDOUR::RouteGroup *);
+       void collect (ARDOUR::RouteGroup *);
 
        void row_change (const Gtk::TreeModel::Path&,const Gtk::TreeModel::iterator&);
        void name_edit (const Glib::ustring&, const Glib::ustring&);
-       void new_route_group ();
        void new_from_selection ();
        void new_from_rec_enabled ();
        void new_from_soloed ();
@@ -64,6 +84,7 @@ private:
        void flags_changed (void*, ARDOUR::RouteGroup*);
        void set_activation (ARDOUR::RouteGroup *, bool);
        void remove_selected ();
+       void run_new_group_dialog (const ARDOUR::RouteList&);
 
        Gtk::Menu* _menu;
        Glib::RefPtr<Gtk::ListStore> _model;
@@ -72,6 +93,7 @@ private:
        Gtk::ScrolledWindow _scroller;
        Gtk::VBox* _display_packer;
        bool _in_row_change;
+       PBD::ScopedConnection flags_connection;
 };