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 _altered
variant
describes a bounding box preserving change, the where
arg gives
the bounding box of the changed part of the child. The _changed
variant
describes a major change, where old_bbox
is the old bounding box of the
child and 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)