All VCL objects support the object
interface, but this interface specifies
only a destroy method. The most important interface is the node
interface. All VCL nodes have to implement it. Every leaf node should
implement either the shape
interface or the mask
interface (that depends on the way
it describes its shape).
Every non-leaf (container) node should
implement the container
interface, and either the composite
interface or
the enclosure
interface (that depends on the supported number of children –
enclosure
has exactly one child, composite
has any
number of children). Composite nodes often support the placement
interface
- it is used to add and remove children to a composite node, but there
are composite nodes without support of this interface – they have another way
to get children nodes. The node coordinate changing system supports
the transformation
interface. And the last interface –
the painter
interface – encapsulates drawing backends.