StageData class

Inheritance

Constructors

StageData({Key? key, required OriginRect origin, required OriginRect? originContainer, required OriginRect display, required OriginRect? displayContainer, required double aspectRatio, required ValueNotifier<Rect> rect, required ValueNotifier<Rect> crop, required bool interacting, required bool openingOrDismissing, required ValueNotifier<Rotation?> rotation, required ValueNotifier<double> originToBaseProgress, required Widget? widget, required ValueSetter<Widget?> setWidget, required double? perspective, required Color? backgroundColor, required StageBuilder? gestureBuilder, required OnRelease? onRelease, required Overrides? overrides, required DragHybrid? dragHybridFromStage, required ScaleHybrid? scaleHybridFromStage, required OriginGesture? originGesture(), required ValueSetter<OriginGesture?> setOriginGesture, required ValueSetter<Map<int, Offset>> setOriginPointers, required DisplayConfig? displayConfig(), required bool isHybridDriving(), required int stagePointerCount(), required ({double scaleVelocity, Velocity velocity})? hybridReleaseVelocity(), required double? scaleVelocityCancel(), required FutureOr<void> onEnd()?, required Object? tag, required bool locked, required bool dismissing, required bool changingMode, required ValueListenable<double> transitionProgressMin, required ValueListenable<double> transitionProgressMean, required ValueListenable<double> transitionProgressMax, required Map<Object, TagState> tagStates, required ValueNotifier<OriginRect?> container, required ValueSetter<OriginRect> setOrigin, required ValueSetter<OriginRect?> setOriginContainer, required ValueSetter<OriginRect> setDisplay, required ValueSetter<OriginRect?> setDisplayContainer, required ValueSetter<double> setAspectRatio, required ValueSetter<double?> setPerspective, required ValueSetter<Color?> setBackgroundColor, required ValueSetter<StageBuilder?> setGestureBuilder, required ValueSetter<DisplayConfig?> setDisplayConfig, required void setOriginConfig({StageBuilder? builder, DisplayConfig? defaults, OriginRect? display, OriginRect? displayContainer, Map<Object, DisplayConfig>? modes, WidgetBuilder? overlay, OriginRect? screen}), required ValueSetter<Object?> setMode, required ValueSetter<FutureOr<void> Function()?> setOnEnd, required ValueSetter<Object?> setTag, required ValueSetter<bool> setLocked, required ValueSetter<Rect> setRect, required AnimateRect animateRect, required AnimateRect animateCrop, required Future<void> animateCenterX({Curve curve, Duration? duration, required double to}), required Future<void> animateCenterY({Curve curve, Duration? duration, required double to}), required Future<void> animateWidth({Curve curve, Duration? duration, double? height, required double to}), required void setReleaseDecomposed({required Offset displayCenter, required double initialWidth, required double initialX, required double initialY}), required VoidCallback clearReleaseDecomposed, required VoidCallback reset, required Future<void> animateToBase(), required Future<void> dismiss({Object? except, Settle? settle, Object? tag}), required void displace(Object tag, {bool park, required Object target}), required void releaseSend(Object tag), required Future<void> runEffect({Curve curve, Duration duration, double? perspective, double? rotateX, double? rotateY, double? rotateZ}), required void register(Object tag, OriginEntry entry), required void unregister(Object tag, OriginEntry entry), required OriginRect? measureEntry(Object tag), required Widget? captureEntry(Object tag), required Future<void> openEntry(Object tag), required Future<void> sendEntry(Object tag, Rect (Rect), {VoidCallback? onEnd}), required Widget child})
const

Properties

