X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fcanvas%2Fcanvas%2Ffill.h;h=95a29fd760c34f7b6c5c1b52d7a8e7d15f5e1515;hb=d2371a6a903e226466fa4bdba2c6cb0b7f390664;hp=f52260c571367c689cf5a97a0353a40d6805a5ad;hpb=cc92c879bfd989aa8de25fdc29fb8d9b2ec7a992;p=ardour.git diff --git a/libs/canvas/canvas/fill.h b/libs/canvas/canvas/fill.h index f52260c571..95a29fd760 100644 --- a/libs/canvas/canvas/fill.h +++ b/libs/canvas/canvas/fill.h @@ -22,19 +22,26 @@ #include #include -#include "canvas/item.h" + +#include + +#include "canvas/visibility.h" +#include "canvas/types.h" namespace ArdourCanvas { -class Fill : virtual public Item +class Item; + +class LIBCANVAS_API Fill : public boost::noncopyable { public: - Fill (Group *); + Fill (Item& self); + virtual ~Fill() {} - virtual void set_fill_color (Color); + virtual void set_fill_color (Gtkmm2ext::Color); virtual void set_fill (bool); - Color fill_color () const { + Gtkmm2ext::Color fill_color () const { return _fill_color; } @@ -42,18 +49,24 @@ public: return _fill; } - typedef std::vector > StopList; - - void set_gradient (StopList const & stops, bool is_vertical); + typedef std::vector > StopList; + + void set_gradient (StopList const & stops, bool is_vertical); + + void set_pattern (Cairo::RefPtr); protected: void setup_fill_context (Cairo::RefPtr) const; - void setup_gradient_context (Cairo::RefPtr, Rect const &, Duple const &) const; - - Color _fill_color; + void setup_gradient_context (Cairo::RefPtr, Rect const &, Duple const &) const; + + Item& _self; + Gtkmm2ext::Color _fill_color; bool _fill; - StopList _stops; - bool _vertical_gradient; + bool _transparent; + StopList _stops; + bool _vertical_gradient; + Cairo::RefPtr _pattern; + }; }