Center fader in its (left hand side) mixer strip column.
authorDavid Robillard <d@drobilla.net>
Wed, 18 May 2011 06:53:24 +0000 (06:53 +0000)
committerDavid Robillard <d@drobilla.net>
Wed, 18 May 2011 06:53:24 +0000 (06:53 +0000)
Attempt to center meter in its as well, but this doesn't seem to be working.
Perhaps this whole section should be layed out as a table to ensure the split
down the middle is aligned no matter what?

git-svn-id: svn://localhost/ardour2/branches/3.0@9555 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/gain_meter.cc
gtk2_ardour/gain_meter.h
gtk2_ardour/mixer_strip.cc
gtk2_ardour/mixer_strip.h

index 8ef83cfad5b4e2e98446089992e17c1bcad4f3e4..9a7cfc9094890cc67a68ac41354ab00745dc87f1 100644 (file)
@@ -803,9 +803,9 @@ GainMeterBase::on_theme_changed()
 
 GainMeter::GainMeter (Session* s, int fader_length)
        : GainMeterBase (s, slider, false, fader_length)
+       , gain_display_box(true, 2)
+       , hbox(true, 2)
 {
-       gain_display_box.set_homogeneous (true);
-       gain_display_box.set_spacing (2);
        gain_display_box.pack_start (gain_display, true, true);
 
        meter_metric_area.set_name ("AudioTrackMetrics");
@@ -825,17 +825,23 @@ GainMeter::GainMeter (Session* s, int fader_length)
 
        fader_vbox = manage (new Gtk::VBox());
        fader_vbox->set_spacing (0);
-       fader_vbox->pack_start (*gain_slider, false, false, 0);
+       fader_vbox->pack_start (*gain_slider, true, true);
 
-       hbox.set_spacing (2);
-        hbox.pack_start (*fader_vbox, false, false, 4);
+       fader_alignment.set (0.5, 0.5, 0.0, 1.0);
+       fader_alignment.add (*fader_vbox);
+
+       hbox.pack_start (fader_alignment, true, true);
 
        set_spacing (2);
 
        pack_start (gain_display_box, Gtk::PACK_SHRINK);
        pack_start (hbox, Gtk::PACK_SHRINK);
 
-       meter_metric_area.signal_expose_event().connect (sigc::mem_fun(*this, &GainMeter::meter_metrics_expose));
+       meter_alignment.set (0.5, 0.5, 0.0, 1.0);
+       meter_alignment.add (*level_meter);
+
+       meter_metric_area.signal_expose_event().connect (
+               sigc::mem_fun(*this, &GainMeter::meter_metrics_expose));
 }
 
 void
