class

TUI::ScrollableWidget

Inherits TUI::Scrollable < Reference < Object

Adapts a plain Widget to the Scrollable interface so it can be hosted as a SplitWindow pane, which only accepts Scrollable (see SplitWindow's shared border/scrollbar chrome, driven entirely off Scrollable's content_size/render_content/header_rows). The wrapped widget has no scrollable content of its own from SplitWindow's point of view — content_size always matches whatever's visible, so the pane's scrollbar shows full and never scrolls; the widget is free to implement its own internal scrolling (as Window does for its content) if it needs to.

Constructors

new(widget : Widget, title : String = "")
Source

Instance methods

content_size

Total scrollable content rows. Does NOT include a header row — header is content-internal (TableView-specific), not Window's.

Source
handle_click(local_row : Int32, local_col : Int32, scroll : ScrollControl) : Bool

A positional (mouse) event, pre-translated by Window into content-local row/col (0,0 = content's own first cell).

Source
handle_key(ev : KeyEvent, scroll : ScrollControl) : Bool

Everything but positional mouse hit-testing.

Source
render_content(buffer : Buffer, scroll : ScrollControl) : Nil

Render into buffer, a region already sized to the content area (border/scrollbar column already excluded by Window). Row 0 is content's own first row.

Source
status_hint
Source
title
Source
title=(title : String)
Source