ZoneInfo class
Holds information about the start and end positions of a zone.
A zone represents a rectangular region in the terminal that can be used for mouse event hit testing. Zones are created by wrapping content with ZoneManager.mark and then scanning the output with ZoneManager.scan.
Example
// In your view method:
final button = zone.mark('my-button', 'Click Me');
// In your update method:
final zoneInfo = zone.get('my-button');
if (zoneInfo?.inBounds(mouseMsg) ?? false) {
// Handle click
}
Constructors
Properties
- endX → int
-
The x coordinate of the bottom right cell of the zone (0-based).
final
- endY → int
-
The y coordinate of the bottom right cell of the zone (0-based).
final
- hashCode → int
-
The hash code for this object.
no setteroverride
- height → int
-
The height of this zone in rows.
no setter
- id → String
-
The user-provided ID for this zone.
final
- isZero → bool
-
Returns true if this zone info represents an unknown/invalid zone.
no setter
- iteration → int
-
The iteration this zone was created in (used for cleanup).
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- startX → int
-
The x coordinate of the top left cell of the zone (0-based).
final
- startY → int
-
The y coordinate of the top left cell of the zone (0-based).
final
- width → int
-
The width of this zone in columns.
no setter
Methods
-
inBounds(
MouseMsg msg) → bool - Returns true if the mouse event was in the bounds of this zone's coordinates.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
pos(
MouseMsg msg) → ({int x, int y}) - Returns the coordinates of the mouse event relative to this zone.
-
toString(
) → String -
A string representation of this object.
override
-
withEnd(
{required int endX, required int endY}) → ZoneInfo - Creates a copy with updated end coordinates.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
override