Reference

Alphabetical

Name

Description

Alignment

Alignment of text or graphics in a box.

Anchor

Anchor describes a location inside a rectangular area using a combination of a vertical and a horizontal component.

BufferDrawOptions

Options for drawing a buffer onto another buffer.

BufferResizeMode

Describes how a buffer resize should handle existing content.

Backend

The interface to the underlying platform.

BackendPtr

Shared pointer to a backend instance.

Background

The background color.

Bitmap

A mutable bitmap storing boolean pixels in row-major order.

BitmapColorMode

The mode how color is applied to the bitmap.

BitmapDrawOptions

The options to draw a bitmap.

BitmapScaleMode

The mode how the bitmap is scaled.

Buffer

A mutable 2D buffer storing characters and colors for rendering.

BufferConstRefView

A view that uses a reference to the content.

BufferView

A view that uses a shared pointer to the content.

BufferViewBase

The base class for all buffer views.

Char

Represents a character string with foreground and background colors.

CharAttributes

Represents optional ANSI text attributes such as bold, underline, or strikethrough.

CharStyle

Combines a Color value with CharAttributes into one reusable text style.

Char16Style

Defines a style for drawing tiles.

Char16StylePtr

Shared pointer for Char16Style

CharCombinationStyle

A style how two characters are visually combined to a new one.

CharCombinationStylePtr

Shared pointer for CharCombinationStyle

WriteClippedBuffer

A write-clipped buffer that owns a shared pointer to the wrapped buffer.

WriteClippedBufferBase

The shared base for writable buffer clipping wrappers.

WriteClippedBufferRef

A write-clipped buffer that stores a reference to the wrapped buffer.

Color

A foreground/background color pair for terminal rendering.

ColorBase

Shared implementation for foreground and background color values.

ColorBase::Value

Internal color identifiers used for ANSI conversion and parsing.

ColorList

A list of terminal colors.

ColorPart

A foreground or background color.

ColorRole

The type color.

ColorSequence

A configurable sequence of complete Color values with run-length style counts.

CropEdges

Flags for crop edges and corners.

Coordinate

Signed integer coordinate value used by the geometry classes.

CursorBuffer

A remapped buffer with cursor-style writing, wrapping, and scrollback behavior.

CursorBuffer::OverflowMode

Controls whether cursor writes wrap, scroll, or grow the buffer at the bottom edge.

CursorWriter

The shared interface for buffers and terminals that support cursor-based output.

Direction

A direction in a 2D grid.

Direction::Enum

The canonical enum values used by Direction.

EncodingErrors

How to handle encoding or Unicode normalization errors.

FastCharSet

Shared immutable character set with optimized lookup for common separator patterns.

FastCharSet::FastTrack

Fast-track mode for common separator patterns.

FastCharSetPtr

Shared pointer for FastCharSet.

Font

A bitmap font used to render stylized terminal text.

FontGlyph

A bitmap glyph that can be used by a terminal text font.

FontPtr

Shared pointer to a terminal font.

Foreground

The foreground color.

FrameColorMode

The mode how animated colors are applied to frames.

FrameDrawOptions

The options to draw a frame.

FrameStyle

Various box styles

HtmlRenderer

A renderer for HTML content to strings or cursor writer targets.

Input

Reads key presses from the console depending on the configured mode.

Input::Mode

Supported reading modes for the input backend.

InputDefinition

Definition of a single key mapping for a specific input mode.

InputDefinition::ForMode

The input modes to which a key definition can apply.

InputDefinitionList

A list of input definitions.

Orientation

Represents the orientation of a layout or a direction.

Key

A simple representation of a key press.

Key::Type

Supported key kinds.

Keys

An ordered set of unique key presses for key bindings.

Margins

Represents margins (top, right, bottom, left) around a rectangle.

MatrixCombinationStyle

A class that combines characters through an indexed result matrix.

MoveMode

The cursor move mode.

ParagraphBackgroundMode

How paragraph rendering extends the background color beyond the visible text.

ParagraphIndents

Shared indentation and margin settings for paragraph-like text rendering.

ParagraphOnError

The fallback to use when paragraph layout becomes impossible.

ParagraphOptions

Options that control paragraph wrapping, indentation, tab handling, and fallback behavior.

ParagraphSpacing

The spacing between explicit newline-separated paragraphs.

Position

Represents a 2D integer position or vector (x, y).

ReadableBuffer

A readable buffer.

RemappedBuffer

A buffer optimized for row and column remapping operations.

Rectangle

Axis-aligned rectangle represented by a top-left position and size.

SimpleCharCombinationStyle

A class to use a simple map to combine styles.

Size

A non-negative 2D size (width × height).

String

A terminal string represented as a sequence of Char values.

StringLines

A sequence of wrapped terminal text lines.

TabOverflowBehavior

