diff options
author | Robin Gareus <robin@gareus.org> | 2016-12-19 13:36:42 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-12-19 13:36:42 +0100 |
commit | 004431426dd3b868f8b6fda814e03b7d5da06680 (patch) | |
tree | 921fe5fb975a02f096bbb55421f9c947e5442ed9 /libs/canvas | |
parent | 218d3761544a84eb55e13de32ebc402ff66c7933 (diff) |
Towards packing CairoWidgets on ArdourCanvas.
Diffstat (limited to 'libs/canvas')
-rw-r--r-- | libs/canvas/canvas/widget.h | 2 | ||||
-rw-r--r-- | libs/canvas/widget.cc | 22 |
2 files changed, 24 insertions, 0 deletions
diff --git a/libs/canvas/canvas/widget.h b/libs/canvas/canvas/widget.h index 127862037c..c1f6dc1f36 100644 --- a/libs/canvas/canvas/widget.h +++ b/libs/canvas/canvas/widget.h @@ -44,6 +44,8 @@ public: private: CairoWidget& _widget; bool event_proxy (GdkEvent*); + bool queue_draw (); + bool queue_resize (); }; } diff --git a/libs/canvas/widget.cc b/libs/canvas/widget.cc index 25541c1660..7293badb7c 100644 --- a/libs/canvas/widget.cc +++ b/libs/canvas/widget.cc @@ -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 { |