← All compilation units

Flyology_TUI.Components.Streaming_Texts

Description

Appearance

type Appearance is record
   Streaming_Text : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Finished_Text  : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Failed_Text    : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Cancelled_Text : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Focused_Text   : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Background     : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
end record;
Record fields
Streaming_Text
Finished_Text
Failed_Text
Cancelled_Text
Focused_Text
Background

Append

function Append
  (Item  : in out Model;
   Chunk : Wide_Wide_String) return Operation_Result

These operations synchronously copy detached caller data. They never start tasks, retain callbacks, or perform I/O. Terminal states reject further text mutation. Reject preflights the complete input before any copy; Trim_Oldest removes complete logical lines first and then complete terminal-oriented grapheme clusters until both bounds hold.

Parameters
Item
Chunk
Return value

Cancel

function Cancel (Item : in out Model) return Operation_Result
Parameters
Item
Return value

Code_Point_Count

function Code_Point_Count (Item : Model) return Natural
Parameters
Item
Return value

Content

function Content (Item : Model) return Wide_Wide_String
Parameters
Item
Return value

Create

function Create
  (Width     : Natural;
   Height    : Natural;
   Overflow  : Overflow_Policy := Reject;
   Tab_Stop  : Tab_Stop_Width := 4;
   Follow_Tail : Boolean := True) return Model

Create owns no task or clock. Width and Height are accepted only when their product is within Max_Viewport_Cells; otherwise Capacity_Error is raised before the model is constructed.

Parameters
Width
Height
Overflow
Tab_Stop
Follow_Tail
Return value

Fail

function Fail (Item : in out Model) return Operation_Result
Parameters
Item
Return value

Finish

function Finish (Item : in out Model) return Operation_Result
Parameters
Item
Return value

First_Visible_Row

function First_Visible_Row (Item : Model) return Natural
Parameters
Item
Return value

Fits_Viewport

function Fits_Viewport (Width, Height : Natural) return Boolean
Parameters
Width
Height
Return value

From_Theme

function From_Theme
  (Theme : Flyology_TUI.Themes.Theme) return Appearance
Parameters
Theme
Return value

Handle

function Handle
  (Item  : in out Model;
   Event : Flyology_TUI.Events.Terminal_Event)
   return Flyology_TUI.Components.Interactions.Update_Result
Parameters
Item
Event
Return value

Handle

function Handle
  (Item  : in out Model;
   Event : Flyology_TUI.Mouse.Local_Event)
   return Flyology_TUI.Components.Interactions.Update_Result

Coordinates are relative to Render. Wheel scrolling and a left click inside the viewport request focus; this component never captures input.

Parameters
Item
Event
Return value

Is_Following_Tail

function Is_Following_Tail (Item : Model) return Boolean
Parameters
Item
Return value

Logical_Line_Count

function Logical_Line_Count (Item : Model) return Positive
Parameters
Item
Return value

Max_Code_Points

Max_Code_Points    : Positive;

Max_Lines

Max_Lines          : Positive;

Max_Viewport_Cells

Max_Viewport_Cells : Positive := 1_000_000;

Model

type Model is tagged private;

Operation_Result

type Operation_Result is
  (Applied,
   Unchanged,
   Rejected_Capacity,
   Rejected_State,
   Rejected_Geometry);

Applied on Append means a nonempty chunk was accepted as a stream history transition, even when Trim_Oldest leaves byte-identical retained text. Unchanged is reserved for empty appends and replacements whose retained text is already identical.

Enumeration literals
Applied
Unchanged
Rejected_Capacity
Rejected_State
Rejected_Geometry

Overflow_Mode

function Overflow_Mode (Item : Model) return Overflow_Policy
Parameters
Item
Return value

Overflow_Policy

type Overflow_Policy is (Reject, Trim_Oldest);
Enumeration literals
Reject
Trim_Oldest

Render

function Render
  (Item       : Model;
   Appearance : Streaming_Texts.Appearance := (others => <>);
   Has_Focus  : Boolean := False)
   return Flyology_TUI.Surfaces.Surface
Parameters
Item
Appearance
Has_Focus
Return value

Render

function Render
  (Item      : Model;
   Theme     : Flyology_TUI.Themes.Theme;
   Has_Focus : Boolean := False)
   return Flyology_TUI.Surfaces.Surface
Parameters
Item
Theme
Has_Focus
Return value

Replace

function Replace
  (Item    : in out Model;
   Content : Wide_Wide_String) return Operation_Result
Parameters
Item
Content
Return value

Resize

function Resize
  (Item : in out Model;
   Width, Height : Natural) return Operation_Result

Resize is atomic. A rejected geometry leaves dimensions, scrolling, follow-tail state, and unseen counters unchanged.

Parameters
Item
Width
Height
Return value

Scroll

function Scroll
  (Item  : in out Model;
   Amount : Integer)
   return Flyology_TUI.Components.Interactions.Update_Result
Parameters
Item
Amount
Return value

Set_Follow_Tail

procedure Set_Follow_Tail (Item : in out Model; Enabled : Boolean)

Enabling follow-tail moves to the current end and acknowledges all unseen content. Disabling it preserves the current viewport.

Parameters
Item
Enabled

State

function State (Item : Model) return Stream_State
Parameters
Item
Return value

Stream_State

type Stream_State is (Streaming, Finished, Failed, Cancelled);
Enumeration literals
Streaming
Finished
Failed
Cancelled

Tab_Stop_Width

subtype Tab_Stop_Width is Positive range 1 .. 16;

Unseen_Chunk_Count

function Unseen_Chunk_Count (Item : Model) return Natural
Parameters
Item
Return value

Unseen_Row_Count

function Unseen_Row_Count (Item : Model) return Natural

Unseen_Row_Count is the current wrapped-row distance below the viewport. Unseen_Chunk_Count records accepted nonempty appends while detached. A rolling byte-identical append can therefore add a chunk without adding geometric rows. Reaching or explicitly following the tail clears both.

Parameters
Item
Return value

Update

procedure Update
  (Item  : in out Model;
   Event : Flyology_TUI.Events.Terminal_Event)
Parameters
Item
Event

Update

procedure Update
  (Item  : in out Model;
   Event : Flyology_TUI.Mouse.Local_Event)
Parameters
Item
Event

Viewport_Height

function Viewport_Height (Item : Model) return Natural
Parameters
Item
Return value

Viewport_Width

function Viewport_Width (Item : Model) return Natural
Parameters
Item
Return value

Visual_Row_Count

function Visual_Row_Count (Item : Model) return Natural
Parameters
Item
Return value