TextTool class
Spec 05 D9. A click sets pending; the app's field edits controller.
The rule, stated once. Enter, or a canvas click, commits a non-empty string. Escape, a tool switch, or any other loss of focus cancels. The tool owns the text, so a canvas click commits synchronously, before the layer's focus request takes effect.
- Inheritance
-
- Object
- ChangeNotifier
- Tool
- PlacementTool
- TextTool
Constructors
- TextTool()
Properties
- acceptingSelf ↔ bool
-
True only while accept runs on a self-snap's stored point (Ruling
05-4).
getter/setter pairinherited
- band → Path
-
Spec 05 D12: reset each frame, never reallocated. bandPaint's colour
and width are set by paintWorldOverlay before it calls
paintRubberBand (dark theme spec D5).
finalinherited
- bandPaint → Paint
-
finalinherited
- controller → TextEditingController
-
final
- cursor → MouseCursor
-
The pointer's cursor over the layer (spec 03 D5).
InteractionLayerrebuilds itsMouseRegionwhen the tool notifies.no setterinherited -
fill
→ ValueListenable<
bool> ? -
Spec 05 D13: the shell's Fill toggle. Null, or false: outlines only.
finalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- hasListeners → bool
-
Whether any listeners are currently registered.
no setterinherited
- hoverKind → SnapKind?
-
no setterinherited
- hoverPoint → Vector2
-
no setterinherited
- hoverVisible → bool
-
no setterinherited
- isMidShape → bool
-
Never mid-shape (spec 12a D6, U-1): the Text tool's pending state is
the open entry, which the shell's flows commit (spec 12a D2) rather
than wait on.
no setteroverride
- isPending → bool
-
no setteroverride
- markerPoint → Vector2
-
Where paintOverlay draws the snap marker: the resolved hover point.
A tool that places its shape somewhere derived from that point
overrides it (spec 08 D15, Ruling 08-14: an opening tool marks the
point projected onto its host's centreline). Read per frame: an
override returns a stored point and allocates nothing.
no setterinherited
- name → String
-
no setteroverride
- orthoBase → Vector2?
-
Spec 05 D4: the last placed point, or none.
no setteroverride
-
pending
→ ValueListenable<
TextPlacement?> -
no setter
- phase → ToolPhase
-
no setterinherited
-
points
→ List<
Vector2> -
The placed points, as exact world values (invariant 1).
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- selectionPreviewTransform → Transform2?
-
The world transform a live move or rotate would apply, for the
overlay's preview (spec 03 D7); null otherwise.
no setterinherited
- touchPress → TouchPress
-
How a finger's press reaches this tool (spec 14t R-1). TouchPress.lift
unless the tool's down and its
cancelexecute nothing.no setterinherited
Methods
-
accept(
Vector2 point, ToolContext ctx) → void -
override
-
addListener(
VoidCallback listener) → void -
Register a closure to be called when the object changes.
inherited
-
cancel(
ToolContext ctx) → void -
Every cancel path (Escape,
ToolController.activate, the layer's deactivate and dispose) drops the pending shape and never touches the document (invariant 3).inherited -
cancelText(
ToolContext ctx) → void -
clearShape(
) → void -
override
-
commit(
ToolContext ctx, DraftCommand build(), {Set< Capability> needs = const {Capability.geometry}}) → bool -
Ruling 05-3: the permission check runs before
build, so a denied shape allocates no handle.needsis every capability the built command will need (spec 06 D13, Ruling 06-10); 05's shapes need geometry alone. Returns whether the command ran.inherited -
commitShape(
ToolContext ctx, EntityKind kind, GeometryPayload payload, {bool fillable = false}) → bool -
Spec 05 D13: with Fill on and a
fillableshape, one region when the boundary can fill, and the plain boundary when it cannot.inherited -
commitText(
String s, ToolContext ctx) → void -
dispose(
) → void -
Discards any resources used by the object.
override
-
finish(
ToolContext ctx) → void -
Enter while a shape is pending.
override
-
hovered(
Vector2 raw) → void -
Every hover's raw world point (the arc tracks it).
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notifyListeners(
) → void -
Call all the registered listeners.
inherited
-
onKey(
KeyEvent event, ToolContext ctx) → KeyEventResult -
inherited
-
onPointerDown(
ToolPointerEvent e, ToolContext ctx) → void -
inherited
-
onPointerExit(
ToolContext ctx) → void -
The shape stays: placement is click by click, not a drag.
inherited
-
onPointerMove(
ToolPointerEvent e, ToolContext ctx) → void -
inherited
-
onPointerUp(
ToolPointerEvent e, ToolContext ctx) → void -
inherited
-
paintOverlay(
Canvas canvas, ViewportTransform camera, Size viewport, PaperPalette paper) → void -
Paints in screen space, after paintWorldOverlay. Every colour comes
from
paper, the overlay's own set for the paper under it (dark theme spec D5); none is kept in a field initialiser.inherited -
paintRubberBand(
Canvas canvas, Vector2 origin, double scale) → void -
A small insertion cross at the pending point, 6 screen px per arm.
override
-
paintWorldOverlay(
Canvas canvas, Vector2 origin, double scale, PaperPalette paper) → void -
Paints under the overlay's rebased world matrix,
worldToScreen ∘ translate(origin), so coordinates handed tocanvasmust beworld − origin(Ruling 03-3).scaleis the camera's, for stroke widths. Colours come frompaper, as in paintOverlay.inherited -
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that are
notified when the object changes.
inherited
-
selfSnap(
Vector2 raw, double apertureWorld) → Vector2? -
A stored placed point this raw point should land on exactly, or null.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited