void
MixerStrip::init ()
{
- int button_table_row = 0;
-
_entered_mixer_strip= 0;
group_menu = 0;
route_ops_menu = 0;
input_button.set_text (_("Input"));
input_button.set_name ("mixer strip button");
- input_button.set_size_request (-1, 20);
input_button_box.pack_start (input_button, true, true);
- Gtkmm2ext::set_height_request_to_display_any_text (input_button, _button_vpad);
output_button.set_text (_("Output"));
output_button.set_name ("mixer strip button");
- Gtkmm2ext::set_size_request_to_display_given_text (output_button, longest_label.c_str(), 4, 4);
- Gtkmm2ext::set_height_request_to_display_any_text (output_button, _button_vpad);
ARDOUR_UI::instance()->set_tip (&meter_point_button, _("Click to select metering point"), "");
meter_point_button.set_name ("mixer strip button");
- /* TRANSLATORS: this string should be longest of the strings
- used to describe meter points. In english, it's "input".
- */
- set_size_request_to_display_given_text_width (meter_point_button, _("tupni"), 2, _button_vpad);
-
bottom_button_table.attach (meter_point_button, 2, 3, 0, 1);
meter_point_button.signal_button_press_event().connect (sigc::mem_fun (gpm, &GainMeter::meter_press), false);
solo_isolated_led->set_no_show_all (true);
solo_isolated_led->set_name (X_("solo isolate"));
solo_isolated_led->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
- solo_isolated_led->signal_button_release_event().connect (sigc::mem_fun (*this, &RouteUI::solo_isolate_button_release));
+ solo_isolated_led->signal_button_release_event().connect (sigc::mem_fun (*this, &RouteUI::solo_isolate_button_release), false);
UI::instance()->set_tip (solo_isolated_led, _("Isolate Solo"), "");
solo_safe_led = manage (new ArdourButton (ArdourButton::led_default_elements));
solo_safe_led->set_no_show_all (true);
solo_safe_led->set_name (X_("solo safe"));
solo_safe_led->add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
- solo_safe_led->signal_button_release_event().connect (sigc::mem_fun (*this, &RouteUI::solo_safe_button_release));
+ solo_safe_led->signal_button_release_event().connect (sigc::mem_fun (*this, &RouteUI::solo_safe_button_release), false);
UI::instance()->set_tip (solo_safe_led, _("Lock Solo Status"), "");
solo_safe_led->set_text (_("Lock"));
name_button.set_text (""); /* back to empty */
name_button.layout()->set_ellipsize (Pango::ELLIPSIZE_END);
name_button.signal_size_allocate().connect (sigc::mem_fun (*this, &MixerStrip::name_button_resized));
- name_button.set_size_request (-1, 20);
- Gtkmm2ext::set_height_request_to_display_any_text (name_button, _button_vpad);
ARDOUR_UI::instance()->set_tip (&group_button, _("Mix group"), "");
group_button.set_name ("mixer strip button");
- Gtkmm2ext::set_size_request_to_display_given_text_width (group_button, "Grp", 2, _button_vpad);
_comment_button.set_name (X_("mixer strip button"));
_comment_button.signal_clicked.connect (sigc::mem_fun (*this, &RouteUI::toggle_comment_editor));
- Gtkmm2ext::set_size_request_to_display_given_text_width (_comment_button, "Cmt", 2, _button_vpad);
global_vpacker.set_border_width (1);
global_vpacker.set_spacing (0);
width_hide_box.pack_end (hide_button, false, true);
number_label.set_text ("-");
+ number_label.set_elements((ArdourButton::Element)(ArdourButton::Edge|ArdourButton::Body|ArdourButton::Text|ArdourButton::Inactive));
number_label.set_no_show_all ();
number_label.set_name ("tracknumber label");
number_label.set_fixed_colors (0x80808080, 0x80808080);
number_label.set_alignment (.5, .5);
+ number_label.set_fallthrough_to_parent (true);
global_vpacker.set_spacing (2);
if (!ARDOUR::Profile->get_trx()) {
_session->engine().Running.connect (*this, invalidator (*this), boost::bind (&MixerStrip::engine_running, this), gui_context());
input_button.signal_button_press_event().connect (sigc::mem_fun(*this, &MixerStrip::input_press), false);
- output_button.signal_button_press_event().connect (sigc::mem_fun(*this, &MixerStrip::output_press), false);
+ input_button.signal_button_release_event().connect (sigc::mem_fun(*this, &MixerStrip::input_release), false);
- /* ditto for this button and busses */
+ output_button.signal_button_press_event().connect (sigc::mem_fun(*this, &MixerStrip::output_press), false);
+ output_button.signal_button_release_event().connect (sigc::mem_fun(*this, &MixerStrip::output_release), false);
number_label.signal_button_press_event().connect (sigc::mem_fun(*this, &MixerStrip::number_button_button_press), false);
+
name_button.signal_button_press_event().connect (sigc::mem_fun(*this, &MixerStrip::name_button_button_press), false);
+ name_button.signal_button_release_event().connect (sigc::mem_fun(*this, &MixerStrip::name_button_button_release), false);
+
group_button.signal_button_press_event().connect (sigc::mem_fun(*this, &MixerStrip::select_route_group), false);
_width = (Width) -1;
}
bool
-MixerStrip::mixer_strip_enter_event (GdkEventCrossing *ev)
+MixerStrip::mixer_strip_enter_event (GdkEventCrossing* /*ev*/)
{
_entered_mixer_strip = this;
gpm.set_type (rt->meter_type());
mute_solo_table.attach (gpm.gain_display,0,1,1,2, EXPAND|FILL, EXPAND);
- mute_solo_table.attach (gpm.peak_display,1,2,1,2);
+ mute_solo_table.attach (gpm.peak_display,1,2,1,2, EXPAND|FILL, EXPAND);
if (solo_button->get_parent()) {
mute_solo_table.remove (*solo_button);
case Wide:
if (show_sends_button) {
- show_sends_button->set_text (_("Aux\nSends"));
- show_sends_button->layout()->set_alignment (Pango::ALIGN_CENTER);
+ show_sends_button->set_text (_("Aux"));
}
gpm.gain_automation_style_button.set_text (
}
- Gtkmm2ext::set_size_request_to_display_given_text_width (name_button, longest_label.c_str(), 2, _button_vpad);
set_size_request (max (110, gpm.get_gm_width()+5), -1);
-// set_size_request (-1, -1);
break;
case Narrow:
panners.short_astate_string(_route->panner()->automation_state()));
}
- Gtkmm2ext::set_size_request_to_display_given_text_width (name_button, "long", 2, _button_vpad);
- set_size_request (max (50, gpm.get_gm_width()), -1);
+ set_size_request (max (60, gpm.get_gm_width() + 10), -1);
break;
}
}
};
+gint
+MixerStrip::output_release (GdkEventButton *ev)
+{
+ switch (ev->button) {
+ case 1:
+ edit_output_configuration ();
+ break;
+ }
+
+ return false;
+}
+
gint
MixerStrip::output_press (GdkEventButton *ev)
{
switch (ev->button) {
case 1:
- edit_output_configuration ();
- break;
+ return false; //wait for the mouse-up to pop the dialog
case 3:
{
return TRUE;
}
+gint
+MixerStrip::input_release (GdkEventButton *ev)
+{
+ switch (ev->button) {
+
+ case 1:
+ edit_input_configuration ();
+ break;
+ default:
+ break;
+
+ }
+
+ return false;
+}
+
+
gint
MixerStrip::input_press (GdkEventButton *ev)
{
switch (ev->button) {
case 1:
- edit_input_configuration ();
- break;
+ return false; //don't handle the mouse-down here. wait for mouse-up to pop the menu
case 3:
{
_comment_button, _route->comment().empty() ? _("Click to Add/Edit Comments") : _route->comment()
);
- Gtkmm2ext::set_size_request_to_display_given_text_width (
- _comment_button, _comment_button.get_text().c_str(), 2, _button_vpad);
}
bool
gboolean
MixerStrip::name_button_button_press (GdkEventButton* ev)
{
- /* show menu for either button 1 or 3, so as not to confuse people
- and also not hide stuff from them.
- */
+ if (ev->button == 3) {
+ list_route_operations ();
- if (ev->button == 3 || ev->button == 1) {
+ /* do not allow rename if the track is record-enabled */
+ rename_menu_item->set_sensitive (!_route->record_enabled());
+ route_ops_menu->popup (1, ev->time);
+
+ return true;
+ }
+
+ return false;
+}
+
+gboolean
+MixerStrip::name_button_button_release (GdkEventButton* ev)
+{
+ if (ev->button == 1) {
list_route_operations ();
/* do not allow rename if the track is record-enabled */
/* do not allow rename if the track is record-enabled */
rename_menu_item->set_sensitive (!_route->record_enabled());
route_ops_menu->popup (1, ev->time);
+
+ return true;
}
return false;
break;
}
- Gtkmm2ext::set_size_request_to_display_given_text_width (
- name_button, name_button.get_text().c_str(), 2, _button_vpad);
-
ARDOUR_UI::instance()->set_tip (name_button, _route->name());
}
{
switch (_width) {
case Wide:
- rec_enable_button->set_text (_("Rec"));
mute_button->set_text (_("Mute"));
monitor_input_button->set_text (_("In"));
monitor_disk_button->set_text (_("Disk"));
break;
default:
- rec_enable_button->set_text (_("R"));
mute_button->set_text (_("M"));
monitor_input_button->set_text (_("I"));
monitor_disk_button->set_text (_("D"));
} else {
meter_point_button.set_text ("");
}
-
- // Update size request of changed buttons
- Gtkmm2ext::set_size_request_to_display_given_text_width (
- *rec_enable_button, rec_enable_button->get_text().c_str(), 2, _button_vpad);
- Gtkmm2ext::set_size_request_to_display_given_text_width (
- *mute_button, mute_button->get_text().c_str(), 2, _button_vpad);
- Gtkmm2ext::set_size_request_to_display_given_text_width (
- *monitor_input_button, monitor_input_button->get_text().c_str(), 2, _button_vpad);
- Gtkmm2ext::set_size_request_to_display_given_text_width (
- *monitor_disk_button, monitor_disk_button->get_text().c_str(), 2, _button_vpad);
- Gtkmm2ext::set_size_request_to_display_given_text_width (
- *solo_button, solo_button->get_text().c_str(), 2, _button_vpad);
}
PluginSelector*