The handling for tabs whose configured tab stop does not advance the current line.

Terminal

High-level terminal interface for screen control, color output, and key input.

TerminalFlag

A terminal flag.

TerminalFlags

A set of terminal flags.

Terminal::OutputMode

The output mode for the terminal.

Terminal::RefreshMode

Screen clearing strategy used between rendered frames.

TerminalPtr

Shared pointer to a terminal instance.

Text

Describes a text block to render into a Buffer.

TextOptions

Options for text rendering.

TextAnimation

Supported text animation styles used by Buffer::drawText().

TerminalSession

A scoped terminal session.

Tile9Style

Defines a style for repeating a 3x3 tile pattern across a rectangle.

Tile9StylePtr

Shared pointer for Tile9Style

text::Style

A style for text formatting.

text::StyleListKind

Qualifies list-specific style selectors for bullet and numbered lists.

text::StyleRole

Semantic roles used by rich-text selectors such as paragraph, heading, span, or link.

text::StyleMarker

The visible marker configuration used for bullet and numbered list items.

text::StyleSelector

A selector that targets semantic roles, levels, list kinds, and style tokens.

text::StyleRule

One resolved or stored rich-text style rule.

theme::BlockRole

Named roles for the sixteen themed block code points.

theme::Element

A fast theme element identifier.

theme::Identifier

A strongly typed numeric theme identifier.

theme::IdentifierType

The logical kind of a theme identifier.

theme::Part

A fast theme part identifier.

theme::Properties

Authoring values for one theme property sheet.

theme::PropertyEditor

Mutable editor for one property sheet while a theme is being built.

theme::PropertySheet

Effective values for one resolved theme selector.

theme::Selector

A compiled selector for one themed element part with required states and tags.

theme::State

A single UI state flag used in theme selectors.

theme::States

A compact set of UI state flags used in theme selector matching.

theme::Tag

A theme tag bit assigned by a theme builder.

theme::Tags

A compact set of theme tags.

theme::Theme

Immutable theme built from hierarchical property sheets.

theme::ThemeAccessor

Read-only theme accessor for the current selector.

theme::ThemeBuilder

Builder for immutable themes.

theme::ThemePainter

Thin convenience painter for rendering themed blocks into a writable buffer.

text::TextNode

A node in the text tree.

text::TextNode::Type

The node type.

ui::Application

UI Application instance for event-driven UI applications.

ui::AbstractSurfaceContainer

Abstract interface for surface child containers.

ui::DimensionPolicy

The size policy of a single surface dimension.

ui::Display

A display is a way to show pages on a terminal.

ui::Centered

A one-child layout that centers its content inside padded available space.

ui::Event

A single event.

ui::EventData

The base class for event data.

ui::EventDriver

Event driver for creating event-driven applications.

ui::EventScheduler

A scheduler for events.

ui::EventThread

A thread that executes queued invocations via the UI event system.

ui::EventType

The event type

ui::Frame

A one-child layout that surrounds its content with a themed frame and optional title.

ui::LayoutMetrics

The measured and configured layout metrics of a surface.

ui::LayoutMetricsEditor

An editor for changing surface layout metrics with layout invalidation.

ui::Action

A shared UI action with keys, help metadata, enablement, and a trigger callback.

ui::Actions

Ordered action container attached to a surface or page.

ui::ActionTriggerContext

Context passed to an action callback when it is triggered.

ui::HelpData

Display metadata for a user-interface action.

ui::KeyPressEvent

A key press event.

ui::Layout

A layout is a surface that arranges other surfaces in a specific way.

ui::Page

A single page on the screen.

ui::PaintContext

The paint context for the onPaint method.

ui::ThemeContext

The resolved theme scope used during layout and painting.

ui::Panel

A fill surface that paints an optional background behind its child surfaces.

ui::QuitEvent

The data for a quit event.

ui::ScheduledActionRef

Represents a scheduled action.

ui::Scheduler

A scheduler for UI actions.

ui::ScrollArea

A scroll area layout that displays one content surface with optional scroll bars.

ui::ScrollBarMode

Visibility mode for scroll bars in scrollable surfaces.

ui::ScrollCorner

The one-cell fill surface where horizontal and vertical scroll bars meet.

ui::ScrollingBufferView

A surface that shows and scrolls a viewport onto a readable buffer.

ui::SizePolicy

The size policy for both width and height of a surface.

ui::Stack

A layout that stacks surfaces vertically or horizontally.

ui::SurfaceContainer

Ordered child surface collection for one surface.

ui::DynamicTextLine

A composed one-line surface with managed dynamic text sections.

ui::DynamicTextLine::Section

The three logical sections of a line.

ui::DynamicTextLine::SpacePriority

Layout priority used when a line section does not fit.

ui::AbstractScrollBar

The shared base for visual scroll bar surfaces.

