octomy::standalone::StandaloneWindow
A window that composes window-features instead of inheriting them (§ACW-3, §ACO W7).
| Declared in | src/libs/libstandalone/standalone/StandaloneWindow.hpp |
| Inherits | QWidget |
| Group | standalone |
Detailed description
This is the window axis's terminus made real for the node-free side. NodeWindow is the second god-object of the composition program: it bundles the stack host, chrome, confirm host, toast overlay, OPAL surface and splash, and AgentWindow, HubWindow and RemoteWindow inherit all of it (§ACW-1). The cure is the same one Node got: composition over inheritance. A window becomes a shell that assembles window-features, and the discriminator between a node window and a standalone one is which features are composed, not which base class is inherited (§ACW-3).
The Features flags select the composition. The default is the node-free core: a WindowStackHost, a toast overlay and a confirm controller. The window always installs a StandaloneActivityContext, which carries the stack when the stack host is composed, so an activity pushed onto it reaches its facilities without a Node.
Ownership follows Qt: every feature is either a child QObject of this window or is owned through the widget tree, and the window owns the activity context outright. Destroying the window destroys the composition.
Note: This class deliberately does NOT derive from
NodeWindow, and nothing here includes aNodeheader. §AC-3.1 asks for construction with noNode, andtestStandaloneWindowis the proof (§ACW-5 rule 3). The features composed here already ship in production throughStandaloneHarness(§ACW-6), so this class adopts working code rather than introducing a design.
Note: The shared
NodeWindowbase is untouched by this class. §ACW-5 rule 2 is explicit: extract into composable features, do not de-Node the base in place under three derived windows at once. That edit is the highest-disruption item in the program and it is not this one.
Note: Usable as a
StandaloneHarnessshell as-is. The harness takes aShellFactoryreturning anyQWidget *, so an app returns one of these and gets the window title,--fullscreenhandling and the first-show splash without this class knowing anything about them. That is why there is no title or geometry logic here. The auda and singularity apps use this class.
Note: §ACF-5 classification: this and everything it composes are GLUE, host chrome a window assembles at build time, with no lifecycle tier. That is why there is no
Serviceand no start or stop here, and why the composedconfirmandtoastfeatures are published as facilities.