lazy redraw of Canvas::Text image
[ardour.git] / libs / canvas / canvas / text.h
index 08e2a469a7a2513333a34d263367117378e57aed..9395b642e419520203853ee2d9580526523ecb5c 100644 (file)
@@ -24,13 +24,20 @@ public:
        void set_font_description (Pango::FontDescription);
        void set_alignment (Pango::Alignment);
 
+        void set_size_chars (int nchars);
+
 private:
-       Glib::RefPtr<Pango::Layout> layout (Cairo::RefPtr<Cairo::Context>) const;
-       
-       std::string _text;
+       std::string      _text;
+       uint32_t         _color;
        Pango::FontDescription* _font_description;
-       uint32_t _color;
        Pango::Alignment _alignment;
+        mutable Cairo::RefPtr<Cairo::ImageSurface> _image;
+        mutable Duple _origin;
+        mutable int _width;
+        mutable int _height;
+        mutable bool _need_redraw;
+
+        void redraw (Cairo::RefPtr<Cairo::Context>) const;
 };
 
 }