@@ -843,8 +849,8 @@ GainMeter::set_controls (boost::shared_ptr<Route> r,
                         boost::shared_ptr<PeakMeter> meter,
                         boost::shared_ptr<Amp> amp)
 {
-       if (level_meter->get_parent()) {
-               hbox.remove (*level_meter);
+       if (meter_alignment.get_parent()) {
+               hbox.remove (meter_alignment);
        }
 
        if (peak_display.get_parent()) {
@@ -872,7 +878,7 @@ GainMeter::set_controls (boost::shared_ptr<Route> r,
        */
 
        gain_display_box.pack_end (peak_display, true, true);
-       hbox.pack_start (*level_meter, true, true);
+       hbox.pack_start (meter_alignment, true, true);
 
        if (r && !r->is_hidden()) {
                fader_vbox->pack_start (gain_automation_state_button, false, false, 0);
index 83f51ab946ced2fa8593cfe18446f4750a5e10f2..d05ddc15ac9c2fca6769de37477d1d4367be20c2 100644 (file)
@@ -212,6 +212,8 @@ class GainMeter : public GainMeterBase, public Gtk::VBox
        Gtk::HBox  fader_box;
        Gtk::VBox* fader_vbox;
        Gtk::HBox  hbox;
+       Gtk::Alignment fader_alignment;
+       Gtk::Alignment meter_alignment;
        std::vector<ARDOUR::DataType> _types;
 
        static Glib::RefPtr<Gdk::Pixbuf> slider;
index 115b81879029461e409b68e5f50b6255848bcb21..71a3662f91716e4531315007181b269dc359de39 100644 (file)
@@ -247,7 +247,7 @@ MixerStrip::init ()
        ARDOUR_UI::instance()->set_tip (&group_button, _("Mix group"), "");
        group_button.add (group_label);
        group_button.set_name ("MixerGroupButton");
-        Gtkmm2ext::set_size_request_to_display_given_text (group_button, "Group", 2, 2);
+       Gtkmm2ext::set_size_request_to_display_given_text (group_button, "Group", 2, 2);
        group_label.set_name ("MixerGroupButtonLabel");
 
        global_vpacker.set_border_width (0);
@@ -263,19 +263,17 @@ MixerStrip::init ()
        width_hide_box.pack_start (width_button, false, true);
        width_hide_box.pack_start (top_event_box, true, true);
        width_hide_box.pack_end (hide_button, false, true);
-       gain_meter_alignment.set_padding(0, 4, 0, 0);
-       gain_meter_alignment.add(gpm);
 
        whvbox.pack_start (width_hide_box, true, true);
 
        global_vpacker.pack_start (whvbox, Gtk::PACK_SHRINK);
-       global_vpacker.pack_start (button_table,Gtk::PACK_SHRINK);
+       global_vpacker.pack_start (button_table, Gtk::PACK_SHRINK);
        global_vpacker.pack_start (processor_box, true, true);
        global_vpacker.pack_start (panners, Gtk::PACK_SHRINK);
        global_vpacker.pack_start (below_panner_box, Gtk::PACK_SHRINK);
-       global_vpacker.pack_start (middle_button_table,Gtk::PACK_SHRINK);
-       global_vpacker.pack_start (gain_meter_alignment,Gtk::PACK_SHRINK);
-       global_vpacker.pack_start (bottom_button_table,Gtk::PACK_SHRINK);
+       global_vpacker.pack_start (middle_button_table, Gtk::PACK_SHRINK);
+       global_vpacker.pack_start (gpm, Gtk::PACK_SHRINK);
+       global_vpacker.pack_start (bottom_button_table, Gtk::PACK_SHRINK);
        global_vpacker.pack_start (output_button, Gtk::PACK_SHRINK);
 
        global_frame.add (global_vpacker);
@@ -380,13 +378,13 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
                set_color (unique_random_color());
        }
 
-        if (route()->is_master()) {
-                solo_button->hide ();
-                below_panner_box.hide ();
-        } else {
-                solo_button->show ();
-                below_panner_box.show ();
-        }
+       if (route()->is_master()) {
+               solo_button->hide ();
+               below_panner_box.hide ();
+       } else {
+               solo_button->show ();
+               below_panner_box.show ();
+       }
 
        if (_mixer_owned && (route()->is_master() || route()->is_monitor())) {
 
@@ -428,7 +426,7 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
                }
        }
 
-        meter_point_label.set_text (meter_point_string (_route->meter_point()));
+       meter_point_label.set_text (meter_point_string (_route->meter_point()));
 
        delete route_ops_menu;
        route_ops_menu = 0;
@@ -452,7 +450,7 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
        /* now force an update of all the various elements */
 
        mute_changed (0);
-        update_solo_display ();
+       update_solo_display ();
        name_changed ();
        comment_changed (0);
        route_group_changed ();
@@ -482,7 +480,6 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
        middle_button_table.show();
        bottom_button_table.show();
        gpm.show_all ();
-       gain_meter_alignment.show ();
        gain_unit_button.show();
        gain_unit_label.show();
        meter_point_button.show();
@@ -631,9 +628,9 @@ struct RouteCompareByName {
 gint
 MixerStrip::output_press (GdkEventButton *ev)
 {
-        using namespace Menu_Helpers;
+       using namespace Menu_Helpers;
        if (!_session->engine().connected()) {
-               MessageDialog msg (_("Not connected to JACK - no I/O changes are possible"));
+               MessageDialog msg (_("Not connected to JACK - no I/O changes are possible"));
                msg.run ();
                return true;
        }
@@ -689,7 +686,7 @@ MixerStrip::output_press (GdkEventButton *ev)
        }
 
        default:
-               break;
+               break;
        }
        return TRUE;
 }
@@ -746,7 +743,7 @@ MixerStrip::input_press (GdkEventButton *ev)
        citems.clear();
 
        if (!_session->engine().connected()) {
-               MessageDialog msg (_("Not connected to JACK - no I/O changes are possible"));
+               MessageDialog msg (_("Not connected to JACK - no I/O changes are possible"));
                msg.run ();
                return true;
        }
@@ -800,7 +797,7 @@ MixerStrip::input_press (GdkEventButton *ev)
                break;
        }
        default:
-               break;
+               break;
        }
        return TRUE;
 }
@@ -934,10 +931,10 @@ MixerStrip::connect_to_pan ()
                return;
        }
 
-        boost::shared_ptr<Pannable> p = _route->pannable ();
+       boost::shared_ptr<Pannable> p = _route->pannable ();
 
-        p->automation_state_changed.connect (panstate_connection, invalidator (*this), boost::bind (&PannerUI::pan_automation_state_changed, &panners), gui_context());
-        p->automation_style_changed.connect (panstyle_connection, invalidator (*this), boost::bind (&PannerUI::pan_automation_style_changed, &panners), gui_context());
+       p->automation_state_changed.connect (panstate_connection, invalidator (*this), boost::bind (&PannerUI::pan_automation_state_changed, &panners), gui_context());
+       p->automation_style_changed.connect (panstyle_connection, invalidator (*this), boost::bind (&PannerUI::pan_automation_style_changed, &panners), gui_context());
 
        panners.panshell_changed ();
 }
