ReusableWindow class

Root widget for windows that participate in the reuse cache.

Must be used as the home of a window launched with isEnabledReuse: true in MultiWindowManager.ensureInitializedSecondary.

Responsibilities:

  • Initial display: calls waitUntilReadyToShow with windowOptions.
  • Hide instead of close: relies on the native kWindowEventReuseClose mechanism. The native WM_CLOSE handler hides the window and emits kWindowEventReuseClose globally so the registry is updated automatically without touching setPreventClose. Inner widgets may still use setPreventClose for their own "are you sure?" dialogs.
  • Reuse: on kWindowEventShowWindow repositions/shows itself and rebuilds builder with new args and a fresh content subtree.

Modal routes (showDialog, etc.) live on the MaterialApp navigator above this widget. On reuse-hide, ReusableWindow pops them and bumps an internal session key so the next show starts from a clean stack.

Usage

await MultiWindowManager.ensureInitializedSecondary(windowId, isEnabledReuse: true);

runApp(MaterialApp(
  home: ReusableWindow(
    initialArgs: args,
    builder: (context, args) => MyPage(args: args),
  ),
));
Inheritance

Constructors

ReusableWindow({required Widget builder(BuildContext context, dynamic args), Widget loadingBuilder(BuildContext context)?, dynamic initialArgs, WindowOptions windowOptions = const WindowOptions(center: true, size: Size(1440, 940), minimumSize: Size(1440, 940), skipTaskbar: false, titleBarStyle: TitleBarStyle.hidden), Key? key})
const

Properties

builder Widget Function(BuildContext context, dynamic args)
final
hashCode int
The hash code for this object.
no setterinherited
initialArgs → dynamic
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
loadingBuilder Widget Function(BuildContext context)?
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
windowOptions WindowOptions
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<ReusableWindow>
Creates the mutable state for this widget at a given location in the tree.
override
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited