Interaction Between Controls and Windows

A control always belongs to a particular floating window and cannot be displayed outside that window (however, some controls, such as combo boxes, can temporarily pop up information outside of the floating window). Like all screen elements, controls are positioned relative to the current subwindow. When you destroy a floating window, all controls that belong to that window are also destroyed.

Controls and pop-up subwindows do not interact well on some systems. The reason for this is that graphical controls are native elements of the host system, while subwindows are a text-only construct created by the ACUCOBOL-GT runtime system. Because the host graphical system is not aware of ACUCOBOL-GT subwindows, the system unwittingly displays controls over subwindows. Unfortunately, such host systems do not have support for a construct similar to ACUCOBOL-GT's subwindows, so the subwindows must be managed directly by the runtime system.

To avoid problems, you should not use controls in any location that may intersect with a subwindow. If you are updating an existing program to use controls, you should start by converting any subwindows to floating windows. Floating windows interact correctly with controls, and have the added benefit of having generally better functionality (for example, the user can move them with the mouse).

Windows that have the AUTO-RESIZE or RESIZABLE attribute may be dynamically resized by the user. Unless the program specifically handles it, the size and position of the controls in the window remain unchanged. If the window also has the CONTROLS-UNCROPPED attribute, controls that had been invisible or partially invisible because they were positioned on or outside the visible bounds of the windows, may become visible. If the user tabs to a control outside of the visible area, the run-time will scroll the window in order to make that control visible. To make it easier for programmers to resize and reposition controls in a resizeable window, ACUCOBOL-GT provides a layout manager facility. A layout manager is a piece of software that manages the size and placement of controls in a particular window. See Layout Managers for more information about layout managers.