@@ -1300,7 +1297,7 @@ MixerStrip::route_group_changed ()
        RouteGroup *rg = _route->route_group();
 
        if (rg) {
-                group_label.set_text (PBD::short_version (rg->name(), 5));
+               group_label.set_text (PBD::short_version (rg->name(), 5));
        } else {
                switch (_width) {
                case Wide:
@@ -1372,7 +1369,7 @@ MixerStrip::build_route_ops_menu ()
        if (!Profile->get_sae()) {
                items.push_back (SeparatorElem());
                items.push_back (MenuElem (_("Remote Control ID..."), sigc::mem_fun (*this, &RouteUI::open_remote_control_id_dialog)));
-        }
+       }
 
        items.push_back (SeparatorElem());
        items.push_back (MenuElem (_("Remove"), sigc::bind (sigc::mem_fun(*this, &RouteUI::remove_this_route), false)));
@@ -1389,8 +1386,8 @@ MixerStrip::name_button_button_press (GdkEventButton* ev)
                route_ops_menu->popup (1, ev->time);
 
        } else if (ev->button == 1) {
-                revert_to_default_display ();
-        }
+               revert_to_default_display ();
+       }
 
        return false;
 }
@@ -1424,7 +1421,7 @@ MixerStrip::name_changed ()
                RouteUI::property_changed (PropertyChange (ARDOUR::Properties::name));
                break;
        case Narrow:
-               name_label.set_text (PBD::short_version (_route->name(), 5));
+               name_label.set_text (PBD::short_version (_route->name(), 5));
                break;
        }
 }
@@ -1569,24 +1566,24 @@ MixerStrip::meter_point_string (MeterPoint mp)
 {
        switch (mp) {
        case MeterInput:
-                return _("in");
+               return _("in");
                break;
 
        case MeterPreFader:
-                return _("pre");
+               return _("pre");
                break;
 
        case MeterPostFader:
-                return _("post");
+               return _("post");
                break;
 
        case MeterOutput:
-                return _("out");
+               return _("out");
                break;
 
        case MeterCustom:
-        default:
-                return _("custom");
+       default:
+               return _("custom");
                break;
        }
 }
@@ -1595,7 +1592,7 @@ MixerStrip::meter_point_string (MeterPoint mp)
 void
 MixerStrip::meter_changed ()
 {
-        meter_point_label.set_text (meter_point_string (_route->meter_point()));
+       meter_point_label.set_text (meter_point_string (_route->meter_point()));
        gpm.setup_meters ();
        // reset peak when meter point changes
        gpm.reset_peak_display();
@@ -1649,14 +1646,14 @@ MixerStrip::drop_send ()
        send_gone_connection.disconnect ();
        input_button.set_sensitive (true);
        output_button.set_sensitive (true);
-        group_button.set_sensitive (true);
-        set_invert_sensitive (true);
-        meter_point_button.set_sensitive (true);
-        mute_button->set_sensitive (true);
-        solo_button->set_sensitive (true);
-        rec_enable_button->set_sensitive (true);
-        solo_isolated_led->set_sensitive (true);
-        solo_safe_led->set_sensitive (true);
+       group_button.set_sensitive (true);
+       set_invert_sensitive (true);
+       meter_point_button.set_sensitive (true);
+       mute_button->set_sensitive (true);
+       solo_button->set_sensitive (true);
+       rec_enable_button->set_sensitive (true);
+       solo_isolated_led->set_sensitive (true);
+       solo_safe_led->set_sensitive (true);
 }
 
 void
@@ -1685,14 +1682,14 @@ MixerStrip::show_send (boost::shared_ptr<Send> send)
        panner_ui().setup_pan ();
 
        input_button.set_sensitive (false);
