summaryrefslogtreecommitdiff
path: root/gtk2_ardour/port_matrix.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/port_matrix.cc')
-rw-r--r--gtk2_ardour/port_matrix.cc40
1 files changed, 23 insertions, 17 deletions
diff --git a/gtk2_ardour/port_matrix.cc b/gtk2_ardour/port_matrix.cc
index 63779a6083..79256df6e0 100644
--- a/gtk2_ardour/port_matrix.cc
+++ b/gtk2_ardour/port_matrix.cc
@@ -37,7 +37,8 @@
* @param type Port type that we are handling.
*/
PortMatrix::PortMatrix (ARDOUR::Session& session, ARDOUR::DataType type)
- : _session (session),
+ : Gtk::Table (2, 2),
+ _session (session),
_type (type),
_column_visibility_box_added (false),
_row_visibility_box_added (false),
@@ -46,7 +47,8 @@ PortMatrix::PortMatrix (ARDOUR::Session& session, ARDOUR::DataType type)
_arrangement (TOP_TO_RIGHT),
_row_index (0),
_column_index (1),
- _min_height_divisor (1)
+ _min_height_divisor (1),
+ _show_only_bundles (false)
{
_body = new PortMatrixBody (this);
@@ -147,15 +149,14 @@ PortMatrix::setup ()
_scroller_table.remove (*_body);
_scroller_table.remove (_hscroll);
- _main_hbox.remove (_scroller_table);
+ remove (_scroller_table);
if (_row_visibility_box_added) {
- _main_hbox.remove (_row_visibility_box);
+ remove (_row_visibility_box);
}
if (_column_visibility_box_added) {
remove (_column_visibility_box);
}
- remove (_main_hbox);
}
if (_column_index == 0) {
@@ -190,42 +191,38 @@ PortMatrix::setup ()
_scroller_table.attach (*_body, 0, 1, 1, 2);
_scroller_table.attach (_vscroll, 1, 2, 1, 2, Gtk::SHRINK);
- _main_hbox.pack_start (_scroller_table);
+ attach (_scroller_table, 0, 1, 1, 2, Gtk::FILL | Gtk::EXPAND, Gtk::FILL | Gtk::EXPAND);
if (rows()->size() > 1) {
- _main_hbox.pack_start (_row_visibility_box, Gtk::PACK_SHRINK);
+ attach (_row_visibility_box, 1, 2, 1, 2, Gtk::SHRINK, Gtk::SHRINK);
_row_visibility_box_added = true;
} else {
_row_visibility_box_added = false;
}
if (columns()->size() > 1) {
- pack_start (_column_visibility_box, Gtk::PACK_SHRINK);
+ attach (_column_visibility_box, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK);
_column_visibility_box_added = true;
} else {
_column_visibility_box_added = false;
}
- pack_start (_main_hbox);
-
} else {
_scroller_table.attach (_vscroll, 0, 1, 0, 1, Gtk::SHRINK);
_scroller_table.attach (*_body, 1, 2, 0, 1);
_scroller_table.attach (_hscroll, 1, 2, 1, 2, Gtk::FILL | Gtk::EXPAND, Gtk::SHRINK);
if (rows()->size() > 1) {
- _main_hbox.pack_start (_row_visibility_box, Gtk::PACK_SHRINK);
+ attach (_row_visibility_box, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK);
_row_visibility_box_added = true;
} else {
_row_visibility_box_added = false;
}
- _main_hbox.pack_start (_scroller_table);
+ attach (_scroller_table, 1, 2, 0, 1, Gtk::FILL | Gtk::EXPAND, Gtk::FILL | Gtk::EXPAND);
- pack_start (_main_hbox);
-
if (columns()->size() > 1) {
- pack_start (_column_visibility_box, Gtk::PACK_SHRINK);
+ attach (_column_visibility_box, 1, 2, 1, 2, Gtk::SHRINK, Gtk::SHRINK);
_column_visibility_box_added = true;
} else {
_column_visibility_box_added = false;
@@ -294,7 +291,7 @@ PortMatrix::disassociate_all ()
ARDOUR::BundleChannel (*k, l)
};
- if (get_state (c) == ASSOCIATED) {
+ if (get_state (c) == PortMatrixNode::ASSOCIATED) {
set_state (c, false);
}
@@ -476,7 +473,7 @@ PortMatrix::disassociate_all_on_channel (boost::weak_ptr<ARDOUR::Bundle> bundle,
c[dim] = ARDOUR::BundleChannel (sb, channel);
c[1-dim] = ARDOUR::BundleChannel (*i, j);
- if (get_state (c) == ASSOCIATED) {
+ if (get_state (c) == PortMatrixNode::ASSOCIATED) {
set_state (c, false);
}
}
@@ -501,3 +498,12 @@ PortMatrix::setup_all_ports ()
setup_ports (0);
setup_ports (1);
}
+
+void
+PortMatrix::set_show_only_bundles (bool s)
+{
+ _show_only_bundles = s;
+ _body->setup ();
+ setup_scrollbars ();
+ queue_draw ();
+}