ui::AbstractScrollArea

Shared base for scrollable surfaces that paint custom content into a viewport.

ui::HorizontalScrollBar

A one-row horizontal scroll bar that grows in width.

ui::ActionHelp

A compact keyboard-help surface generated from currently available actions.

ui::DynamicText

A one-line text surface with static, resize, and repaint update modes.

ui::FooterLine

A footer with dynamic text, automatic action help, and queued message overlays.

ui::HeaderLine

A field-based one-line header with its own theme element.

ui::StopSource

Stop source used by the event system to request a cooperative shutdown.

ui::StopToken

Cooperative stop token passed to stoppable UI callbacks.

ui::Surface

A surface is a rectangular area on a page.

ui::TextBox

A surface that renders one string using TextOptions-derived alignment and wrapping rules.

ui::VerticalScrollBar

A one-column vertical scroll bar that grows in height.

ui::Viewport

A layout surface that clips, positions, and scrolls one content surface.

UpdateSettings

Settings controlling how Terminal::updateScreen() renders a buffer.

WritableBuffer

Abstract writable terminal buffer interface.

bg

Short alias for Background.

fg

Short alias for Foreground.

By Topic

Topic

Description

Bitmap

Bitmap is the low-level pixel container used by the library whenever a boolean mask needs to be rendered, copied, or transformed. A bitmap stores only on/off pixels; the actual terminal representation is chosen later by Buffer::drawBitmap() and BitmapDrawOptions.

Buffer Views

Buffer views expose a rectangular window onto a larger readable buffer. They are useful whenever the logical content is bigger than the visible terminal area, for example in scrollable panels, minimaps, editors, and diagnostic tools.

Backend

The backend classes connect Terminal to the actual console, host environment, or test harness. Most applications use the built-in backend, while advanced integrations can inject a custom implementation.

Buffer

The buffer classes represent rendered terminal content in memory before it is written to the screen. ReadableBuffer provides the inspection API, WritableBuffer adds mutation and drawing operations, Buffer is the concrete 2D storage type used in most applications, and CursorBuffer adds cursor-based streaming output.

Color

The color classes provide access to the standard 16 terminal colors and their combinations. They are used to style terminal output, buffer cells, and text elements throughout the library.

Cursor Output

CursorWriter defines the shared streaming API used by Terminal and CursorBuffer. It focuses on incremental output, active color and attribute state, cursor movement, and wrapped paragraph printing.

Frames, Borders, and Tiles

The drawing types define how frames, borders, filled areas, and character combinations are rendered into writable buffers. They are the main building blocks for boxes, panels, decorative borders, tiled fills, and line-art style layouts.

Font

The font classes allow you to render large bitmap-based text directly in the terminal. Fonts are primarily used for titles, banners, and other decorative elements in terminal interfaces.

Strings and Chars

Char, CharAttributes, CharStyle, and String are the reusable terminal-text value types used to store styled characters, measure Unicode-aware width, and split or wrap terminal text before rendering.

Geometry

The geometry classes provide the building blocks for positioning and layout inside a terminal buffer. They describe sizes, positions, rectangles, and directions, and allow you to derive new regions from existing ones.

Input

The input classes provide access to keyboard input from the terminal. They are designed for interactive applications such as dashboards, tools, and terminal games that need immediate key handling.

Paragraph Options

ParagraphOptions collects the low-level layout rules for wrapped terminal paragraphs. The same object model is used by Terminal::printParagraph(), TextOptions, and Text, so one paragraph configuration can be reused for direct terminal output and buffer-based text rendering.

Rich Text and HTML

The rich-text helpers parse a focused HTML subset into TextNode trees and render it either into String values or directly to CursorWriter targets. Style lets you tune headings, lists, code blocks, block margins, and inline emphasis without inventing a separate markup pipeline for terminal output.

Terminal

The terminal classes provide the runtime connection between your rendered content and the real console. Terminal manages initialization, refresh strategy, full-screen updates, input access, and direct output for interactive applications.

Text Rendering

Text, TextOptions, and TextAnimation render strings into rectangles, wrapped paragraphs, animated labels, and reusable text presets inside writable buffers.

Themes

Themes centralize the colors, text attributes, block shapes, and content margins used by the UI framework. They let applications switch visual styles at runtime while keeping paint loops fast and control APIs small.

UI Events and Scheduling

The UI event classes provide the queues, timers, cooperative-stop signals, and worker-thread building blocks behind Application. Most apps use them indirectly, but advanced integrations can drive EventDriver, EventScheduler, Scheduler, or EventThread directly when they need custom orchestration.

UI Framework

The UI framework builds terminal applications from a surface tree with pages, layouts, geometry policies, focus routing, and paint invalidation. It provides the high-level structure for interactive full-screen apps that should feel more like a widget system than hand-written buffer math.