diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2006-12-14 16:21:43 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2006-12-14 16:21:43 +0000 |
commit | 0d6c5f78e9b7986afb220c559015da53a36e4e03 (patch) | |
tree | 59d81d0cee6884a7f6208af5012863e8da86ffe1 /gtk2_ardour/automation_time_axis.cc | |
parent | b7f645cbe633cf1235c5bc28df7f93254b3a15f0 (diff) |
fix for crash when loading a session after running another, caused by not checking for _view != 0 in route_time_axis.cc; make fit_to_pixels() more useful and use it to truncate redirect and redirect parameters names in track control area
git-svn-id: svn://localhost/ardour2/trunk@1212 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/automation_time_axis.cc')
-rw-r--r-- | gtk2_ardour/automation_time_axis.cc | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/gtk2_ardour/automation_time_axis.cc b/gtk2_ardour/automation_time_axis.cc index e99d755615..776dff37f2 100644 --- a/gtk2_ardour/automation_time_axis.cc +++ b/gtk2_ardour/automation_time_axis.cc @@ -21,6 +21,9 @@ using namespace PBD; using namespace Gtk; using namespace Editing; +Pango::FontDescription AutomationTimeAxisView::name_font; +bool AutomationTimeAxisView::have_name_font = false; + AutomationTimeAxisView::AutomationTimeAxisView (Session& s, boost::shared_ptr<Route> r, PublicEditor& e, TimeAxisView& rent, ArdourCanvas::Canvas& canvas, const string & nom, const string & state_name, const string & nomparent) @@ -34,6 +37,11 @@ AutomationTimeAxisView::AutomationTimeAxisView (Session& s, boost::shared_ptr<Ro clear_button (_("clear")), auto_button (X_("")) /* force addition of a label */ { + if (!have_name_font) { + name_font = get_font_for_style (X_("AutomationTrackName")); + have_name_font = true; + } + automation_menu = 0; in_destructor = false; auto_off_item = 0; @@ -84,14 +92,14 @@ AutomationTimeAxisView::AutomationTimeAxisView (Session& s, boost::shared_ptr<Ro string shortpname = _name; bool shortened = false; - - if (_name.length()) { - if (shortpname.length() > 18) { - shortpname = shortpname.substr (0, 16); - shortpname += "..."; - shortened = true; - } + + int ignore_width; + shortpname = fit_to_pixels (_name, 60, name_font, ignore_width, true); + + if (shortpname != _name ){ + shortened = true; } + name_label.set_text (shortpname); name_label.set_alignment (Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); @@ -99,11 +107,8 @@ AutomationTimeAxisView::AutomationTimeAxisView (Session& s, boost::shared_ptr<Ro /* limit the plug name string */ - string pname = nomparent; - - if (pname.length() > 14) { - pname = pname.substr (0, 11); - pname += "..."; + string pname = fit_to_pixels (nomparent, 60, name_font, ignore_width, true); + if (pname != nomparent) { shortened = true; } |