Table of Contents

Namespace SharpConsoleUI.Panel

Classes

ClockElement

A panel element that displays the current time, auto-updating via a timer.

CustomElement

A panel element with user-provided render and click callbacks.

Elements

Static factory for creating panel element builders. Usage: Elements.StartMenu(), Elements.TaskBar(), Elements.Clock(), etc.

Panel

A single-row desktop bar with three zones (left, center, right). Manages element lifecycle, layout, rendering, and mouse routing.

PanelBuilder

Fluent builder for constructing Panel instances.

PanelElement

Abstract base class implementing IPanelElement with sensible defaults. Elements that don't need to inherit from something else should extend this.

PerformanceElement

A panel element that displays performance metrics (FPS and dirty characters). Uses a timer to invalidate periodically rather than every frame.

SeparatorElement

A panel element that displays a single separator character.

StartMenuElement

A panel element that renders a start menu button and opens the StartMenuDialog on click. Owns its own configuration, keyboard shortcut, and registered actions.

StatusTextElement

A panel element that displays markup text. Text can be updated at runtime.

TaskBarElement

A panel element that displays a clickable list of windows (task bar). Subscribes to WindowStateService events for automatic updates.

Interfaces

IPanelElement

Contract for anything that can live inside a Panel. Elements are self-contained widgets (start menu, taskbar, clock, etc.) that handle their own rendering and mouse input.

IPanelElementBuilder

Interface for panel element builders that produce IPanelElement instances.