X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=libs%2Fcanvas%2Fruler.cc;h=9c1f78253fbf8b9084659b7afb7c55ead4e704f5;hb=54efcbaa35cec5e4cda663ceb31fa1ca12683c1b;hp=1c11def93a8b95a586cef2aa5c11b44ade1adc0b;hpb=eec294a97edce69ca71c972867ab708d5dd5625d;p=ardour.git diff --git a/libs/canvas/ruler.cc b/libs/canvas/ruler.cc index 1c11def93a..9c1f78253f 100644 --- a/libs/canvas/ruler.cc +++ b/libs/canvas/ruler.cc @@ -103,13 +103,13 @@ Ruler::render (Rect const & area, Cairo::RefPtr cr) const } Rect self (item_to_window (get())); - boost::optional i = self.intersection (area); + Rect i = self.intersection (area); if (!i) { return; } - Rect intersection (i.get()); + Rect intersection (i); Distance height = self.height(); @@ -162,19 +162,19 @@ Ruler::render (Rect const & area, Cairo::RefPtr cr) const } switch (m->style) { - case Mark::Major: - if (_divide_height >= 0) { - cr->rel_line_to (0, -_divide_height); - } else { - cr->rel_line_to (0, -height); - } - break; - case Mark::Minor: - cr->rel_line_to (0, -height/3.0); - break; - case Mark::Micro: - cr->rel_line_to (0, -height/5.0); - break; + case Mark::Major: + if (_divide_height >= 0) { + cr->rel_line_to (0, -_divide_height); + } else { + cr->rel_line_to (0, -height); + } + break; + case Mark::Minor: + cr->rel_line_to (0, -height/3.0); + break; + case Mark::Micro: + cr->rel_line_to (0, -height/5.0); + break; } cr->stroke (); @@ -186,31 +186,31 @@ Ruler::render (Rect const & area, Cairo::RefPtr cr) const layout->set_text (m->label); logical = layout->get_pixel_logical_extents (); - if (_divide_height >= 0) { - cr->move_to (pos.x + 2.0, self.y0 + _divide_height + logical.get_y() + 2.0); /* 2 pixel padding below divider */ - } else { - cr->move_to (pos.x + 2.0, self.y0 + logical.get_y()); - } + if (_divide_height >= 0) { + cr->move_to (pos.x + 2.0, self.y0 + _divide_height + logical.get_y() + 2.0); /* 2 pixel padding below divider */ + } else { + cr->move_to (pos.x + 2.0, self.y0 + logical.get_y() + .5 * (height - logical.get_height())); + } layout->show_in_cairo_context (cr); } } - if (_divide_height >= 0.0) { + if (_divide_height >= 0.0) { - cr->set_line_width (1.0); + cr->set_line_width (1.0); - set_source_rgba (cr, _divider_color_top); - cr->move_to (self.x0, self.y0 + _divide_height-1.0+0.5); - cr->line_to (self.x1, self.y0 + _divide_height-1.0+0.5); - cr->stroke (); + set_source_rgba (cr, _divider_color_top); + cr->move_to (self.x0, self.y0 + _divide_height-1.0+0.5); + cr->line_to (self.x1, self.y0 + _divide_height-1.0+0.5); + cr->stroke (); - set_source_rgba (cr, _divider_color_bottom); - 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+0.5); + cr->line_to (self.x1, self.y0 + _divide_height+0.5); + cr->stroke (); - } + } /* done! */ }