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