The container interface is an interface for non-leaf nodes. It does not have any interesting public methods.
Every object implementing the container interface must also implement the object interface and the node interface and one of the composite and enclosure interfaces. The canvas class is an exception for this rule. No object implementing the container interface is allowed to implement any of the mask or shape interfaces.
Change propagation methods
There are two internal methods needed to implement the up-propagation of a
change. These methods inform (in the callback way) the container about
changes in the child (given in the
child arg). The
describes a bounding box preserving change, the
where arg gives
the bounding box of the changed part of the child. The
describes a major change, where
old_bbox is the old bounding box of the
new_bbox is the new bounding box of the child. All
bounding boxes used here are in the children coordinate system. Common
implementation of this methods is to update bounding boxes and
call same method of the parent node.
void vcl_container_child_altered (void * obj, void * child, const struct geom_rectangle *where) void vcl_container_child_changed (void * obj, void * child, const struct geom_rectangle *old_bbox, const struct geom_rectangle *new_bbox)