animateCenterX Future<void> Function({Curve curve, Duration? duration, required double to})
final
animateCenterY Future<void> Function({Curve curve, Duration? duration, required double to})
final
animateCrop AnimateRect
Animates crop from its current value to the given rect. Used for reset transitions and other places that want a smooth crop-rect change instead of an instant stage.crop.value = newRect assignment.
final
animateRect AnimateRect
final
animateToBase Future<void> Function()
final
animateWidth Future<void> Function({Curve curve, Duration? duration, double? height, required double to})
final
aspectRatio double
final
backgroundColor Color?
final
captureEntry Widget? Function(Object tag)
final
changingMode bool
True while setMode is animating its rect/crop transition. Use to gate mode-transition fades without firing on user interaction.
final
child Widget
The widget below this widget in the tree.
finalinherited
clearReleaseDecomposed VoidCallback
final
container ValueNotifier<OriginRect?>
final
crop ValueNotifier<Rect>
Live crop rect, seeded from CropConfig.initialRect when a crop mode activates and mutated by Stage's recognizer (1-pointer drag inside the rect) or the Cropper widget's handles. Consumers read it (e.g. on apply) via Stage.of(context).crop.value. Reset to Rect.zero when no crop mode is active.
final
dismiss Future<void> Function({Object? except, Settle? settle, Object? tag})
final
dismissing bool
final
displace → void Function(Object tag, {bool park, required Object target})
final
display OriginRect
final
displayConfig DisplayConfig? Function()
Live reader: the currently-active DisplayConfig (the displayed origin's, merged with any active mode override). Null when no origin is displayed. Tools (e.g., Cropper) read this to check whether they should be active in the current state.
final
displayContainer OriginRect?
final
dragHybridFromStage DragHybrid?
Stage-level cascade fallback for hybrid pointer routing. Resolved last before DragHybrid.lock / ScaleHybrid.lock.
final
gestureBuilder StageBuilder?
final
hashCode int
The hash code for this object.
no setterinherited
hybridReleaseVelocity → ({double scaleVelocity, Velocity velocity})? Function()
Live reader: the hybrid merger's combined release velocity computed from its last two focal/spread samples. Returns null if the merger didn't run recently — callers should fall back to the firing recognizer's own ScaleEndDetails.velocity.
final
interacting bool
True while Stage's recognizer holds > 0 pointers. A coarse x vs 0 pointers signal — read via Stage.isInteractingOf for tag-aware access (which folds in a check that the queried tag is the active stage tag). Independent of which gesture committed in arena.
final
isHybridDriving bool Function()
Live reader: true while Stage's hybrid merger is driving the rect. Origin reads this to silence its own rect manipulation while Stage is in control.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
locked bool
final
measureEntry OriginRect? Function(Object tag)
final
onEnd FutureOr<void> Function()?
final
onRelease OnRelease?
final
openEntry Future<void> Function(Object tag)
final
openingOrDismissing bool
True during an open (Stage.animateToBase) or dismiss (Stage.dismiss) animation. Release rubber-back / settle paths don't touch this. Used by crop-mode chrome to fade only during real open/dismiss and stay solid through interaction + settle.
final
origin OriginRect
final
originContainer OriginRect?
final
originGesture OriginGesture? Function()
Live reader: currently-in-flight Origin gesture (drag or scale on an un-displayed item), with its hybrid mode partially resolved up to Origin's level. Stage uses this to decide what to do with new pointers landing in stage-area regions while the Origin is gesturing. Null when no Origin is gesturing.
final
originToBaseProgress ValueNotifier<double>
final
overrides Overrides?
final
perspective double?
final
rect ValueNotifier<Rect>
final
register → void Function(Object tag, OriginEntry entry)
final
releaseSend → void Function(Object tag)
final
reset VoidCallback
final
rotation ValueNotifier<Rotation?>
final
runEffect Future<void> Function({Curve curve, Duration duration, double? perspective, double? rotateX, double? rotateY, double? rotateZ})
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
scaleHybridFromStage ScaleHybrid?
final
scaleVelocityCancel double? Function()
Live reader: Stage-level scaleVelocityCancel (raw nullable), the bottom of the cascade before the package default of 0.5. Callers resolve gesture > Origin/DisplayConfig > this > 0.5.
final
sendEntry Future<void> Function(Object tag, Rect (Rect), {VoidCallback? onEnd})
final
setAspectRatio ValueSetter<double>
final
setBackgroundColor ValueSetter<Color?>
final
setDisplay ValueSetter<OriginRect>
final
setDisplayConfig ValueSetter<DisplayConfig?>
final
setDisplayContainer ValueSetter<OriginRect?>
final
setGestureBuilder ValueSetter<StageBuilder?>
final
setLocked ValueSetter<bool>
final
setMode ValueSetter<Object?>
Switches the active mode for the currently-displayed origin. Looks the key up in the origin's modes map (registered via setOriginConfig), merges with the origin's default config, and swaps displayConfig. Passing null returns to the default config.
final
setOnEnd ValueSetter<FutureOr<void> Function()?>
final
setOrigin ValueSetter<OriginRect>
final
setOriginConfig → void Function({StageBuilder? builder, DisplayConfig? defaults, OriginRect? display, OriginRect? displayContainer, Map<Object, DisplayConfig>? modes, WidgetBuilder? overlay, OriginRect? screen})
Registers the active origin's mode lookup so setMode can resolve a key into a merged DisplayConfig. Origin calls this in its _setup. Also carries Origin-level cascade fallbacks (e.g. overlay, display rect overrides) that Stage merges with the active DisplayConfig.
final
setOriginContainer ValueSetter<OriginRect?>
final
setOriginGesture ValueSetter<OriginGesture?>
final
setOriginPointers ValueSetter<Map<int, Offset>>
Origin forwards its recognizer's pointerPositions here whenever they change. Stage merges with its own recognizer's positions to drive the hybrid gesture math.
final
setPerspective ValueSetter<double?>
final
setRect ValueSetter<Rect>
final
setReleaseDecomposed → void Function({required Offset displayCenter, required double initialWidth, required double initialX, required double initialY})
Enters decomposed-release mode: while active, the X/Y tweens are interpreted as offsets from the proportional scale-driven position. Lets the three axes animate with independent curves/durations while the displayed center stays consistent mid-frame.
final
setTag ValueSetter<Object?>
final
setWidget ValueSetter<Widget?>
final
stagePointerCount int Function()
Live reader: count of stage's recognizer pointers. Origin reads this to decide whether to defer release until stage's pointers also leave.
final
tag Object?
final
tagStates Map<Object, TagState>
final
transitionProgressMax ValueListenable<double>
final
transitionProgressMean ValueListenable<double>
final
transitionProgressMin ValueListenable<double>
Progress 0..1 derived from the four rect/crop animation controllers, gated by openingOrDismissing || changingMode so release/settle don't move it. Three aggregations exposed — consumer picks based on desired fade timing:
final
unregister → void Function(Object tag, OriginEntry entry)
final
widget Widget?
final

Methods

backToBase() Future<void>
backToOrigin(ReleaseContext data, {Object? except}) Future<void>
createElement() InheritedModelElement<Object>
Inflates this configuration to a concrete instance.
inherited
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
isSupportedAspect(Object aspect) bool
Returns true if this model supports the given aspect.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
release(Release plan) Future<void>
run({List<AxisFling>? x, List<AxisFling>? y, List<AxisFling>? scale}) Future<void>
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
updateShouldNotify(covariant StageData oldWidget) bool
Whether the framework should notify widgets that inherit from this widget.
override
updateShouldNotifyDependent(covariant StageData oldWidget, Set<Object> dependencies) bool
Return true if the changes between this model and oldWidget match any of the dependencies.
override

Operators

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