From 3c1ffd17432d83dbe4a8088eddbbfd54e4dcf089 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 14 May 2021 17:14:52 -0600 Subject: [PATCH] add line height API to Marker This will allow region markers, which do not span the whole canvas height, to have a line --- gtk2_ardour/marker.cc | 10 +++++++++- gtk2_ardour/marker.h | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gtk2_ardour/marker.cc b/gtk2_ardour/marker.cc index 41840b7145..648a04587b 100644 --- a/gtk2_ardour/marker.cc +++ b/gtk2_ardour/marker.cc @@ -85,6 +85,7 @@ ArdourMarker::ArdourMarker (PublicEditor& ed, ArdourCanvas::Container& parent, g , _left_label_limit (DBL_MAX) , _right_label_limit (DBL_MAX) , _label_offset (0) + , _line_height (-1) { @@ -374,7 +375,7 @@ ArdourMarker::setup_line () _track_canvas_line->set_x0 (d.x); _track_canvas_line->set_x1 (d.x); _track_canvas_line->set_y0 (d.y); - _track_canvas_line->set_y1 (ArdourCanvas::COORD_MAX); + _track_canvas_line->set_y1 (_line_height > 0 ? _line_height : ArdourCanvas::COORD_MAX); _track_canvas_line->set_outline_color ( _selected ? UIConfiguration::instance().color ("entered marker") : _color ); _track_canvas_line->raise_to_top (); _track_canvas_line->show (); @@ -392,6 +393,13 @@ ArdourMarker::the_item() const return *group; } +void +ArdourMarker::set_line_height (double h) +{ + _line_height = h; + setup_line (); +} + void ArdourMarker::set_name (const string& new_name) { diff --git a/gtk2_ardour/marker.h b/gtk2_ardour/marker.h index 54c1534521..872bbe9bfb 100644 --- a/gtk2_ardour/marker.h +++ b/gtk2_ardour/marker.h @@ -78,6 +78,7 @@ public: void set_selected (bool); void set_show_line (bool); + void set_line_height (double); void set_position (samplepos_t); void set_name (const std::string&); @@ -131,6 +132,7 @@ protected: double _left_label_limit; ///< the number of pixels available to the left of this marker for a label double _right_label_limit; ///< the number of pixels available to the right of this marker for a label double _label_offset; + double _line_height; void reposition (); void setup_line_x ();