diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-11-24 14:29:37 +0200 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2015-04-29 07:22:36 -0400 |
commit | 4cf402bdcf12f9072e63958356fb8d30ec59d75d (patch) | |
tree | 724a683f1c62f709897b1dee6b9b9dea0490ee08 /libs/canvas/ruler.cc | |
parent | 38728f0835ddef45bc321ccdb98d2e57d4781725 (diff) |
add API to Ruler to optionally draw a divider (2 single pixel horizontal lines) at some position within the vertical extent of the ruler
Diffstat (limited to 'libs/canvas/ruler.cc')
-rw-r--r-- | libs/canvas/ruler.cc | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/libs/canvas/ruler.cc b/libs/canvas/ruler.cc index b11793cb7f..c5a08ed283 100644 --- a/libs/canvas/ruler.cc +++ b/libs/canvas/ruler.cc @@ -36,6 +36,7 @@ Ruler::Ruler (Canvas* c, const Metric& m) , _metric (&m) , _lower (0) , _upper (0) + , _divide_height (-1.0) , _need_marks (true) { } @@ -45,6 +46,7 @@ Ruler::Ruler (Canvas* c, const Metric& m, Rect const& r) , _metric (&m) , _lower (0) , _upper (0) + , _divide_height (-1.0) , _need_marks (true) { } @@ -54,6 +56,7 @@ Ruler::Ruler (Item* parent, const Metric& m) , _metric (&m) , _lower (0) , _upper (0) + , _divide_height (-1.0) , _need_marks (true) { } @@ -63,6 +66,7 @@ Ruler::Ruler (Item* parent, const Metric& m, Rect const& r) , _metric (&m) , _lower (0) , _upper (0) + , _divide_height (-1.0) , _need_marks (true) { } @@ -178,10 +182,33 @@ Ruler::render (Rect const & area, Cairo::RefPtr<Cairo::Context> cr) const } } + if (_divide_height >= 0.0) { + + cr->set_line_width (1.0); + + set_source_rgba (cr, _divider_color_top); + cr->move_to (self.x0, self.y0 + _divide_height+0.5); + cr->line_to (self.x1, self.y0 + _divide_height+0.5); + cr->stroke (); + + set_source_rgba (cr, _divider_color_bottom); + cr->move_to (self.x0, self.y0 + _divide_height+1.5); + cr->line_to (self.x1, self.y0 + _divide_height+1.5); + cr->stroke (); + + + } + /* done! */ } void +Ruler::set_divide_height (double h) +{ + _divide_height = h; +} + +void Ruler::set_metric (const Metric& m) { _metric = &m; |