+ void removeParentCanvas(const CanvasWeakPtr& canvas);
+ void removeChildCanvas(const CanvasWeakPtr& canvas);
+
+ /**
+ * Create a new group
+ */
+ GroupPtr createGroup(const std::string& name = "");
+
+ /**
+ * Get an existing group with the given name
+ */
+ GroupPtr getGroup(const std::string& name);
+
+ /**
+ * Get an existing group with the given name or otherwise create a new
+ * group
+ */
+ GroupPtr getOrCreateGroup(const std::string& name);
+
+ /**
+ * Get the root group of the canvas
+ */
+ GroupPtr getRootGroup();
+
+ /**
+ * Set the layout of the canvas (the layout will automatically update with
+ * the viewport size of the canvas)
+ */
+ void setLayout(const LayoutRef& layout);