From 4cf402bdcf12f9072e63958356fb8d30ec59d75d Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 24 Nov 2014 14:29:37 +0200 Subject: add API to Ruler to optionally draw a divider (2 single pixel horizontal lines) at some position within the vertical extent of the ruler --- libs/canvas/ruler.cc | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'libs/canvas/ruler.cc') 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,9 +182,32 @@ Ruler::render (Rect const & area, Cairo::RefPtr 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) { -- cgit v1.2.3