Maul Window

maul-ui-window (MAUL_UI_WINDOW) connects a context to a Maul Window window: its input, its text input and clipboard, its gamepads and its accessibility. It is a static library of its own, maul-ui-window::maul-ui-window, built against an installed Maul Window or one fetched at its release tag. It follows Maul Window and sits outside Maul UI's 1.x promise until Maul Window reaches 1.0 (Versions). A program on another window library does the same translation itself, and this page lists what that takes.

Input

A glue (muiCreateWindowGlue) belongs to one window and one context root. Each record the program drains from Maul Window goes to muiWindowGlue_HandleEvent, which feeds it to the context and says whether the UI used it. The program hands the rest to its game:

muiWindowGlue_Tick keeps time between records for repeats, so call it once a frame.

Gamepads

One glue per Maul Window context can take the gamepads (enableGamepads in its def), turning their records into navigation for the player a function of the program's names for each pad: the d-pad and the left stick past a threshold are the four directions, the south face button activates and the east cancels (the other way with confirmEast, where the platform's convention puts confirm east), and the shoulders move to the previous and next control. A held direction repeats after 400 ms and then every 100 ms unless the def says otherwise.

Text fields

Accessibility

A muiWindowAccess (muiCreateWindowAccess) makes the adapter for the window's platform over Maul Window's native handles, enables the glue's root, and hands the window the adapter's root whenever it changes. Each frame, muiWindowAccess_Update sends the update and performs what assistive technology asked, unless the program takes a request itself. muiWindowAccess_HandleEvent follows the window's scale and accessibility records.

On Maul Window's test backend there is no adapter (muiWindowAccess_IsAdapterCreated is false), and muiWindowAccess_GetTree gives the tree a screen reader would read, which tests can check.

The samples

The samples in samples/ are programs on Maul Window with the reference renderer: a tour, controls, ranges, text, pickers, tabs and menus, dialogs, collections and color. Build them with -DMAUL_UI_WINDOW=ON -DMAUL_UI_RHI=ON. Each runs in a window, or headless with --headless, where it checks its own frames, which is how the tests run them.