X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fbundle_manager.h;h=4172330cf1bf37fb5d6b6152b81da94156e50c8d;hb=b5148d93d5a9e6949f82f8685cab50cb772f2b9d;hp=266e9eadadd88a05f978698fa2cda888fdf9520d;hpb=ee42a6dd97045253d1a9bb32fc2e571d235f9967;p=ardour.git diff --git a/gtk2_ardour/bundle_manager.h b/gtk2_ardour/bundle_manager.h index 266e9eadad..4172330cf1 100644 --- a/gtk2_ardour/bundle_manager.h +++ b/gtk2_ardour/bundle_manager.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2007 Paul Davis + Copyright (C) 2007 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 @@ -25,6 +25,7 @@ #include #include "ardour_dialog.h" #include "port_matrix.h" +#include "i18n.h" namespace ARDOUR { class Session; @@ -34,28 +35,31 @@ namespace ARDOUR { class BundleEditorMatrix : public PortMatrix { public: - BundleEditorMatrix (ARDOUR::Session &, boost::shared_ptr); + BundleEditorMatrix (Gtk::Window *, ARDOUR::Session *, boost::shared_ptr); void set_state (ARDOUR::BundleChannel c[2], bool s); - State get_state (ARDOUR::BundleChannel c[2]) const; + PortMatrixNode::State get_state (ARDOUR::BundleChannel c[2]) const; + + bool can_add_channel (boost::shared_ptr) const; + void add_channel (boost::shared_ptr); - bool can_remove_channels (int d) const { - return d == OURS; - } + bool can_remove_channels (boost::shared_ptr) const; void remove_channel (ARDOUR::BundleChannel); - bool can_rename_channels (int d) const { - return d == OURS; - } + bool can_rename_channels (boost::shared_ptr) const; void rename_channel (ARDOUR::BundleChannel); void setup_ports (int); bool list_is_global (int) const; + std::string disassociation_verb () const { + return _("Disassociate"); + } + private: enum { OTHER = 0, OURS = 1 }; - + boost::shared_ptr _port_group; boost::shared_ptr _bundle; }; @@ -63,7 +67,7 @@ class BundleEditorMatrix : public PortMatrix class BundleEditor : public ArdourDialog { public: - BundleEditor (ARDOUR::Session &, boost::shared_ptr, bool); + BundleEditor (ARDOUR::Session *, boost::shared_ptr); protected: void on_map (); @@ -72,7 +76,8 @@ class BundleEditor : public ArdourDialog void name_changed (); void input_or_output_changed (); void type_changed (); - + void on_show (); + BundleEditorMatrix _matrix; boost::shared_ptr _bundle; Gtk::Entry _name; @@ -83,7 +88,7 @@ class BundleEditor : public ArdourDialog class BundleManager : public ArdourDialog { public: - BundleManager (ARDOUR::Session &); + BundleManager (ARDOUR::Session *); private: @@ -93,6 +98,7 @@ class BundleManager : public ArdourDialog void add_bundle (boost::shared_ptr); void bundle_changed (ARDOUR::Bundle::Change, boost::shared_ptr); void set_button_sensitivity (); + void row_activated (Gtk::TreeModel::Path const & p, Gtk::TreeViewColumn* c); class ModelColumns : public Gtk::TreeModelColumnRecord { @@ -101,17 +107,17 @@ class BundleManager : public ArdourDialog add (name); add (bundle); } - + Gtk::TreeModelColumn name; Gtk::TreeModelColumn > bundle; }; - + Gtk::TreeView _tree_view; Glib::RefPtr _list_model; ModelColumns _list_model_columns; - ARDOUR::Session& _session; Gtk::Button edit_button; Gtk::Button delete_button; + PBD::ScopedConnectionList bundle_connections; }; class NameChannelDialog : public ArdourDialog @@ -125,7 +131,7 @@ public: private: void setup (); - + boost::shared_ptr _bundle; uint32_t _channel; Gtk::Entry _name;