Containers for program windows
Program windows are displayed in window containers by the front-end.
Program windows and window container
A Genero program can create multiple windows with the OPEN WINDOW
instruction.
- On desktop (GDC), the window container is a frame of the OS window manager.
- In a web browser (GAS), the window container is a browser tab.
- On mobile devices (GMA/GMI), the window container is the device screen.
All windows created by a given program are displayed in the same window container.
You can switch between program windows using the window list, displayed on the top left in the chromebar.
Shared or dedicated window containers for programs
RUN ... WITHOUT
WAITING
will display in the same window container as the parent program. To
force each program to display its windows in a dedicated desktop window container,
define the desktopMultiWindow
style attribute to "yes"
at the
UserInterface
node level:<StyleList>
<Style name="UserInterface">
<StyleAttribute name="desktopMultiWindow" value="yes"/>
</Style>
...
</StyleList>
RUN ...
WITHOUT WAITING
will display in the same web browser tab as the parent program. To force
each child program to display its windows in a dedicated web browser tab, define the browserMultiPage
style attribute to "yes"
at the
UserInterface
node level:<StyleList>
<Style name="UserInterface">
<StyleAttribute name="browserMultiPage" value="yes"/>
</Style>
...
</StyleList>
With both GDC/desktop and GAS/web browser, when starting a new child program with a
RUN
command not using the WITHOUT WAITING
clause, the parent
program is frozen and is waiting for the child program to finish. In such case, the child program
windows are always displayed in the same window container, no matter the
desktopMultiWindow
or browserMultiPage
settings.
The application list and window list
The application list is the set of programs running concurrently and displaying to
the front-end (these can be child programs started with RUN WITHOUT WAITING
). The
window list is the set of windows opened by the current program and opened by all child
programs started with a waiting RUN
.
<StyleList>
<Style name="UserInterface">
<StyleAttribute name="applicationListVisible" value="no"/>
<StyleAttribute name="windowListVisible" value="no"/>
</Style>
...
</StyleList>
For reference, see applicationListVisible and windowListVisible.Application and window lists can also be shown in the topmenu and in the toolbar of the current
window/form, by using the AUTOCOMMANDS
and AUTOITEMS
placeholders,
respectively with the CONTENT=PROGRAMS
and CONTENT=WINDOWS
attributes. These placeholders can be located anywhere in the topmenu and toolbar. For more details,
see TOPMENU section and TOOLBAR section.
Tabbed containers (deprecated)
tabbedContainer
style attribute for the main window of a parent
program:<StyleList>
<Style name="Window.main">
<StyleAttribute name="windowType" value="normal" />
<StyleAttribute name="tabbedContainer" value="yes" />
</Style>
...
</StyleList>
When the tabbedContainer
style attribute is set to "yes"
, the
windows of several child programs will be rendered in folder tabs in a parent container.
When using tabbed containers, the tabs created for this rendering becomes the window container of the child programs.
The parent program using tabbedContainer
must define a Start Menu.
For reference, see tabbedContainer
in the Window
style attributes topic.