Files
Basalt2/docs/references/elements/TextBox.md
2025-09-13 20:28:52 +00:00

3.8 KiB

TextBox

A multi-line text editor component with cursor support and text manipulation features

Extends: VisualElement

Properties

Property Type Default Description
lines table {} Array of text lines
cursorX number 1 Cursor X position
cursorY number 1 Cursor Y position (line number)
scrollX number 0 Horizontal scroll offset
scrollY number 0 Vertical scroll offset
editable boolean true Whether text can be edited
syntaxPatterns table {} Syntax highlighting patterns
cursorColor number nil Color of the cursor

Functions

Method Returns Description
TextBox.new TextBox Creates a new TextBox instance
TextBox:init TextBox Initializes the TextBox instance
TextBox:addSyntaxPattern TextBox Adds a new syntax highlighting pattern
TextBox:removeSyntaxPattern TextBox Removes a syntax pattern by index (1-based)
TextBox:clearSyntaxPatterns TextBox Clears all syntax highlighting patterns
TextBox:updateViewport TextBox Updates the viewport to keep the cursor in view
TextBox:char boolean Handles character input
TextBox:key boolean Handles key events
TextBox:mouse_scroll boolean Handles mouse scroll events
TextBox:mouse_click boolean Handles mouse click events
TextBox:paste - Handles paste events
TextBox:setText TextBox Sets the text of the TextBox
TextBox:getText string Gets the text of the TextBox
TextBox:render - Renders the TextBox with syntax highlighting

TextBox.new()

Creates a new TextBox instance

Returns

  • TextBox self The newly created TextBox instance

TextBox:init(props, basalt)

Parameters

  • props table The properties to initialize the element with
  • basalt table The basalt instance

Returns

  • TextBox self The initialized instance

TextBox:addSyntaxPattern(pattern, color)

Adds a new syntax highlighting pattern

Parameters

  • pattern string The regex pattern to match
  • color number The color to apply

Returns

  • TextBox self The TextBox instance

TextBox:removeSyntaxPattern(index)

Removes a syntax pattern by index (1-based)

Parameters

  • index number The index of the pattern to remove

Returns

  • TextBox self

TextBox:clearSyntaxPatterns()

Clears all syntax highlighting patterns

Returns

  • TextBox self

TextBox:updateViewport()

Updates the viewport to keep the cursor in view

Returns

  • TextBox self The TextBox instance

TextBox:char(char)

Parameters

  • char string The character that was typed

Returns

  • boolean handled Whether the event was handled

TextBox:key(key)

Parameters

  • key number The key that was pressed

Returns

  • boolean handled Whether the event was handled

TextBox:mouse_scroll(direction, x, y)

Parameters

  • direction number The scroll direction
  • x number The x position of the scroll
  • y number The y position of the scroll

Returns

  • boolean handled Whether the event was handled

TextBox:mouse_click(button, x, y)

Parameters

  • button number The button that was clicked
  • x number The x position of the click
  • y number The y position of the click

Returns

  • boolean handled Whether the event was handled

TextBox:paste()

TextBox:setText(text)

Sets the text of the TextBox

Parameters

  • text string The text to set

Returns

  • TextBox self The TextBox instance

TextBox:getText()

Gets the text of the TextBox

Returns

  • string text The text of the TextBox

TextBox:render()