Skip to content

@jsvision/ui / DrawContext

Interface: DrawContext ​

Defined in: ui/src/view/types.ts:38

The stateless, view-local, auto-clipped paint API handed to View.draw(ctx). Coordinates are view-local: (0, 0) is this view's top-left. The context offsets to the view's absolute screen position and clips to the view's rect intersected with its ancestors', silently dropping any write that falls outside — so a widget can draw freely without worrying about overflow.

Properties ​

caps ​

readonly caps: CapabilityProfile

Defined in: ui/src/view/types.ts:61

The resolved terminal capabilities for this frame. Read caps.glyphs/caps.unicode at draw time to pick an ASCII vs. Unicode glyph form (e.g. a progress bar's #/- fallback on a terminal that can't render block characters). This is the same capability profile the renderer encodes with, so your glyph choice and the renderer's fallback always agree.


revealAccelerators ​

readonly revealAccelerators: boolean

Defined in: ui/src/view/types.ts:69

Whether the accelerator (hotkey) overlay is revealed this frame. While true, a widget that draws a ~X~ hotkey should underline the hot glyph so every reachable shortcut lights up at once. The render root toggles it via setRevealAccelerators and clamps it to the active dispatch scope, so a background window behind a modal draws it as false. Default false; widgets that ignore it are unaffected.


size ​

readonly size: Size2D

Defined in: ui/src/view/types.ts:54

The view's content size, in cells.

Methods ​

box() ​

box(x, y, w, h, style?, title?): void

Defined in: ui/src/view/types.ts:43

Parameters ​

x ​

number

y ​

number

w ​

number

h ​

number

style? ​

Style

title? ​

string

Returns ​

void


color() ​

color(role): Style

Defined in: ui/src/view/types.ts:46

Resolve a named theme role to a Style (foreground/background).

Parameters ​

role ​

keyof Theme

Returns ​

Style


fill() ​

fill(char, style?): void

Defined in: ui/src/view/types.ts:42

Fill the whole view rect.

Parameters ​

char ​

string

style? ​

Style

Returns ​

void


fillRect() ​

fillRect(x, y, w, h, char, style?): void

Defined in: ui/src/view/types.ts:40

Parameters ​

x ​

number

y ​

number

w ​

number

h ​

number

char ​

string

style? ​

Style

Returns ​

void


role() ​

role<K>(name): Theme[K]

Defined in: ui/src/view/types.ts:52

Resolve a named theme role to its full role object, including extras that color drops (a desktop background pattern glyph, a window's border/title colors). Chrome widgets use this; the generic K keeps role('window').border type-safe with no cast.

Type Parameters ​

K ​

K extends keyof Theme

Parameters ​

name ​

K

Returns ​

Theme[K]


shadow() ​

shadow(x, y, w, h, style?): void

Defined in: ui/src/view/types.ts:44

Parameters ​

x ​

number

y ​

number

w ​

number

h ​

number

style? ​

Style

Returns ​

void


text() ​

text(x, y, str, style?): void

Defined in: ui/src/view/types.ts:39

Parameters ​

x ​

number

y ​

number

str ​

string

style? ​

Style

Returns ​

void