-        group_button.set_sensitive (false);
-        set_invert_sensitive (false);
-        meter_point_button.set_sensitive (false);
-        mute_button->set_sensitive (false);
-        solo_button->set_sensitive (false);
-        rec_enable_button->set_sensitive (false);
-        solo_isolated_led->set_sensitive (false);
-        solo_safe_led->set_sensitive (false);
+       group_button.set_sensitive (false);
+       set_invert_sensitive (false);
+       meter_point_button.set_sensitive (false);
+       mute_button->set_sensitive (false);
+       solo_button->set_sensitive (false);
+       rec_enable_button->set_sensitive (false);
+       solo_isolated_led->set_sensitive (false);
+       solo_safe_led->set_sensitive (false);
 
        if (boost::dynamic_pointer_cast<InternalSend>(send)) {
                output_button.set_sensitive (false);
@@ -1724,46 +1721,46 @@ MixerStrip::revert_to_default_display ()
 void
 MixerStrip::set_button_names ()
 {
-        switch (_width) {
+       switch (_width) {
        case Wide:
                rec_enable_button_label.set_text (_("Rec"));
                mute_button_label.set_text (_("Mute"));
-                if (_route && _route->solo_safe()) {
-                        solo_button_label.set_text (X_("!"));
-                } else {
-                        if (!Config->get_solo_control_is_listen_control()) {
-                                solo_button_label.set_text (_("Solo"));
-                        } else {
-                                switch (Config->get_listen_position()) {
-                                case AfterFaderListen:
-                                        solo_button_label.set_text (_("AFL"));
-                                        break;
-                                case PreFaderListen:
-                                        solo_button_label.set_text (_("PFL"));
-                                        break;
-                                }
-                        }
-                }
+               if (_route && _route->solo_safe()) {
+                       solo_button_label.set_text (X_("!"));
+               } else {
+                       if (!Config->get_solo_control_is_listen_control()) {
+                               solo_button_label.set_text (_("Solo"));
+                       } else {
+                               switch (Config->get_listen_position()) {
+                               case AfterFaderListen:
+                                       solo_button_label.set_text (_("AFL"));
+                                       break;
+                               case PreFaderListen:
+                                       solo_button_label.set_text (_("PFL"));
+                                       break;
+                               }
+                       }
+               }
                break;
 
        default:
                rec_enable_button_label.set_text (_("R"));
                mute_button_label.set_text (_("M"));
-                if (_route && _route->solo_safe()) {
-                        solo_button_label.set_text (X_("!"));
-                        if (!Config->get_solo_control_is_listen_control()) {
-                                solo_button_label.set_text (_("S"));
-                        } else {
-                                switch (Config->get_listen_position()) {
-                                case AfterFaderListen:
-                                        solo_button_label.set_text (_("A"));
-                                        break;
-                                case PreFaderListen:
-                                        solo_button_label.set_text (_("P"));
-                                        break;
-                                }
-                        }
-                }
+               if (_route && _route->solo_safe()) {
+                       solo_button_label.set_text (X_("!"));
+                       if (!Config->get_solo_control_is_listen_control()) {
+                               solo_button_label.set_text (_("S"));
+                       } else {
+                               switch (Config->get_listen_position()) {
+                               case AfterFaderListen:
+                                       solo_button_label.set_text (_("A"));
+                                       break;
+                               case PreFaderListen:
+                                       solo_button_label.set_text (_("P"));
+                                       break;
+                               }
+                       }
+               }
                break;
 
        }
@@ -1842,7 +1839,7 @@ MixerStrip::on_key_release_event (GdkEventKey* ev)
                break;
 
        case GDK_r:
-                cerr << "Stole that r\n";
+               cerr << "Stole that r\n";
                rec_enable_release (&fake);
                return true;
                break;
@@ -1866,7 +1863,7 @@ MixerStrip::on_key_release_event (GdkEventKey* ev)
 bool
 MixerStrip::on_enter_notify_event (GdkEventCrossing*)
 {
-        Keyboard::magic_widget_grab_focus ();
+       Keyboard::magic_widget_grab_focus ();
        return false;
 }
 
index ef35bf237d9e49d4c2076d95bcd1151037e74372..ab96d9d71ed50f9bd88d65e18e5c5f9455ad0354 100644 (file)
@@ -147,7 +147,6 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
        Gtk::VBox           whvbox;
        Gtk::EventBox       top_event_box;
        Gtk::EventBox*      spacer;
-       Gtk::Alignment      gain_meter_alignment;
 
        void hide_clicked();
        void width_clicked ();
@@ -156,11 +155,11 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
        Gtk::VBox           global_vpacker;
 
        ProcessorBox processor_box;
-       GainMeter   gpm;
-       PannerUI    panners;
+       GainMeter    gpm;
+       PannerUI     panners;
 
        Gtk::Table button_table;
-        Gtk::Table solo_led_table;
+       Gtk::Table solo_led_table;
        Gtk::HBox  below_panner_box;
        Gtk::Table middle_button_table;
        Gtk::Table bottom_button_table;
@@ -286,7 +285,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
        void update_io_button (boost::shared_ptr<ARDOUR::Route> route, Width width, bool input_button);
        void port_connected_or_disconnected (ARDOUR::Port *, ARDOUR::Port *);
 
-        static std::string meter_point_string (ARDOUR::MeterPoint);
+       static std::string meter_point_string (ARDOUR::MeterPoint);
 };
 
 #endif /* __ardour_mixer_strip__ */