WindowController class
Reactive controller for managing window state and operations.
Provides programmatic control over window properties with automatic UI updates through ValueNotifier pattern. Handles window state management, validation, and coordination with the window widget lifecycle.
Key Capabilities:
- Reactive Updates: Automatic UI refresh when state changes
- Property Management: Convenient getters/setters for window properties
- Lifecycle Handling: Mount/unmount detection and validation
- State Validation: Ensures state consistency and constraint compliance
- Handle Management: Coordination with underlying window implementation
Usage Pattern:
- Create controller with initial window configuration
- Pass to Window.controlled() constructor
- Modify properties programmatically (bounds, minimized, etc.)
- UI automatically updates to reflect changes
- Listen to controller for state change notifications
Example:
final controller = WindowController(
bounds: Rect.fromLTWH(100, 100, 800, 600),
resizable: true,
draggable: true,
);
// Programmatic control
controller.bounds = Rect.fromLTWH(200, 200, 900, 700);
controller.minimized = true;
controller.maximized = Rect.fromLTWH(0, 0, 1920, 1080);
// Listen for changes
controller.addListener(() {
print('Window state changed: ${controller.value}');
});
- Inheritance
-
- Object
- ChangeNotifier
- ValueNotifier<
WindowState> - WindowController
Constructors
- WindowController.new({required Rect bounds, Rect? maximized, bool minimized = false, bool focused = false, bool closable = true, bool resizable = true, bool draggable = true, bool maximizable = true, bool minimizable = true, bool enableSnapping = true, BoxConstraints constraints = kDefaultWindowConstraints})
Properties
- alwaysOnTop ↔ bool
-
getter/setter pair
- attachedState → WindowHandle
-
no setter
- bounds ↔ Rect
-
getter/setter pair
- closable ↔ bool
-
getter/setter pair
- constraints ↔ BoxConstraints
-
getter/setter pair
- draggable ↔ bool
-
getter/setter pair
- enableSnapping ↔ bool
-
getter/setter pair
- hashCode → int
-
The hash code for this object.
no setterinherited
- hasListeners → bool
-
Whether any listeners are currently registered.
no setterinherited
- maximizable ↔ bool
-
getter/setter pair
- maximized ↔ Rect?
-
getter/setter pair
- minimizable ↔ bool
-
getter/setter pair
- minimized ↔ bool
-
getter/setter pair
- mounted → bool
-
no setter
- resizable ↔ bool
-
getter/setter pair
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- value ↔ WindowState
-
The current value stored in this notifier.
getter/setter pairinherited
Methods
-
addListener(
VoidCallback listener) → void -
Register a closure to be called when the object changes.
inherited
-
dispose(
) → void -
Discards any resources used by the object. After this is called, the
object is not in a usable state and should be discarded (calls to
addListener will throw after the object is disposed).
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notifyListeners(
) → void -
Call all the registered listeners.
inherited
-
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that are
notified when the object changes.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited