diff options
author | Carl Hetherington <carl@carlh.net> | 2009-01-25 06:47:11 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2009-01-25 06:47:11 +0000 |
commit | 49510ba1d7fc1c85e767c05f10f9481998ef94b0 (patch) | |
tree | e04210728fb9b5e52864eb8cdc0774e4d0b9d7f2 /gtk2_ardour/io_selector.cc | |
parent | a9d67a2cc97b28795a9112a176ba1f2c1ab470d3 (diff) |
Some refactoring. Add port group headers to the port matrix.
git-svn-id: svn://localhost/ardour2/branches/3.0@4443 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/io_selector.cc')
-rw-r--r-- | gtk2_ardour/io_selector.cc | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/gtk2_ardour/io_selector.cc b/gtk2_ardour/io_selector.cc index d61a37d655..cb1a07ce14 100644 --- a/gtk2_ardour/io_selector.cc +++ b/gtk2_ardour/io_selector.cc @@ -42,25 +42,30 @@ using namespace ARDOUR; using namespace Gtk; IOSelector::IOSelector (ARDOUR::Session& session, boost::shared_ptr<ARDOUR::IO> io, bool offer_inputs) - : PortMatrix (session, io->default_type(), offer_inputs, - PortGroupList::Mask (PortGroupList::BUSS | - PortGroupList::SYSTEM | - PortGroupList::OTHER)) + : PortMatrix (session, io->default_type(), offer_inputs) , _session (session) , _io (io) { /* Listen for ports changing on the IO */ _io->PortCountChanged.connect (sigc::hide (mem_fun (*this, &IOSelector::ports_changed))); + + _port_group = new PortGroup ("", true); + _row_ports.push_back (_port_group); setup (); } +IOSelector::~IOSelector () +{ + delete _port_group; +} + void IOSelector::setup () { - _our_bundles.clear (); - _our_bundles.push_back (boost::shared_ptr<ARDOUR::Bundle> (new ARDOUR::Bundle)); - _our_bundles.front()->set_name (_io->name()); + _port_group->bundles.clear (); + _port_group->bundles.push_back (boost::shared_ptr<ARDOUR::Bundle> (new ARDOUR::Bundle)); + _port_group->bundles.front()->set_name (_io->name()); if (offering_input ()) { const PortSet& ps (_io->outputs()); @@ -69,8 +74,8 @@ IOSelector::setup () for (PortSet::const_iterator i = ps.begin(); i != ps.end(); ++i) { char buf[32]; snprintf (buf, sizeof(buf), _("out %d"), j + 1); - _our_bundles.front()->add_channel (buf); - _our_bundles.front()->add_port_to_channel (j, _session.engine().make_port_name_non_relative (i->name())); + _port_group->bundles.front()->add_channel (buf); + _port_group->bundles.front()->add_port_to_channel (j, _session.engine().make_port_name_non_relative (i->name())); ++j; } @@ -82,8 +87,8 @@ IOSelector::setup () for (PortSet::const_iterator i = ps.begin(); i != ps.end(); ++i) { char buf[32]; snprintf (buf, sizeof(buf), _("in %d"), j + 1); - _our_bundles.front()->add_channel (buf); - _our_bundles.front()->add_port_to_channel (j, _session.engine().make_port_name_non_relative (i->name())); + _port_group->bundles.front()->add_channel (buf); + _port_group->bundles.front()->add_port_to_channel (j, _session.engine().make_port_name_non_relative (i->name())); ++j; } @@ -303,11 +308,7 @@ IOSelectorWindow::IOSelectorWindow (ARDOUR::Session& session, boost::shared_ptr< get_vbox()->set_spacing (8); - /* XXX: do we still need the ScrolledWindow? */ - Gtk::ScrolledWindow* sel_scroll = Gtk::manage (new Gtk::ScrolledWindow); - sel_scroll->set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_NEVER); - sel_scroll->add (_selector); - get_vbox()->pack_start (*sel_scroll, true, true); + get_vbox()->pack_start (_selector, true, true); set_position (Gtk::WIN_POS_MOUSE); |