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