namespace ArdourCanvas
{
-
+
class LIBCANVAS_API Ruler : public Rectangle
{
public:
double position;
Style style;
};
-
+
struct Metric {
Metric () : units_per_pixel (0) {}
virtual ~Metric() {}
/* lower and upper and sample positions, which are also canvas coordinates
*/
-
+
virtual void get_marks (std::vector<Mark>&, double lower, double upper, int maxchars) const = 0;
};
-
+
Ruler (Canvas*, const Metric& m);
Ruler (Canvas*, const Metric& m, Rect const&);
Ruler (Item*, const Metric& m);
Ruler (Item*, const Metric& m, Rect const&);
-
+
+ virtual ~Ruler () {
+ delete _font_description;
+ }
+
void set_range (double lower, double upper);
void set_font_description (Pango::FontDescription);
+ void set_metric (const Metric&);
void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const;
-
+
+ void set_divide_colors (Gtkmm2ext::Color top, Gtkmm2ext::Color bottom);
+ void set_divide_height (double);
private:
const Metric* _metric;
- /* lower and upper and sample positions, which are also canvas coordinates
- */
+ /* lower and upper and sample positions, which are also canvas coordinates */
- Coord _lower;
- Coord _upper;
+ Coord _lower;
+ Coord _upper;
+ double _divide_height;
+ Gtkmm2ext::Color _divider_color_top;
+ Gtkmm2ext::Color _divider_color_bottom;
Pango::FontDescription* _font_description;
mutable std::vector<Mark> marks;