Screenboard class

Screenboard - Annotation overlay for screen sharing.

This is a feature-complete whiteboard component designed to overlay on top of a shared screen, allowing users to draw annotations during screen sharing. Full parity with React Screenboard implementation.

Features:

  • Line drawing mode with customizable thickness
  • Freehand drawing with brush
  • Shape tools (rectangle, circle, triangle, pentagon, hexagon, rhombus, octagon, parallelogram, oval, square)
  • Eraser with adjustable size
  • Color selection palette
  • Line type options (solid, dashed, dotted, dash-dot)
  • Thickness controls for brush, line, and eraser
  • Auto-remove annotations after 15 seconds (configurable)
  • Toggle toolbar visibility
  • Real-time sync with other participants
  • Touch and mouse input support

Example:

Stack(
  children: [
    // Screen share video
    VideoWidget(stream: screenStream),
    // Annotation overlay
    Screenboard(
      options: ScreenboardOptions(
        parameters: screenboardParams,
        defaultColor: Colors.red,
      ),
    ),
  ],
)
Inheritance

Constructors

Screenboard({Key? key, required ScreenboardOptions options})
const

Properties

hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
options ScreenboardOptions
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

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