Window lifecycle
Navigate, minimize, restore and rerun without rebuilding control state.
Persistent pages#
Create pages and controls once. Navigation uses a restrained 195ms transition on native containers. Interrupted transitions are superseded; inactive pages cannot intercept input. Title bar and rail stay fixed.
Floating minimize and restore#
window:SetMinimized(true)
-- User can tap the floating launcher, or your controller can restore:
window:SetMinimized(false)
Open full size ↗Standalone minimize morphs a temporary rounded shell over 320ms with Quart Out, changing Position and both Size axes. The real root retains its expanded geometry and state. Restore reaches that exact geometry before a 35ms handoff reveals the native content. Interrupted reversal continues from the current shell geometry.
The 48px launcher is independent of the root and uses the provided Logo. A short mouse/touch press restores; movement from 7px counts as a drag. A pointer drag does not trigger a later restore click. The launcher position and expanded window position are separate.
Input and overlays#
Minimize closes popups, cancels key capture, dismisses notifications and cancels dialogs without confirming actions. Values and selected page remain. The reusable library does not pause game controllers: your integration decides whether background work should continue.
Repeat execution#
CreateWindow with a fixed Id under the same Parent replaces only a prior owned Aroyn UI. An unrelated GUI name collision asserts. Use one loaded library module for related windows to share a consistent input system; multiple loads have independent key hubs and managers.
Attached windows#
AttachWindow leaves minimizing and outer dragging to the host. It cleans up when the host Root is destroyed. The adapter must keep page availability and reserved content space consistent. See Windows.