diff options
author | Ben Loftis <ben@harrisonconsoles.com> | 2017-08-22 09:19:02 -0500 |
---|---|---|
committer | Ben Loftis <ben@harrisonconsoles.com> | 2017-08-22 09:19:11 -0500 |
commit | 052ca8e0de4404aa4b55e0aee3350309a9a94b52 (patch) | |
tree | 19e996acd39ccef5564cc9c4045761603c7d10a5 /gtk2_ardour/add_route_dialog.cc | |
parent | 180cbb0af97bb3cf103e209a0f2e549fdefba412 (diff) |
Track Templates: yet another layout tweak.
Diffstat (limited to 'gtk2_ardour/add_route_dialog.cc')
-rw-r--r-- | gtk2_ardour/add_route_dialog.cc | 91 |
1 files changed, 58 insertions, 33 deletions
diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc index e9480c1dac..73753d5eb4 100644 --- a/gtk2_ardour/add_route_dialog.cc +++ b/gtk2_ardour/add_route_dialog.cc @@ -106,16 +106,17 @@ AddRouteDialog::AddRouteDialog () strict_io_combo.append_text (_("Strict-I/O")); strict_io_combo.set_active (Config->get_strict_io () ? 1 : 0); + //top-level VBox VBox* vbox = manage (new VBox); - get_vbox()->set_spacing (4); - vbox->set_spacing (18); vbox->set_border_width (5); + //this box contains the template chooser, and the template details HBox* template_hbox = manage (new HBox); template_hbox->set_spacing (8); + //scrollbars for the template chooser and template descriptions.... Gtk::ScrolledWindow *template_scroller = manage (new Gtk::ScrolledWindow()); template_scroller->set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC); template_scroller->add (trk_template_chooser); @@ -124,11 +125,12 @@ AddRouteDialog::AddRouteDialog () desc_scroller->set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC); desc_scroller->add (trk_template_desc); - template_hbox->pack_start (*template_scroller, true, true); + //this is the outer frame that surrounds the description and the settings-table + trk_template_outer_frame.set_name (X_("TextHighlightFrame")); + //this is the "inner frame" that surrounds the description text trk_template_desc_frame.set_name (X_("TextHighlightFrame")); trk_template_desc_frame.add (*desc_scroller); - template_hbox->pack_start (trk_template_desc_frame, true, true); /* template_chooser is the treeview showing available templates */ trk_template_model = TreeStore::create (track_template_columns); @@ -150,54 +152,67 @@ AddRouteDialog::AddRouteDialog () trk_template_desc.set_name (X_("TextOnBackground")); trk_template_desc.set_border_width (6); + Table *settings_table = manage (new Table (2, 6, false)); + settings_table->set_row_spacings (8); + settings_table->set_col_spacings (4); + settings_table->set_col_spacing (3, 20); + settings_table->set_border_width (12); + + VBox* settings_vbox = manage (new VBox); + settings_vbox->pack_start(trk_template_desc_frame , true, true); + settings_vbox->pack_start(*settings_table , true, true); + settings_vbox->set_border_width (4); + + trk_template_outer_frame.add (*settings_vbox); + + template_hbox->pack_start (*template_scroller, true, true); + template_hbox->pack_start (trk_template_outer_frame, true, true); + vbox->pack_start (*template_hbox, true, true); + + //Now pack the "settings table" with manual controls (these controls are sensitized by the left-side selection) + + int n = 0; + HBox *separator_hbox = manage (new HBox); separator_hbox->pack_start (manual_label, false, false); separator_hbox->pack_start (*(manage (new Gtk::HSeparator)), true, true); separator_hbox->set_spacing (6); - vbox->pack_start (*separator_hbox, true, true); - - /* track/bus choice */ - - Table *add_table = manage (new Table (8, 6, false)); - add_table->set_row_spacings (8); - add_table->set_col_spacings (4); - add_table->set_col_spacing (3, 20); - add_table->set_border_width (0); + settings_table->attach (*separator_hbox, 0, 6, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); - int n = 0; + ++n; // Number add_label.set_alignment (Gtk::ALIGN_RIGHT, Gtk::ALIGN_CENTER); - add_table->attach (add_label, 0, 1, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + settings_table->attach (add_label, 0, 1, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); Gtk::Alignment *align = manage (new Alignment (0, .5, 0, 0)); align->add (routes_spinner); - add_table->attach (*align, 1, 2, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + settings_table->attach (*align, 1, 2, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); ++n; // Name name_label.set_alignment (Gtk::ALIGN_RIGHT, Gtk::ALIGN_CENTER); - add_table->attach (name_label, 0, 1, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); - add_table->attach (name_template_entry, 1, 3, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + settings_table->attach (name_label, 0, 1, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + settings_table->attach (name_template_entry, 1, 3, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); // Route configuration configuration_label.set_alignment (Gtk::ALIGN_RIGHT, Gtk::ALIGN_CENTER); - add_table->attach (configuration_label, 4, 5, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); - add_table->attach (channel_combo, 5, 6, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + settings_table->attach (configuration_label, 4, 5, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + settings_table->attach (channel_combo, 5, 6, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); ++n; // instrument choice (for MIDI) instrument_label.set_alignment (Gtk::ALIGN_RIGHT, Gtk::ALIGN_CENTER); - add_table->attach (instrument_label, 0, 1, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); - add_table->attach (instrument_combo, 1, 3, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + settings_table->attach (instrument_label, 0, 1, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + settings_table->attach (instrument_combo, 1, 3, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); // Group choice group_label.set_alignment (Gtk::ALIGN_RIGHT, Gtk::ALIGN_CENTER); - add_table->attach (group_label, 4, 5, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); - add_table->attach (route_group_combo, 5, 6, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + settings_table->attach (group_label, 4, 5, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + settings_table->attach (route_group_combo, 5, 6, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); ++n; @@ -206,36 +221,46 @@ AddRouteDialog::AddRouteDialog () strict_io_combo.set_active (1); } else { strict_io_label.set_alignment (Gtk::ALIGN_RIGHT, Gtk::ALIGN_CENTER); - add_table->attach (strict_io_label, 0, 1, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); - add_table->attach (strict_io_combo, 1, 3, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + settings_table->attach (strict_io_label, 0, 1, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + settings_table->attach (strict_io_combo, 1, 3, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); ArdourWidgets::set_tooltip (strict_io_combo, _("With strict-i/o enabled, Effect Processors will not modify the number of channels on a track. The number of output channels will always match the number of input channels.")); // recording mode mode_label.set_alignment (Gtk::ALIGN_RIGHT, Gtk::ALIGN_CENTER); - add_table->attach (mode_label, 4, 5, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); - add_table->attach (mode_combo, 5, 6, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + settings_table->attach (mode_label, 4, 5, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + settings_table->attach (mode_combo, 5, 6, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); ++n; } + //now pack the "global" table at the bottom: these controls are always sensitized for adding the selected item(s) - add_table->attach (*(manage (new Gtk::HSeparator)), 0, 6, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + Table *global_table = manage (new Table (2, 6, false)); + global_table->set_row_spacings (8); + global_table->set_col_spacings (4); + global_table->set_border_width (0); + n = 0; + + global_table->attach (*(manage (new Gtk::HSeparator)), 0, 6, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); ++n; // New route will be inserted at.. insert_label.set_alignment (Gtk::ALIGN_RIGHT, Gtk::ALIGN_CENTER); - add_table->attach (insert_label, 0, 1, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); - add_table->attach (insert_at_combo, 1, 3, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + global_table->attach (insert_label, 0, 1, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + global_table->attach (insert_at_combo, 1, 3, n, n + 1, Gtk::FILL, Gtk::FILL|Gtk::SHRINK, 0, 0); + +// ++n; + //quick-add button (add item but don't close dialog) Gtk::Button* addnoclose_button = manage (new Gtk::Button(_("Add selected items (and leave dialog open)"))); addnoclose_button->set_can_default (); addnoclose_button->signal_clicked ().connect (sigc::bind (sigc::mem_fun (*this, &Gtk::Dialog::response), Add)); - add_table->attach (*addnoclose_button, 4, 6, n, n + 1, Gtk::FILL, Gtk::SHRINK, 0, 0); + global_table->attach (*addnoclose_button, 4, 6, n, n + 1, Gtk::FILL, Gtk::FILL|Gtk::SHRINK, 0, 0); - vbox->pack_start (*add_table, false, true); + vbox->pack_start (*global_table, true, true); get_vbox()->pack_start (*vbox, false, false); |