class

TUI::MultiOptionListView

Inherits TUI::ListView < TUI::Scrollable < Reference < Object

Multi-select option list for the dropdown picker. Space toggles the focused row's membership, independent of cursor movement (same interaction FlagsField already uses inline). Enter means "confirm the whole current selection" rather than "pick this one row and close" — a different signal than single-select's on_activate, so it's reported via a dedicated on_confirm property instead of overloading on_activate's one-index payload.

Selection is tracked by wire_value, not by list index — a filtered row's index shifts as the filter changes, so indices are never a stable identity for "is this option selected"; only the option's own wire_value is.

Constructors

new(option_source : OptionListSource, initial : Set(String) = Set(String).new)
Source

Instance methods

on_confirm

Fires on Enter with the full current selection's wire_values (see #selected_wire_values) — the "confirm this whole set" signal described above, kept separate from ListView#on_activate.

Source
on_confirm=(on_confirm : Proc(Set(String), Nil) | Nil)

Fires on Enter with the full current selection's wire_values (see #selected_wire_values) — the "confirm this whole set" signal described above, kept separate from ListView#on_activate.

Source
row_content(index : Int32) : String

The content string for content-row index, before the leading " {pointer}" prefix and before width-fitting/highlight styling (those stay in render_content, shared by every subclass).

Source
selected_wire_values
Source
status_hint
Source