The position and size of a submanager depend on the position
and size of the objects that are contained in the submanager. As a
consequence, all objects that are contained in the submanager are
always displayed, and the size and position of the submanager may
change when a graphic object contained in this manager changes position
or size.
As for any graphic object, you can move and resize a
submanager using the
moveObject or
reshapeObject methods. In the example you could do something like:
toplevel.moveObject(subManager, 100,100, true)
When a nested manager is resized or moved, the objects
contained in the manager do not change position in the submanager
coordinate system. The submanager will move because an
affine transformation (an
IlvTransformer) will be specified in the submanager to define a
new relative coordinate system for the submanager. In the line for
moving the
subManager
to
(100,100)
,
the transformation is a simple translation of
(100,100)
.
To obtain the affine transform that defines the coordinate
system of the submanager, you can use the method
getTransformer.
If the submanager has not been moved or reshaped, this
returns the identity transformation.
To know what transformation is used to draw a submanager
in a specified view, you can use the following method of the
IlvManager
class:
getDrawingTransformer.
This method returns the affine transformation used to
draw the objects in a manager. If the specified view is a view of
the manager, then it simply returns the affine transform of the view;
otherwise, the method will compose the transformation of all the parents
of the manager and also the transformation of the view to give the
result.