class

TUI::Window

Inherits TUI::Widget < Reference < Object

Owns the border, scrollbar, and scroll position for a hosted Scrollable — the piece that lets content be embedded either standalone (bordered) or side-by-side in a layout container like HSplit (borderless, no shared chrome of its own).

Constructors

full_screen(screen : Screen, content : Scrollable, bordered : Bool = true) : Window

Sizes and positions a Window to fill the screen below the status bar row — the same geometry Runtime#push resizes any full-screen page widget to, spelled once here instead of every call site re-deriving 1, 1, screen.cols, screen.rows - 1 by hand.

Source
new(x : Int32, y : Int32, width : Int32, height : Int32, content : Scrollable, bordered : Bool = true)
Source

Instance methods

border_style

Applied to the box border drawn by #render when #bordered? is true.

Source
border_style=(border_style : Style)

Applied to the box border drawn by #render when #bordered? is true.

Source
bordered=(bordered : Bool)

Whether to draw the box border/scrollbar chrome around #content — false for panes embedded borderless inside a layout container like HSplit, which supplies its own shared chrome instead.

Source
bordered?

Whether to draw the box border/scrollbar chrome around #content — false for panes embedded borderless inside a layout container like HSplit, which supplies its own shared chrome instead.

Source
handle_key(ev : KeyEvent) : Bool

Returns true if the key was consumed.

Source
render

Draw into @buffer using LOCAL coordinates (0, 0 = this widget's own top-left). Widgets never need to know their own x/y offset to draw themselves — that arithmetic is handled entirely by composite.

Source
reset_scroll

Resets scroll position. Content itself has no Scroller to reset — callers that mutate content directly (e.g. loading new data into a DetailView outside the normal handle_key flow) call this afterward.

Source
scrollbar_style

Applied to the scrollbar track and thumb drawn by #render when #bordered? is true — defaults to whatever #border_style currently is, so scrollbar and border stay visually matched unless a caller explicitly sets this to something else. Resolved fresh on every read (not captured once), so an unset scrollbar_style keeps tracking border_style even if border_style is changed later.

Source
scrollbar_style=(style : Style) : Nil
Source
status_hint

Plain text describing the actions available in the widget's current state. Rendered by the App in the global status bar at the bottom of the screen — widgets must NOT draw their own hint lines.

Source