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