Towards packing CairoWidgets on ArdourCanvas.

This commit is contained in:
Robin Gareus 2016-12-19 13:36:42 +01:00
parent 218d376154
commit 004431426d
4 changed files with 111 additions and 3 deletions

View file

@ -34,6 +34,9 @@ Widget::Widget (Canvas* c, CairoWidget& w)
, _widget (w)
{
Event.connect (sigc::mem_fun (*this, &Widget::event_proxy));
w.set_canvas_widget ();
w.QueueDraw.connect (sigc::mem_fun(*this, &Widget::queue_draw));
w.QueueResize.connect (sigc::mem_fun(*this, &Widget::queue_resize));
}
Widget::Widget (Item* parent, CairoWidget& w)
@ -41,6 +44,9 @@ Widget::Widget (Item* parent, CairoWidget& w)
, _widget (w)
{
Event.connect (sigc::mem_fun (*this, &Widget::event_proxy));
w.set_canvas_widget ();
w.QueueDraw.connect (sigc::mem_fun(*this, &Widget::queue_draw));
w.QueueResize.connect (sigc::mem_fun(*this, &Widget::queue_resize));
}
bool
@ -50,6 +56,22 @@ Widget::event_proxy (GdkEvent* ev)
return _widget.event (ev);
}
bool
Widget::queue_draw ()
{
begin_visual_change ();
end_visual_change ();
return true;
}
bool
Widget::queue_resize ()
{
begin_change ();
end_change ();
return true;
}
void
Widget::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) const
{