From bac8904971120b0eed772070cba1f7609348b0f5 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 20 Jul 2021 17:25:54 +0200 Subject: [PATCH] Adjust shuttle info width depending in unit This allows to fit complete text "> 100.1%", which is useful when chasing external transport, and yet still have a reasonable shuttle width when using semi-tones. --- gtk2_ardour/shuttle_control.cc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/gtk2_ardour/shuttle_control.cc b/gtk2_ardour/shuttle_control.cc index 76a1bc5bfe..2a7277098b 100644 --- a/gtk2_ardour/shuttle_control.cc +++ b/gtk2_ardour/shuttle_control.cc @@ -67,19 +67,18 @@ ShuttleInfoButton::~ShuttleInfoButton () } ShuttleInfoButton::ShuttleInfoButton () + : disp_context_menu (0) + , _ignore_change (false) { set_layout_font (UIConfiguration::instance ().get_NormalFont ()); - set_sizing_text (S_("LogestShuttle|+00 st")); set_tooltip (*this, _("Speed Display (Context-click for options)")); set_visual_state (Gtkmm2ext::NoVisualState); set_elements (ArdourButton::Text); + parameter_changed ("shuttle-units"); Config->ParameterChanged.connect (parameter_connection, MISSING_INVALIDATOR, boost::bind (&ShuttleInfoButton::parameter_changed, this, _1), gui_context ()); add_events (Gdk::ENTER_NOTIFY_MASK | Gdk::LEAVE_NOTIFY_MASK | Gdk::BUTTON_RELEASE_MASK | Gdk::BUTTON_PRESS_MASK | Gdk::POINTER_MOTION_MASK | Gdk::SCROLL_MASK); - - disp_context_menu = 0; - _ignore_change = false; } void @@ -98,6 +97,11 @@ ShuttleInfoButton::parameter_changed (std::string p) if (p == "shuttle-units") { delete disp_context_menu; disp_context_menu = 0; + if (Config->get_shuttle_units() == Percentage) { + set_sizing_text (S_("LogestShuttle|> 888.9%")); + } else { + set_sizing_text (S_("LogestShuttle|+00 st")); + } } } @@ -186,7 +190,7 @@ ShuttleControl::ShuttleControl () set_tooltip (_vari_button, _("Varispeed: change the default playback and recording speed")); _vari_button.set_name ("vari button"); - _vari_button.set_text (_("Vari")); + _vari_button.set_text (S_("VariSpeed|VS")); _vari_button.signal_clicked.connect (sigc::mem_fun (*this, &ShuttleControl::varispeed_button_clicked)); _vari_button.signal_scroll_event ().connect (sigc::mem_fun (*this, &ShuttleControl::varispeed_button_scroll_event), false);