summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_route_groups.h
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-07-03 18:37:15 +0000
committerCarl Hetherington <carl@carlh.net>2009-07-03 18:37:15 +0000
commitb233455b3fd00789e4f8a951f9fe205de92f94e2 (patch)
tree016011049c624b36944dcf8f11b1d770aff52acd /gtk2_ardour/editor_route_groups.h
parent6e614ae3bfecf157149e651e49b92dc04cf4cda6 (diff)
Split route group list out of Editor.
git-svn-id: svn://localhost/ardour2/branches/3.0@5308 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_route_groups.h')
-rw-r--r--gtk2_ardour/editor_route_groups.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_route_groups.h b/gtk2_ardour/editor_route_groups.h
new file mode 100644
index 0000000000..5235a6a7e4
--- /dev/null
+++ b/gtk2_ardour/editor_route_groups.h
@@ -0,0 +1,77 @@
+#include "editor_component.h"
+
+class EditorRouteGroups : public EditorComponent
+{
+public:
+ EditorRouteGroups (Editor *);
+
+ void connect_to_session (ARDOUR::Session *);
+
+ Gtk::Widget& widget () {
+ return *_display_packer;
+ }
+
+ Gtk::Menu* menu (ARDOUR::RouteGroup *);
+
+ void clear ();
+
+private:
+
+ struct Columns : public Gtk::TreeModel::ColumnRecord {
+
+ Columns () {
+ add (is_visible);
+ add (gain);
+ add (record);
+ add (mute);
+ add (solo);
+ add (select);
+ add (edits);
+ add (text);
+ add (routegroup);
+ }
+
+ Gtk::TreeModelColumn<bool> is_visible;
+ Gtk::TreeModelColumn<bool> gain;
+ Gtk::TreeModelColumn<bool> record;
+ Gtk::TreeModelColumn<bool> mute;
+ Gtk::TreeModelColumn<bool> solo;
+ Gtk::TreeModelColumn<bool> select;
+ Gtk::TreeModelColumn<bool> edits;
+ Gtk::TreeModelColumn<std::string> text;
+ Gtk::TreeModelColumn<ARDOUR::RouteGroup*> routegroup;
+ };
+
+ Columns _columns;
+
+ void activate_all ();
+ void disable_all ();
+ void subgroup (ARDOUR::RouteGroup*);
+ void unsubgroup (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 ();
+ void edit (ARDOUR::RouteGroup *);
+ void button_clicked ();
+ gint button_press_event (GdkEventButton* ev);
+ void add (ARDOUR::RouteGroup* group);
+ void remove_route_group ();
+ void groups_changed ();
+ void flags_changed (void*, ARDOUR::RouteGroup*);
+ void set_activation (ARDOUR::RouteGroup *, bool);
+ void remove_selected ();
+
+ Gtk::Menu* _menu;
+ Glib::RefPtr<Gtk::ListStore> _model;
+ Glib::RefPtr<Gtk::TreeSelection> _selection;
+ Gtk::TreeView _display;
+ Gtk::ScrolledWindow _scroller;
+ Gtk::VBox* _display_packer;
+ bool _in_row_change;
+};
+
+