add ArdourCanvas::Fill::set_pattern() to allow any filled canvas item to be filled using an arbitrary Cairo Pattern
This commit is contained in:
parent
4eac2a76da
commit
70e95f951d
|
@ -53,6 +53,8 @@ public:
|
||||||
|
|
||||||
void set_gradient (StopList const & stops, bool is_vertical);
|
void set_gradient (StopList const & stops, bool is_vertical);
|
||||||
|
|
||||||
|
void set_pattern (Cairo::RefPtr<Cairo::Pattern>);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void setup_fill_context (Cairo::RefPtr<Cairo::Context>) const;
|
void setup_fill_context (Cairo::RefPtr<Cairo::Context>) const;
|
||||||
void setup_gradient_context (Cairo::RefPtr<Cairo::Context>, Rect const &, Duple const &) const;
|
void setup_gradient_context (Cairo::RefPtr<Cairo::Context>, Rect const &, Duple const &) const;
|
||||||
|
@ -63,6 +65,8 @@ protected:
|
||||||
bool _transparent;
|
bool _transparent;
|
||||||
StopList _stops;
|
StopList _stops;
|
||||||
bool _vertical_gradient;
|
bool _vertical_gradient;
|
||||||
|
Cairo::RefPtr<Cairo::Pattern> _pattern;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,7 +72,11 @@ Fill::set_fill (bool fill)
|
||||||
void
|
void
|
||||||
Fill::setup_fill_context (Cairo::RefPtr<Cairo::Context> context) const
|
Fill::setup_fill_context (Cairo::RefPtr<Cairo::Context> context) const
|
||||||
{
|
{
|
||||||
set_source_rgba (context, _fill_color);
|
if (_pattern) {
|
||||||
|
context->set_source (_pattern);
|
||||||
|
} else {
|
||||||
|
set_source_rgba (context, _fill_color);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -95,6 +99,12 @@ Fill::setup_gradient_context (Cairo::RefPtr<Cairo::Context> context, Rect const
|
||||||
context->set_source (_gradient);
|
context->set_source (_gradient);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Fill::set_pattern (Cairo::RefPtr<Cairo::Pattern> p)
|
||||||
|
{
|
||||||
|
_pattern = p;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Fill::set_gradient (StopList const & stops, bool vertical)
|
Fill::set_gradient (StopList const & stops, bool vertical)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user