Module: reefvision.widgets.inputline
Source: ./reefvision/widgets/inputline.reef
Overview
reefvision.widgets.inputline — single-line text field (design §10.5)
object InputLine extends view.View. Focusable; Left/Right/Home/End/ Backspace/Delete + Char insert. MVP editing is ASCII-oriented (display width 1; code points 32..126). Typing returns event_handled() (consumed, command 0), never a command id.
Objects
InputLine
Extends: view.View
Fields:
| Name | Type |
|---|---|
text |
string |
caret |
int |
max_len |
int |
proc init(bounds: cell.Rect, max_len: int, initial: string)
Methods:
override shared fn wants_focus(): bool
shared fn text(): string
shared fn caret(): int
shared fn max_len(): int
exclusive proc set_text(text: string)
exclusive proc set_caret(caret: int)
exclusive proc paste(text: string)
Insert printable ASCII from paste (newlines → space); respects max_len.
override exclusive proc draw(buf: cell.CellBuffer, abs: cell.Rect, clip: cell.Rect, focused: bool, th: theme.Theme)
override exclusive fn handle_event(e: event.Event): view.EventResult
Functions
fn clamp_caret(text: string, caret: int): int
fn truncate_to_max(text: string, max_len: int): string
fn insert_char(text: string, caret: int, cp: int, max_len: int): string
fn delete_before(text: string, caret: int): string
fn delete_at(text: string, caret: int): string
Generated by reefc doc