Next: , Previous: Composite interface, Up: Interface reference



8.2.3 Container interface

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)