View class TUI

View represents a terminal view that can contain metadata for terminal control.

This allows the Model.view method to return more than just a string, enabling declarative control over terminal state like cursor position, window title, and mouse tracking.

The TUI runtime follows The Elm Architecture (TEA) pattern, which separates state, logic, and presentation:

  • Model: The state of your application. It should be immutable.
  • Update: A pure function that takes a Msg and the current Model, and returns a new Model and an optional Cmd.
  • View: A pure function that takes the Model and returns a String (or a View object for advanced metadata) representing the UI.
┌─────────────────────────────────────────────────────┐
│                     Program                          │
│                                                      │
│    ┌───────┐     ┌────────┐     ┌──────┐            │
│    │ Model │────▶│ update │────▶│ view │            │
│    └───────┘     └────────┘     └──────┘            │
│        ▲              │              │               │
│        │              │              ▼               │
│        │         ┌────────┐     ┌────────┐          │
│        └─────────│  Cmd   │     │ Screen │          │
│                  └────────┘     └────────┘          │
│                       │                              │
│                       ▼                              │
│                  ┌────────┐                          │
│                  │  Msg   │◀──── User Input          │
│                  └────────┘                          │
└─────────────────────────────────────────────────────┘
Implementers

Constructors

View({required String content, Cmd? onMouse(MouseMsg msg)?, Cursor? cursor, Color? backgroundColor, Color? foregroundColor, String? windowTitle, TerminalProgressBar? progressBar, bool? altScreen, bool? reportFocus, bool? bracketedPaste, MouseMode? mouseMode, KeyboardEnhancements? keyboardEnhancements, ViewDegradation? degradation})
const

Properties

altScreen → bool?
Optional override for alternate screen buffer mode.
final
backgroundColor → Color?
Optional terminal background color.
final
bracketedPaste → bool?
Optional override for bracketed paste mode.
final
content → String
The screen content of the view.
final
cursor → Cursor?
Optional cursor position and style.
final
degradation → ViewDegradation?
Optional degraded content stages used by the runtime when render frames exceed the configured budget.
final
foregroundColor → Color?
Optional terminal foreground color.
final
hashCode → int
The hash code for this object.
no setterinherited
keyboardEnhancements → KeyboardEnhancements?
Optional keyboard enhancement features to request from the terminal.
final
mouseMode → MouseMode?
Optional override for mouse tracking mode.
final
onMouse → Cmd? Function(MouseMsg msg)?
Optional mouse message handler that can be used to intercept mouse messages.
final
progressBar → TerminalProgressBar?
Optional terminal progress bar state.
final
reportFocus → bool?
Optional override for focus reporting.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
windowTitle → String?
Optional terminal window title.
final

Methods

degraded(DegradationLevel level) → View
Returns this view resolved for the given degradation level.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
override

Operators

operator ==(Object other) → bool
The equality operator.
inherited