FeedbackAnnotationOverlay class

A full-screen drawing overlay for annotating a screenshot before attaching.

Shows imageBytes as a background and lets the user draw coloured strokes with their finger or stylus. Tapping Save renders the annotated result to a PNG Uint8List and calls onSave. Tapping Discard calls onDiscard without saving.

Typically triggered from FeedbackWidget after a screenshot is captured or after the user picks an image from the gallery.

Navigator.push(
  context,
  MaterialPageRoute(
    builder: (_) => FeedbackAnnotationOverlay(
      imageBytes: screenshotBytes,
      onSave: (annotated) {
        Navigator.pop(context);
        // attach `annotated` to feedback entry
      },
    ),
  ),
);
Inheritance

Constructors

FeedbackAnnotationOverlay({Key? key, required Uint8List imageBytes, required void onSave(Uint8List annotatedBytes), VoidCallback? onDiscard, String saveLabel = 'Save', String discardLabel = 'Discard', String undoTooltip = 'Undo'})
const

Properties

discardLabel String
final
hashCode int
The hash code for this object.
no setterinherited
imageBytes Uint8List
PNG bytes of the screenshot to annotate.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
onDiscard VoidCallback?
Called when the user taps Discard.
final
onSave → void Function(Uint8List annotatedBytes)
Called with the annotated PNG bytes when the user taps Save.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
saveLabel String
final
undoTooltip String
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<FeedbackAnnotationOverlay>
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