X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fcanvas%2Fcanvas%2Ftext.h;h=f72c08856635612fb3e1632700bcde07371cde9c;hb=2a5921ecf159d49597264a9328dc899bba55e57e;hp=e5ba3de463673cde932df7c85b600e005fdcbdab;hpb=84fb0a8dceda063d58b946cb891c3e21214c8f75;p=ardour.git diff --git a/libs/canvas/canvas/text.h b/libs/canvas/canvas/text.h index e5ba3de463..f72c088566 100644 --- a/libs/canvas/canvas/text.h +++ b/libs/canvas/canvas/text.h @@ -1,24 +1,47 @@ +/* + Copyright (C) 2011-2013 Paul Davis + Author: Carl Hetherington + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + #ifndef __ardour_canvas_text_h__ #define __ardour_canvas_text_h__ #include #include +#include "canvas/visibility.h" #include "canvas/item.h" namespace ArdourCanvas { -class Text : public Item +class LIBCANVAS_API Text : public Item { public: - Text (Group *); + Text (Canvas*); + Text (Item*); ~Text(); void render (Rect const &, Cairo::RefPtr) const; void compute_bounding_box () const; + ArdourCanvas::Color color () const { return _color; } + void set_color (ArdourCanvas::Color); + void set (std::string const &); - void set_color (uint32_t); void set_font_description (Pango::FontDescription); void set_alignment (Pango::Alignment); @@ -27,19 +50,24 @@ public: void set_size_chars (int nchars); void dump (std::ostream&) const; + std::string text() const { return _text; } + private: - std::string _text; - uint32_t _color; + std::string _text; + ArdourCanvas::Color _color; Pango::FontDescription* _font_description; - Pango::Alignment _alignment; + Pango::Alignment _alignment; mutable Cairo::RefPtr _image; - mutable Duple _origin; - mutable double _width; - mutable double _height; - mutable bool _need_redraw; - double _clamped_width; + mutable Duple _origin; + mutable double _width; + mutable double _height; + mutable bool _need_redraw; + mutable double _width_correction; + double _clamped_width; void redraw (Cairo::RefPtr) const; + void redraw (Glib::RefPtr) const; + void _redraw (Glib::RefPtr) const; }; }