summaryrefslogtreecommitdiff
path: root/libs/canvas
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-12-19 13:36:42 +0100
committerRobin Gareus <robin@gareus.org>2016-12-19 13:36:42 +0100
commit004431426dd3b868f8b6fda814e03b7d5da06680 (patch)
tree921fe5fb975a02f096bbb55421f9c947e5442ed9 /libs/canvas
parent218d3761544a84eb55e13de32ebc402ff66c7933 (diff)
Towards packing CairoWidgets on ArdourCanvas.
Diffstat (limited to 'libs/canvas')
-rw-r--r--libs/canvas/canvas/widget.h2
-rw-r--r--libs/canvas/widget.cc22
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
{