ToolBar, Functional Panel and StatusBar can be treated as containers, they are under the management of the layoutmanager, e.g position,layout,size and status etc. And they can be defined by script.
Also, container is a quite flexible concept. Reflect in suppoting nesting. One functional panel is a container which may have several subpanel.
A series of similar or uniform elements could be grouped by the user, user consequently could provide unified management to the elements.
The definition of Containers:
Specific control on the UI could be abstracted as a element
1 containers,which are used to contain other elements, can be treated as a panel,
2 only do containers support docking and can be docked
3 a concrete control is a sub window of the container
4 a container can be nested in another one.
Question: from the layout point of view, containers can be nested, however, does this change the parent-son relationships?
Note:DockWindow is currently under the management of DLM, if we apply the above mechanism, we do need to put the ULM in charge.
1.the attributes of the containers
1 position(relative to parent window)
2size
3 docking?
4 can be docked?
5 the style of the layout(e.g horizontal or verticle)
6 customer area
states of the container
1 visible?
2 locked?
3 docking state?
rules of docking
1 a container can be docked in another container
2 ;when parent container disposed, the son container(s) disposed as well
3 a container is in docking or in floating state, other containers can be nested in it.
4 A container is in docking or in floating state, other son containers can be dragged out from it
5 During the dragging period, the states of that container remain.
6 when the states of docking/floating of a container changed, the son containers of it remain.
7 In the same docking area, supporting multiple styles of the docking layout.
The abilities of the layout manager :
1 UI elements could be set in terms of script configuration.
2 In charge of the behaviors and states of elements such as docking, floating, dragging,display,hiding,lock,activation etc.