TUI::FlagsField
Inherits TUI::FormField < Reference < Object
Multi-select from a fixed Array(FormEnumOption), tracked by a
Set(Int32) of selected indices kept independent from
@focus_index — unlike EnumField, where focus is the selection.
Wire format is a decimal string of a bitmask, bit i set meaning
option i is selected; #value composes that bitmask and
#decode_flags (called from #start) parses it back. Up/Down move
focus; Space toggles the focused option in/out of @selected; Enter
commits; Esc cancels without writing back, per FormField's stated
rationale that a picker with nothing chosen yet has no sensible
commit value.
Constructors
Instance methods
Returns :commit or :cancel once the edit finishes; nil while it's still in progress (the key was consumed either way).
focused gates the reverse-video keyboard-cursor row — pass false
when drawing a field's persisted state outside an active edit
session, so an always-visible option list doesn't show a stray
highlight on whichever row @focus_index happens to default to (0,
from #initialize, unrelated to @selected).
Loads a persisted wire-value string into this field's edit state.
Fragment of a host's status-bar hint describing this field's own key bindings while it's being edited — owned here (rather than left for a host to re-derive per kind) so the bindings shown to the user can never drift from what #handle_key actually does.