Skip to content

Modern Tui TuiStyle Patch

Paul Squires edited this page Oct 19, 2026 · 6 revisions

Home › Terminal TUI Library › Colour and Style › TuiStyle.Patch

TuiStyle.Patch

Returns this style with another laid over it, keeping whatever the other leaves unset.

Syntax

TuiStyle.Patch( byval over as TuiStyle ) as TuiStyle

Description

Compose two styles: over supplies only what it SETS, and everything else is kept. This is the single most important call in the styling layer, because ASSIGNING a style replaces it -- drawing with a style whose background is default erases whatever was filled underneath. A focused text input once punched a black hole through its own focus fill exactly this way.

Example

#import "std/tui"
using tui

dim as TuiStyle base_ = TuiStyleOf( TuiRgb( 200, 200, 200 ), TuiRgb( 20, 20, 30 ), TUIATTR_NONE )
dim as TuiStyle accent = TuiStyleOf( TuiRgb( 250, 180, 60 ), TuiDefaultColor( ), TUIATTR_BOLD )

dim as TuiStyle merged = base_.Patch( accent )
print merged.fg.r, merged.fg.g, merged.fg.b     '' 250 180 60 -- accent's fg
print merged.bg.r, merged.bg.g, merged.bg.b     '' 20 20 30   -- base's bg SURVIVES
print merged.HasAttr( TUIATTR_BOLD )            '' true

'' the wrong way, kept here because it is the bug people write
'' merged = accent          <- the background is now the terminal default

See also

TuiColor TuiColor.Equals TuiDefaultColor TuiIndexed TuiBlack TuiGreen
TuiColor.IsDefault TuiColor.Index TuiAnsi TuiRgb TuiRed TuiYellow

Library: Terminal TUI Library
Category: Terminal TUI Library
Documented under: Colour and Style
Working examples: hello.tiko · form.tiko · dashboard.tiko


Home · Keyword Index

Clone this wiki locally