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.

ControlFocusEventArgs

Event arguments for control focus events

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.

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

FocusState

Immutable record representing the current focus state. Provides a single source of truth for focus across the window system.

FocusStateChangedEventArgs

Event arguments for focus state changes

FocusStateService

Centralized service for managing focus state across the window system. Provides a single source of truth for which window and control has focus.

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.

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.

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

FocusChangeReason

Reason for a focus change

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