13
0

Center fader in its (left hand side) mixer strip column.

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
This commit is contained in:
David Robillard 2011-05-18 06:53:24 +00:00
parent a5870e4f96
commit a54f10d861
4 changed files with 105 additions and 101 deletions

View 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);

View 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;

View 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;
}

View 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__ */