summaryrefslogtreecommitdiff
path: root/libs/canvas/ruler.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-11-24 14:29:37 +0200
committerPaul Davis <paul@linuxaudiosystems.com>2015-04-29 07:22:36 -0400
commit4cf402bdcf12f9072e63958356fb8d30ec59d75d (patch)
tree724a683f1c62f709897b1dee6b9b9dea0490ee08 /libs/canvas/ruler.cc
parent38728f0835ddef45bc321ccdb98d2e57d4781725 (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.cc27
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;