change Metric element of a Canvas::Ruler item into a pointer internally
authorPaul Davis <paul@linuxaudiosystems.com>
Fri, 5 Sep 2014 18:42:06 +0000 (14:42 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Sun, 7 Sep 2014 14:19:31 +0000 (10:19 -0400)
libs/canvas/canvas/ruler.h
libs/canvas/ruler.cc

index 25040247c91e924923491b05d97082077f8b350c..995b311e64b9c243317a3d7800bcd1bb9d5e8d6e 100644 (file)
@@ -62,11 +62,11 @@ public:
        
        void set_range (double lower, double upper);
        void set_font_description (Pango::FontDescription);
-       
+
        void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const;
        
 private:
-       const Metric& _metric;
+       const Metric* _metric;
 
        /* lower and upper and sample positions, which are also canvas coordinates
         */
index 120ba845a5550d7a8d94a5e2c79ffddaefdcd98f..907fc93e99425a17efe712c143430d141610e9b4 100644 (file)
@@ -33,7 +33,7 @@ using namespace ArdourCanvas;
 
 Ruler::Ruler (Canvas* c, const Metric& m)
        : Rectangle (c)
-       , _metric (m)
+       , _metric (&m)
        , _lower (0)
        , _upper (0)
        , _need_marks (true)
@@ -42,7 +42,7 @@ Ruler::Ruler (Canvas* c, const Metric& m)
 
 Ruler::Ruler (Canvas* c, const Metric& m, Rect const& r)
        : Rectangle (c, r)
-       , _metric (m)
+       , _metric (&m)
        , _lower (0)
        , _upper (0)
        , _need_marks (true)
@@ -51,7 +51,7 @@ Ruler::Ruler (Canvas* c, const Metric& m, Rect const& r)
 
 Ruler::Ruler (Item* parent, const Metric& m)
        : Rectangle (parent)
-       , _metric (m)
+       , _metric (&m)
        , _lower (0)
        , _upper (0)
        , _need_marks (true)
@@ -60,7 +60,7 @@ Ruler::Ruler (Item* parent, const Metric& m)
 
 Ruler::Ruler (Item* parent, const Metric& m, Rect const& r)
        : Rectangle (parent, r)
-       , _metric (m)
+       , _metric (&m)
        , _lower (0)
        , _upper (0)
        , _need_marks (true)
@@ -106,7 +106,7 @@ Ruler::render (Rect const & area, Cairo::RefPtr<Cairo::Context> cr) const
 
        if (_need_marks) {
                marks.clear ();
-               _metric.get_marks (marks, _lower, _upper, 50);
+               _metric->get_marks (marks, _lower, _upper, 50);
                _need_marks = false;
        }
 
@@ -142,7 +142,7 @@ Ruler::render (Rect const & area, Cairo::RefPtr<Cairo::Context> cr) const
        for (vector<Mark>::const_iterator m = marks.begin(); m != marks.end(); ++m) {
                Duple pos;
 
-               pos.x = floor ((m->position - _lower) / _metric.units_per_pixel);
+               pos.x = floor ((m->position - _lower) / _metric->units_per_pixel);
                pos.y = self.y1; /* bottom edge */
 
                if (_outline_width == 1.0) {