fix some packing issues in the monitor section when using high-channel-count master/monitor busses (eg. ambi)

git-svn-id: svn://localhost/ardour2/branches/3.0@11805 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2012-04-06 11:18:22 +00:00
parent 4089b0ed93
commit 4969266d06
2 changed files with 10 additions and 5 deletions

View File

@ -36,6 +36,8 @@ MonitorSection::MonitorSection (Session* s)
: AxisView (s)
, RouteUI (s)
, _tearoff (0)
, channel_table_viewport (*channel_table_scroller.get_hadjustment(),
*channel_table_scroller.get_vadjustment ())
, gain_control (0)
, dim_control (0)
, solo_boost_control (0)
@ -257,7 +259,8 @@ MonitorSection::MonitorSection (Session* s)
channel_table_scroller.set_size_request (-1, 150);
channel_table_scroller.set_shadow_type (Gtk::SHADOW_NONE);
channel_table_scroller.show ();
channel_table_scroller.add (channel_table_viewport);
channel_size_group = SizeGroup::create (SIZE_GROUP_HORIZONTAL);
channel_size_group->add_widget (channel_table_header);
channel_size_group->add_widget (channel_table);
@ -357,23 +360,24 @@ MonitorSection::set_session (Session* s)
if (channel_table_scroller.get_parent()) {
/* scroller is packed, so remove it */
channel_table_packer.remove (channel_table_scroller);
/* remove the table_hpacker from the scroller */
channel_table_scroller.remove ();
}
if (table_hpacker.get_parent ()) {
if (table_hpacker.get_parent () == &channel_table_packer) {
/* this occurs when the table hpacker is directly
packed, so remove it.
*/
channel_table_packer.remove (table_hpacker);
} else if (table_hpacker.get_parent()) {
channel_table_viewport.remove ();
}
if (_monitor->output_streams().n_audio() > 7) {
/* put the table into a scrolled window, and then put
* that into the channel vpacker, after the table header
*/
channel_table_scroller.add (table_hpacker);
channel_table_viewport.add (table_hpacker);
channel_table_packer.pack_start (channel_table_scroller, true, true);
channel_table_viewport.show ();
channel_table_scroller.show ();
} else {

View File

@ -59,6 +59,7 @@ class MonitorSection : public RouteUI
Gtk::Table channel_table;
Gtk::Table channel_table_header;
Gtk::ScrolledWindow channel_table_scroller;
Gtk::Viewport channel_table_viewport;
Glib::RefPtr<Gtk::SizeGroup> channel_size_group;
struct ChannelButtonSet {