X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fmixer_ui.cc;h=46458d889f3e372ab4db704efb282665f9a7a577;hb=b78d036aa056af0ef4f5821c45dae5f70bc69231;hp=11be303099b6fec2b9bbc5b859e96e54233f1077;hpb=da8eec7a8311295ee91308eca9fae2146385c512;p=ardour.git diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 11be303099..46458d889f 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -17,6 +17,10 @@ */ +#ifdef WAF_BUILD +#include "gtk2ardour-config.h" +#endif + #include #include #include @@ -91,31 +95,7 @@ Mixer_UI::Mixer_UI () scroller.add (*b); scroller.set_policy (Gtk::POLICY_ALWAYS, Gtk::POLICY_AUTOMATIC); - track_model = ListStore::create (track_columns); - track_display.set_model (track_model); - track_display.append_column (_("Strips"), track_columns.text); - track_display.append_column (_("Show"), track_columns.visible); - track_display.get_column (0)->set_data (X_("colnum"), GUINT_TO_POINTER(0)); - track_display.get_column (1)->set_data (X_("colnum"), GUINT_TO_POINTER(1)); - track_display.get_column (0)->set_expand(true); - track_display.get_column (1)->set_expand(false); - track_display.set_name (X_("MixerTrackDisplayList")); - track_display.get_selection()->set_mode (Gtk::SELECTION_NONE); - track_display.set_reorderable (true); - track_display.set_headers_visible (true); - - track_model->signal_row_deleted().connect (sigc::mem_fun (*this, &Mixer_UI::track_list_delete)); - track_model->signal_row_changed().connect (sigc::mem_fun (*this, &Mixer_UI::track_list_change)); - track_model->signal_rows_reordered().connect (sigc::mem_fun (*this, &Mixer_UI::track_list_reorder)); - - CellRendererToggle* track_list_visible_cell = dynamic_cast(track_display.get_column_cell_renderer (1)); - track_list_visible_cell->property_activatable() = true; - track_list_visible_cell->property_radio() = false; - - track_display.signal_button_press_event().connect (sigc::mem_fun (*this, &Mixer_UI::track_display_button_press), false); - - track_display_scroller.add (track_display); - track_display_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC); + setup_track_display (); group_model = ListStore::create (group_columns); group_display.set_model (group_model); @@ -176,10 +156,6 @@ Mixer_UI::Mixer_UI () group_display_vbox.pack_start (group_display_scroller, true, true); group_display_vbox.pack_start (*route_group_display_button_box, false, false); - track_display_frame.set_name("BaseFrame"); - track_display_frame.set_shadow_type (Gtk::SHADOW_IN); - track_display_frame.add(track_display_scroller); - group_display_frame.set_name ("BaseFrame"); group_display_frame.set_shadow_type (Gtk::SHADOW_IN); group_display_frame.add (group_display_vbox); @@ -237,16 +213,13 @@ Mixer_UI::Mixer_UI () list_vpacker.show(); group_display_button_label.show(); group_display_button.show(); - track_display_scroller.show(); group_display_scroller.show(); group_display_vbox.show(); - track_display_frame.show(); group_display_frame.show(); rhs_pane1.show(); strip_packer.show(); out_packer.show(); list_hpane.show(); - track_display.show(); group_display.show(); auto_rebinding = FALSE; @@ -1613,3 +1586,61 @@ Mixer_UI::plugin_selector() return _plugin_selector; } + +void +Mixer_UI::setup_track_display () +{ + track_model = ListStore::create (track_columns); + track_display.set_model (track_model); + track_display.append_column (_("Strips"), track_columns.text); + track_display.append_column (_("Show"), track_columns.visible); + track_display.get_column (0)->set_data (X_("colnum"), GUINT_TO_POINTER(0)); + track_display.get_column (1)->set_data (X_("colnum"), GUINT_TO_POINTER(1)); + track_display.get_column (0)->set_expand(true); + track_display.get_column (1)->set_expand(false); + track_display.set_name (X_("MixerTrackDisplayList")); + track_display.get_selection()->set_mode (Gtk::SELECTION_NONE); + track_display.set_reorderable (true); + track_display.set_headers_visible (true); + + track_model->signal_row_deleted().connect (sigc::mem_fun (*this, &Mixer_UI::track_list_delete)); + track_model->signal_row_changed().connect (sigc::mem_fun (*this, &Mixer_UI::track_list_change)); + track_model->signal_rows_reordered().connect (sigc::mem_fun (*this, &Mixer_UI::track_list_reorder)); + + CellRendererToggle* track_list_visible_cell = dynamic_cast(track_display.get_column_cell_renderer (1)); + track_list_visible_cell->property_activatable() = true; + track_list_visible_cell->property_radio() = false; + + track_display.signal_button_press_event().connect (sigc::mem_fun (*this, &Mixer_UI::track_display_button_press), false); + + track_display_scroller.add (track_display); + track_display_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC); + + VBox* v = manage (new VBox); + v->show (); + v->pack_start (track_display_scroller, true, true); + + Button* b = manage (new Button); + b->show (); + Widget* w = manage (new Image (Stock::ADD, ICON_SIZE_BUTTON)); + w->show (); + b->add (*w); + + b->signal_clicked().connect (sigc::mem_fun (*this, &Mixer_UI::new_track_or_bus)); + + v->pack_start (*b, false, false); + + track_display_frame.set_name("BaseFrame"); + track_display_frame.set_shadow_type (Gtk::SHADOW_IN); + track_display_frame.add (*v); + + track_display_scroller.show(); + track_display_frame.show(); + track_display.show(); +} + +void +Mixer_UI::new_track_or_bus () +{ + ARDOUR_UI::instance()->add_route (this); +}