From 40d377c288e8fe3630aa2c2cef978ac018c622a7 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 6 Jul 2014 20:14:12 +0200 Subject: add number-label at top of mixer-strip --- gtk2_ardour/mixer_strip.cc | 24 ++++++++++++++++++++++-- gtk2_ardour/mixer_strip.h | 1 + 2 files changed, 23 insertions(+), 2 deletions(-) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 9767707e6a..d21efb2a75 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -292,6 +292,14 @@ MixerStrip::init () width_hide_box.pack_start (top_event_box, true, true); width_hide_box.pack_end (hide_button, false, true); + number_label.set_text ("-"); + number_label.set_no_show_all (); + number_label.set_name ("tracknumber label"); + number_label.set_fixed_colors (0x80808080, 0x80808080); + number_label.set_elements (ArdourButton::Element(ArdourButton::Body | ArdourButton::Text)); + number_label.set_alignment (.5, .5); + top_event_box.add (number_label); + whvbox.pack_start (width_hide_box, true, true); global_vpacker.set_spacing (2); @@ -335,6 +343,7 @@ MixerStrip::init () /* ditto for this button and busses */ + number_label.signal_button_press_event().connect (sigc::mem_fun(*this, &MixerStrip::name_button_button_press), false); name_button.signal_button_press_event().connect (sigc::mem_fun(*this, &MixerStrip::name_button_button_press), false); group_button.signal_button_press_event().connect (sigc::mem_fun(*this, &MixerStrip::select_route_group), false); @@ -586,6 +595,7 @@ MixerStrip::set_route (boost::shared_ptr rt) if (!route()->is_master() && !route()->is_monitor()) { /* we don't allow master or control routes to be hidden */ hide_button.show(); + number_label.show(); } gpm.reset_peak_display (); @@ -1500,6 +1510,7 @@ MixerStrip::route_color_changed () { name_button.modify_bg (STATE_NORMAL, color()); top_event_box.modify_bg (STATE_NORMAL, color()); + number_label.set_fixed_colors (gdk_color_to_rgba (color()), gdk_color_to_rgba (color())); reset_strip_style (); } @@ -1605,12 +1616,21 @@ MixerStrip::name_changed () switch (_width) { case Wide: if (_session->config.get_track_name_number()) { - name_button.set_markup(track_number_to_string (_route->track_number (), " ", _route->name ())); + const int64_t track_number = _route->track_number (); + if (track_number == 0) { + number_label.set_text ("-"); + number_label.hide(); + } else { + number_label.set_text (PBD::to_string (abs(_route->track_number ()), std::dec)); + number_label.show(); + } } else { - name_button.set_text (_route->name()); + number_label.hide(); } + name_button.set_text (_route->name()); break; case Narrow: + number_label.hide(); if (_session->config.get_track_name_number()) { name_button.set_markup(track_number_to_string (_route->track_number (), " ", PBD::short_version (_route->name (), 5))); diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h index afb165f36a..4286cfbbe3 100644 --- a/gtk2_ardour/mixer_strip.h +++ b/gtk2_ardour/mixer_strip.h @@ -151,6 +151,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox ArdourButton hide_button; ArdourButton width_button; + ArdourButton number_label; Gtk::HBox width_hide_box; Gtk::VBox whvbox; Gtk::EventBox top_event_box; -- cgit v1.2.3