Table of Contents

Namespace SharpConsoleUI.Core

Classes

ActivationBlockedEventArgs

Event arguments for activation blocked events

ButtonColorSet

Immutable record representing a color set for a button control.

CacheState

Thread-safe cache state manager for controls. Tracks validation state, rendering status, and invalidation reasons.

CursorState

Immutable record representing the current state of the cursor. Provides a single source of truth for cursor visibility, position, and ownership.

CursorStateChangedEventArgs

Event arguments for cursor state changes

CursorStateService

Centralized service for managing cursor state across the window system. Provides a single source of truth for cursor visibility, position, and ownership.

DesktopPortal

A desktop-level portal that renders above all windows. Portals are lightweight render overlays managed by DesktopPortalService.

DesktopPortalOptions

Options for creating a desktop portal.

DesktopPortalService

Manages desktop-level portals — lightweight render overlays that appear above all windows. Portals render after windows in the normal render pass and never interfere with window rendering.

DisposableManager

Manager for tracking and disposing resources in a coordinated manner

DisposableManagerExtensions

Extension methods for easier resource management

DisposalScope

A disposal scope that can register resources for disposal when the scope is disposed

DragState

State of an active drag operation

EditOperation

Represents an undoable edit operation

EditState

Immutable record representing the edit state of a text control

EditStateChangedEventArgs

Event arguments for edit state changes

FocusChangedEventArgs

Event args for FocusChanged.

FocusManager

Manages focus within a single Window. This is the single source of truth for which control has focus. Use SetFocus(IFocusableControl?, FocusReason) to move focus programmatically, MoveFocus(bool) to advance via Tab, and HandleClick(IWindowControl?) to focus via mouse.

IdleStateEventArgs

Event arguments for idle state changes

InputStateService

Centralized service for managing input state. Provides input queue management, modifier tracking, and input history.

InteractionState

Current mouse interaction state (drag or resize operation)

InteractionStateChangedEventArgs

Event arguments for interaction (drag/resize) state changes

InvalidationManager

Thread-safe invalidation manager that coordinates all invalidation requests. Implements singleton pattern and batches rapid invalidation requests for efficiency.

InvalidationRequest

Represents an invalidation request for a control.

KeyPressEventArgs

Event arguments for key press events

LayoutAllocation

Represents the allocated space for a control after layout calculation

LayoutRequirements

Controls express sizing and alignment needs via this record. Single source of truth for all layout-related information.

LayoutState

Complete layout state for a control, tracking requirements, allocation, and actual dimensions

ModalState

Immutable record representing the current modal state. Tracks modal window stack and parent-child relationships.

ModalStateChangedEventArgs

Event arguments for modal state changes

ModalStateService

Centralized service for managing modal window state. Handles modal window stack, parent-child relationships, and activation blocking.

NotificationEventArgs

Event arguments for notification state changes.

NotificationInfo

Represents the state of a single notification.

NotificationSeverity

Represents a notification severity level with associated visual properties such as colors and icons. Uses single-cell-width Unicode characters for reliable console rendering.

NotificationState

Represents the current notification system state.

NotificationStateService

Centralized service for managing notification state. Tracks active notifications, provides dismissal methods, and fires events.

PluginEventArgs

Event arguments for plugin load/unload events.

PluginState

Immutable record representing the current state of the plugin system.

PluginStateChangedEventArgs

Event arguments for plugin state changes.

PluginStateService

Service that manages the plugin system state, including plugin loading, service registration, and factory management. This service follows the established manager pattern for state management.

RegistryStateService

Integrates AppRegistry with the ConsoleWindowSystem lifecycle. Calls Load() during initialization and Save() on Dispose() (shutdown). Exposes all AppRegistry members via explicit delegation so callers don't need to unwrap an inner object.

ResizeState

State of an active resize operation

ScrollChangedEventArgs

Event arguments for scroll changes

ScrollState

Immutable record representing scroll state for a scrollable element

ServiceRegisteredEventArgs

Event arguments for service registration events.

ServiceUnregisteredEventArgs

Event arguments for service unregistration events.

StatusBarStateService

Manages status bar state, Start menu actions, and status bar bounds. Centralized state service for all status bar and start menu functionality.

TextChangedEventArgs

Event arguments for text changes

TextPosition

Represents a text position (line and column).

TextSelection

Represents a text selection (start and end positions)

ThemeChangedEventArgs

Event arguments for theme changes

ThemeStateService

Centralized service for managing theme state. Provides change notifications when theme is updated.

WindowActivatedEventArgs

Event arguments for window activation changes

WindowColorSet

Immutable record representing a color set for a window.

WindowEventArgs

Event arguments for individual window events

WindowStateEventArgs

Event arguments for window state (minimize/maximize/restore) changes

WindowStateService

Centralized service for managing window system state. Provides a single source of truth for window collection, active window, and interaction state (drag/resize operations).

WindowSystemState

Immutable snapshot of the entire window system state. Provides a single source of truth for window management.

WindowSystemStateChangedEventArgs

Event arguments for window system state changes. Provides both previous and new state for comparison.

Interfaces

ICursorShapeProvider

Interface for controls that can specify a preferred cursor shape. Controls implementing this interface can customize how the cursor appears when focused.

Enums

CursorShape

Represents the shape/style of the cursor

EditChangeReason

Reason for an edit state change

EditOperationType

Types of edit operations for undo/redo

InvalidationReason

Specifies the reasons why a control or container needs invalidation. This is a flags enumeration allowing multiple reasons to be combined.

LayoutChangeReason

Reason for a layout change.

NotificationSeverityEnum

Specifies the severity level for notifications.

ScrollChangeReason

Reason for a scroll change

WindowEventType

Types of window events