Window management

To manage windows, the Qt5 Window manager processes Screen events sent by applications and uses the data in these events when communicating with Screen through its API.

The Qt5 HMI consists of several different layers. These layers are essentially separate Screen windows running in the same process. The layers of the Qt5 HMI are shown in the figure below:

Figure 1. Qt5 HMI layers

In the Core view, the tabs trigger different views that render to the same window. While executing, extended apps are unaware of the activity of other extended apps and the Core view. Each extended app or Core view continues to render its own HMI component, whether or not it's currently displayed. It's up to the Qt5 Window manager to decide how, when, and where to display the windows of the extended apps. At any time, either one extended app or the Core view can be visible.

When active, the video feed from the rearview camera always becomes the top HMI layer and thus, replaces the display of all other apps. When the user pushes the Push-to-Talk button in the taskbar and starts an ASR session, the visual prompt for a voice command is always displayed over the other apps (except the rearview camera feed if it's active).

Next, any active extended app is displayed in the HMI midsection, which is the area between the status bar along the top and the taskbar along the bottom. Although these last two HMI components are rendered one layer lower, at the same level as the core apps (e.g., Home, Media Player, Car Control), the status bar and taskbar are always visible (except when the rearview camera feed is active). If no extended app is running, the HMI midsection shows the active core view.

Finally, when navigation is active, the animation of the map to reflect the driver's turn-by-turn progress as they approach their destination is rendered on the bottom HMI layer. This way, the map display is kept up to date on the navigation information feed in the Home screen or whenever the user presses the Navigation button and accesses the Navigation screen.

The Qt5 Window manager is responsible for the placement and appearance of application windows. The Qt5 Window manager uses the Screen API to communicate with Screen. The Qt5 Window manager has the role of the Screen window manager and therefore, has the ability to manage their properties.

The Qt5 Window manager deals with the application windows' z-order, transparency, positioning on the physical display, and scaling through Screen API functions. For more information on Screen, see Screen Graphics Subsystem Developer's Guide.

Once started, applications communicate directly with Screen from within their own context. Applications manage their own windows through the Screen API.