Table of Contents

Class ZonedRenderer

Namespace
CLI.CliniCore.Service.Editor
Assembly
CLI.CliniCore.dll

Manages multiple rendering zones to enable efficient partial screen updates. Coordinates zone dependencies and handles cascading layout invalidation.

public class ZonedRenderer
Inheritance
ZonedRenderer
Inherited Members

Constructors

ZonedRenderer(ThreadSafeConsoleManager)

Creates a new zoned renderer for the specified console

public ZonedRenderer(ThreadSafeConsoleManager console)

Parameters

console ThreadSafeConsoleManager

The console manager for output operations

Methods

AddDependency(string, string)

Adds a layout dependency between two zones

public void AddDependency(string dependentZone, string dependsOnZone)

Parameters

dependentZone string

Zone that depends on another's layout

dependsOnZone string

Zone that the dependent zone relies on

ClearZone(string)

Clears a specific zone's content area

public void ClearZone(string zoneId)

Parameters

zoneId string

The zone to clear

GetZoneBounds(string)

Gets the current boundaries of a zone

public Region? GetZoneBounds(string zoneId)

Parameters

zoneId string

The zone identifier

Returns

Region

The zone's current bounds, or null if not found

GetZoneIds()

Gets all registered zone identifiers

public IEnumerable<string> GetZoneIds()

Returns

IEnumerable<string>

Collection of zone IDs

InvalidateAll()

Marks all zones as needing redraw

public void InvalidateAll()

InvalidateZone(string)

Marks a specific zone as needing redraw

public void InvalidateZone(string zoneId)

Parameters

zoneId string

The zone to invalidate

IsZoneDirty(string)

Checks if a zone exists and is dirty

public bool IsZoneDirty(string zoneId)

Parameters

zoneId string

The zone to check

Returns

bool

True if the zone exists and needs rendering

RegisterZone(string, Region, Action<RenderZone, object?>, int)

Registers a new rendering zone with its render callback

public void RegisterZone(string zoneId, Region bounds, Action<RenderZone, object?> renderer, int renderPriority = 100)

Parameters

zoneId string

Unique identifier for the zone

bounds Region

Initial spatial boundaries

renderer Action<RenderZone, object>

Callback function to render this zone's content

renderPriority int

Render order priority (lower renders first)

RenderDirtyZones(object?)

Renders all dirty zones in priority order

public void RenderDirtyZones(object? renderData = null)

Parameters

renderData object

Optional data to pass to zone renderers

RenderZones(IEnumerable<string>, object?)

Renders specific zones regardless of dirty state

public void RenderZones(IEnumerable<string> zoneIds, object? renderData = null)

Parameters

zoneIds IEnumerable<string>

The zones to render

renderData object

Optional data to pass to zone renderers

UpdateZoneBounds(string, Region)

Updates a zone's boundaries and triggers dependency cascades

public void UpdateZoneBounds(string zoneId, Region newBounds)

Parameters

zoneId string

The zone to update

newBounds Region

New spatial boundaries

Events

ZoneLayoutChanged

Event fired when a zone's layout changes and affects other zones

public event Action<string, Region, Region>? ZoneLayoutChanged

Event Type

Action<string, Region, Region>