NAME

Term::VTerm::Screen - provides access to the screen layer of libvterm

METHODS

enable_altscreen

$screen->enable_altscreen( $enabled )

Controls whether the altscreen buffer is enabled. Doing so allows the DEC altscreen mode to switch between regular and alternate screen buffers, but consumes more memory.

enable_reflow

$screen->enable_reflow( $enabled )

Controls whether buffer reflow on resize is enabled. This feature is currently experimental and may be less than stable in some situations.

flush_damage

$screen->flush_damage

Flushes all pending damage through the screen to the damage callback.

set_damage_merge

$screen->set_damage_merge( $size )

Sets the damage merge size, as one of the DAMAGE_* constants.

reset

$screen->reset( $hard )

Resets the terminal state; performing either a soft or hard reset depending on the (optional) boolean value given.

get_cell

$cell = $screen->get_cell( $pos )

Returns a VTermScreenCell object representing the current state of the cell at the given location. Note that this is an instantaneous snapshot - the returned object will not update to reflect later changes in the screen's state.

get_text

$str = $screen->get_text( $rect )

Returns a UTF-8 string containing the text in the screen buffer within the given Term::VTerm::Rect.

set_callbacks

$screen->set_callbacks( %cbs )

Sets the screen-layer callbacks. Takes the following named arguments:

on_damage => CODE
$on_damage->( $rect )

$rect is a Term::VTerm::Rect instance.

on_moverect => CODE
$on_moverect->( $dest, $src )

$dest and $src are Term::VTerm::Rect instances.

on_movecursor => CODE
$on_movecursor->( $pos, $oldpos, $is_visible )

$pos and $oldpos are a Term::VTerm::Pos. $is_visible is a boolean.

on_settermprop => CODE
$on_settermprop->( $prop, $value )

$prop is one of the PROP_* constants. The type of $value depends on the property type - see similar to get_penattr.

on_bell => CODE
$on_bell->()
on_resize => CODE
$on_resize->( $rows, $cols )

convert_color_to_rgb

$col = $screen->convert_color_to_rgb( $col )

Converts a Term::VTerm::Color instance from indexed to RGB form.

CELL OBJECTS

A VTermScreenCell instance has the following field accessors:

@chars = $cell->chars

A list of Unicode character numbers. This list does not include the terminating 0.

$str = $cell->str

A UTF-8 string containing the characters (normally just one but it may be followed by zero-width combining marks).

$width = $cell->width

The width of the cell in columns. Normally 1, but 2 for a Unicode double-width character, or the special value of -1 on the "second" cell of such a character.

$bold = $cell->bold

$underline = $cell->underline

$italic = $cell->italic

$reverse = $cell->reverse

$strike = $cell->strike

$small = $cell->small

Simple rendering attributes. All are boolean values, except underline which is an integer between 0 and 2 (to support double-underline).

$font = $cell->font

Font selection; an integer between 0 and 10.

$base = $cell->baseline

Baseline adjustment; zero or one of the VTERM_BASELINE_* constants.

$fg = $cell->fg

$bg = $cell->bg

The foreground and background colours, as Term::VTerm::Color instances.

AUTHOR

Paul Evans <leonerd@leonerd.org.uk>