Terminality manages multiple pages through a layered visual tree. TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Rikitav/Terminality/llms.txt
Use this file to discover all available pages before exploring further.
Navigator singleton provides a page stack you can push to and pop from at any time. HostApplication::NestUILoop offers a lower-level mechanism for running a blocking sub-loop on a separate UILayer, which is how the built-in dialogs are implemented internally.
Navigator singleton
Navigator::Current() returns the single, globally shared navigator. It does not need to be constructed or passed around — call it from anywhere after RunUILoop has started.
Pushing a page
Navigate takes ownership of a new root node and pushes it onto the navigation stack. The previous page is suspended but not destroyed.
Going back
| Method | Description |
|---|---|
CanGoBack() | Returns true if there is at least one page beneath the current one. |
GoBack() | Pops the current page and resumes the previous one. Returns true on success. |
GoHome() | Pops all pages and returns to the root page that was passed to RunUILoop. |
Relationship with HostApplication
HostApplication provides two related entry points:
RunUILoop starts the main event loop with a root page and does not return until RequestStop() is called. The Navigator operates on top of the visual tree managed by this loop.
NestUILoop runs a second, nested event loop on a pre-built UILayer. It blocks the calling thread until the layer’s Running flag is set to false. The built-in dialogs (MessageBox, ContextMenu, OpenFileDialog) use this mechanism to implement their blocking behaviour.
Multi-layered UI
The visual tree is a stack ofUILayer objects. Each layer has its own root node and FocusManager. Layers are rendered back-to-front, so the topmost layer always appears in front. Input is routed only to the active (topmost) layer.
Navigator.Navigate
Use for application-level page transitions — settings screens, detail views, wizard steps. The previous page is kept alive on the stack and restored when you go back.
NestUILoop
Use for modal overlays that must block the rest of the UI — confirmation dialogs, context menus, file pickers. The current layer is still visible underneath, but receives no input.