diff --git a/.tg-docs/INDEX.md b/.tg-docs/INDEX.md index b6fa2a9e43..969fef1513 100644 --- a/.tg-docs/INDEX.md +++ b/.tg-docs/INDEX.md @@ -21,52 +21,53 @@ Instead of embedding descriptions, it points to actual source files that agents [Terminal.Gui Source Index]|root: ./Terminal.Gui |IMPORTANT: Prefer retrieval-led reasoning over pre-training-led reasoning. Read files when needed. |.:{ModuleInitializers.cs} -|App:{Application.cs,ApplicationImpl.cs,ApplicationImpl.Driver.cs,ApplicationImpl.Lifecycle.cs,ApplicationImpl.Run.cs,ApplicationImpl.Screen.cs,ApplicationModelUsage.cs,ApplicationNavigation.cs,ApplicationPopover.cs,IApplication.cs,Logging.cs,NotInitializedException.cs} +|App:{Application.cs,ApplicationImpl.cs,ApplicationImpl.Driver.cs,ApplicationImpl.Lifecycle.cs,ApplicationImpl.Run.cs,ApplicationImpl.Screen.cs,ApplicationModelUsage.cs,ApplicationNavigation.cs,ApplicationPopover.cs,ApplicationToolTip.cs,IApplication.cs,Logging.cs,NotInitializedException.cs} |App/Clipboard:{Clipboard.cs,ClipboardBase.cs,ClipboardProcessRunner.cs,IClipboard.cs} |App/CWP:{CancelEventArgs.cs,CWPEventHelper.cs,CWPPropertyHelper.cs,CWPWorkflowHelper.cs,EventArgs.cs,ResultEventArgs.cs,ValueChangedEventArgs.cs,ValueChangingEventArgs.cs} |App/Keyboard:{ApplicationKeyboard.cs,IKeyboard.cs} |App/Legacy:{Application.Clipboard.cs,Application.Driver.cs,Application.Keyboard.cs,Application.Lifecycle.cs,Application.Mouse.cs,Application.Navigation.cs,Application.Popovers.cs,Application.Run.cs,Application.Screen.cs,Application.TopRunnable.cs} |App/MainLoop:{ApplicationMainLoop.cs,IApplicationMainLoop.cs,IMainLoopCoordinator.cs,MainLoopCoordinator.cs,MainLoopSyncContext.cs} |App/Mouse:{ApplicationMouse.cs,IMouse.cs,IMouseGrabHandler.cs} -|App/Popovers:{IPopover.cs,IPopoverView.cs,Popover.cs,PopoverImpl.cs} +|App/Popovers:{IPopover.cs,IPopoverView.cs,Popover.cs,PopoverImpl.cs,ToolTipHost.cs,ToolTipProvider.cs} |App/Runnable:{IRunnable.cs,SessionToken.cs,SessionTokenEventArgs.cs} |App/Timeout:{ITimedEvents.cs,LogarithmicTimeout.cs,SmoothAcceleratingTimeout.cs,TimedEvents.cs,Timeout.cs,TimeoutEventArgs.cs} |App/Tracing:{ITraceBackend.cs,ListBackend.cs,LoggingBackend.cs,NullBackend.cs,Trace.cs,TraceCategory.cs,TraceEntry.cs,TraceScope.cs} -|Configuration:{AppSettingsScope.cs,AttributeJsonConverter.cs,ColorJsonConverter.cs,ConcurrentDictionaryJsonConverter.cs,ConfigLocations.cs,ConfigProperty.cs,ConfigurationManager.cs,ConfigurationManagerEventArgs.cs,ConfigurationManagerNotEnabledException.cs,ConfigurationPropertyAttribute.cs,DeepCloner.cs,DictionaryJsonConverter.cs,KeyCodeJsonConverter.cs,KeyJsonConverter.cs,RuneJsonConverter.cs,SchemeJsonConverter.cs,SchemeManager.cs,Scope.cs,ScopeJsonConverter.cs,SettingsScope.cs,SourceGenerationContext.cs,SourcesManager.cs,ThemeManager.cs,ThemeScope.cs,TraceCategoryJsonConverter.cs} +|Configuration:{AppSettingsScope.cs,AttributeJsonConverter.cs,ColorJsonConverter.cs,ConcurrentDictionaryJsonConverter.cs,ConfigLocations.cs,ConfigProperty.cs,ConfigurationManager.cs,ConfigurationManagerEventArgs.cs,ConfigurationManagerNotEnabledException.cs,ConfigurationPropertyAttribute.cs,DeepCloner.cs,DictionaryJsonConverter.cs,KeyArrayJsonConverter.cs,KeyCodeJsonConverter.cs,KeyJsonConverter.cs,RuneJsonConverter.cs,SchemeJsonConverter.cs,SchemeManager.cs,Scope.cs,ScopeJsonConverter.cs,SettingsScope.cs,SourceGenerationContext.cs,SourcesManager.cs,ThemeManager.cs,ThemeScope.cs,TraceCategoryJsonConverter.cs} |Drawing:{Attribute.cs,Cell.cs,CellEventArgs.cs,FillPair.cs,Glyphs.cs,Gradient.cs,GradientFill.cs,GraphemeHelper.cs,IFill.cs,Region.cs,RegionOp.cs,Ruler.cs,Scheme.cs,Schemes.cs,SolidFill.cs,TextStyle.cs,Thickness.cs,VisualRole.cs,VisualRoleEventArgs.cs} |Drawing/Color:{AnsiColorCode.cs,Color.ColorExtensions.cs,Color.ColorName.cs,Color.ColorParseException.cs,Color.cs,Color.Formatting.cs,Color.Operators.cs,ColorModel.cs,ColorQuantizer.cs,ColorStrings.cs,IColorDistance.cs,IColorNameResolver.cs,ICustomColorFormatter.cs,StandardColor.cs,StandardColors.cs,StandardColorsNameResolver.cs} -|Drawing/LineCanvas:{IntersectionDefinition.cs,IntersectionRuneType.cs,IntersectionType.cs,LineCanvas.cs,LineStyle.cs,StraightLine.cs,StraightLineExtensions.cs} +|Drawing/LineCanvas:{IntersectionDefinition.cs,IntersectionRuneType.cs,IntersectionType.cs,LineCanvas.cs,LineDirections.cs,LineStyle.cs,StraightLine.cs,StraightLineExtensions.cs} |Drawing/Quant:{EuclideanColorDistance.cs,IPaletteBuilder.cs,PopularityPaletteWithThreshold.cs} |Drawing/Sixel:{SixelEncoder.cs,SixelSupportDetector.cs,SixelSupportResult.cs,SixelToRender.cs} -|Drivers:{ComponentFactoryImpl.cs,Cursor.cs,CursorStyle.cs,Driver.cs,DriverImpl.cs,DriverRegistry.cs,IComponentFactory.cs,IDriver.cs,ISizeMonitor.cs,PlatformDetection.cs,SizeMonitorImpl.cs} -|Drivers/AnsiDriver:{AnsiComponentFactory.cs,AnsiInput.cs,AnsiInputProcessor.cs,AnsiOutput.cs,AnsiPlatform.cs,AnsiSizeMonitor.cs,AnsiTerminalHelper.cs,FakeClipboard.cs,WindowsVTInputHelper.cs,WindowsVTOutputHelper.cs} +|Drivers:{ComponentFactoryImpl.cs,Cursor.cs,CursorStyle.cs,Driver.cs,DriverImpl.cs,DriverRegistry.cs,IComponentFactory.cs,IDriver.cs,ISizeMonitor.cs,PlatformDetection.cs,SizeDetectionMode.cs,SizeMonitorImpl.cs,TuiPlatform.cs} +|Drivers/AnsiDriver:{AnsiComponentFactory.cs,AnsiInput.cs,AnsiInputProcessor.cs,AnsiOutput.cs,AnsiPlatform.cs,AnsiSizeMonitor.cs,AnsiTerminalHelper.cs,FakeClipboard.cs} |Drivers/AnsiHandling:{AnsiEscapeSequence.cs,AnsiEscapeSequenceRequest.cs,AnsiKeyboardEncoder.cs,AnsiKeyboardParser.cs,AnsiKeyboardParserPattern.cs,AnsiKeyConverter.cs,AnsiMouseEncoder.cs,AnsiMouseParser.cs,AnsiRequestScheduler.cs,AnsiResponseExpectation.cs,AnsiResponseParser.cs,AnsiResponseParserBase.cs,AnsiResponseParserState.cs,AnsiResponseParserTInputRecord.cs,CsiCursorPattern.cs,CsiKeyPattern.cs,EscAsAltPattern.cs,GenericHeld.cs,IAnsiResponseParser.cs,IHeld.cs,KittyKeyboardFlags.cs,KittyKeyboardPattern.cs,KittyKeyboardProtocolDetector.cs,KittyKeyboardProtocolResult.cs,Osc8UrlLinker.cs,ReasonCannotSend.cs,Ss3Pattern.cs,StringHeld.cs,TerminalColorDetector.cs} |Drivers/AnsiHandling/EscSeqUtils:{EscSeqReqStatus.cs,EscSeqRequests.cs,EscSeqUtils.cs} -|Drivers/DotNetDriver:{INetInput.cs,NetComponentFactory.cs,NetInput.cs,NetInputProcessor.cs,NetKeyConverter.cs,NetOutput.cs,NetWinVTConsole.cs} +|Drivers/DotNetDriver:{INetInput.cs,NetComponentFactory.cs,NetInput.cs,NetInputProcessor.cs,NetKeyConverter.cs,NetOutput.cs} |Drivers/Input:{ConsoleInputSource.cs,IInput.cs,IInputProcessor.cs,IInputSource.cs,InputImpl.cs,InputProcessorImpl.cs,InputRecord.cs,ITestableInput.cs,TestInputSource.cs} |Drivers/Keyboard:{ConsoleKeyInfoExtensions.cs,ConsoleKeyMapping.cs,IKeyConverter.cs,KeyCode.cs,VK.cs} |Drivers/Mouse:{MouseButtonClickTracker.cs,MouseInterpreter.cs} |Drivers/Output:{IOutput.cs,IOutputBuffer.cs,OutputBase.cs,OutputBufferImpl.cs} |Drivers/TerminalEnvironment:{ColorCapabilityLevel.cs,TerminalColorCapabilities.cs,TerminalEnvironmentDetector.cs} -|Drivers/UnixDriver:{IUnixInput.cs,SuspendHelper.cs,UnixClipboard.cs,UnixComponentFactory.cs,UnixInput.cs,UnixInputProcessor.cs,UnixIOHelper.cs,UnixOutput.cs,UnixRawModeHelper.cs,UnixTerminalHelper.cs} +|Drivers/UnixHelpers:{SuspendHelper.cs,UnixClipboard.cs,UnixIOHelper.cs,UnixRawModeHelper.cs,UnixTerminalHelper.cs} |Drivers/WindowsDriver:{ClipboardImpl.cs,CursorVisibility.cs,IWindowsInput.cs,WindowsComponentFactory.cs,WindowsConsole.cs,WindowsInput.cs,WindowsInputProcessor.cs,WindowsKeyboardLayout.cs,WindowsKeyConverter.cs,WindowsKeyHelper.cs,WindowsOutput.cs} +|Drivers/WindowsHelpers:{NetWinVTConsole.cs,WindowsConsoleHelper.cs,WindowsVTInputHelper.cs,WindowsVTOutputHelper.cs} |FileServices:{DefaultSearchMatcher.cs,FileSystemColorProvider.cs,FileSystemIconProvider.cs,FileSystemInfoStats.cs,FileSystemTreeBuilder.cs,IFileOperations.cs,ISearchMatcher.cs} |Input:{Command.cs,CommandBinding.cs,CommandBindingsBase.cs,CommandBridge.cs,CommandContext.cs,CommandContextExtensions.cs,CommandEventArgs.cs,CommandOutcome.cs,CommandRouting.cs,IAcceptTarget.cs,ICommandBinding.cs,ICommandContext.cs} -|Input/Keyboard:{Key.cs,KeyBinding.cs,KeyBindings.cs,KeyChangedEventArgs.cs,KeyEqualityComparer.cs,KeyEventType.cs,KeystrokeNavigatorEventArgs.cs,ModifierKey.cs} +|Input/Keyboard:{Bind.cs,Key.cs,KeyBinding.cs,KeyBindings.cs,KeyChangedEventArgs.cs,KeyEqualityComparer.cs,KeyEventType.cs,KeystrokeNavigatorEventArgs.cs,ModifierKey.cs,PlatformKeyBinding.cs} |Input/Mouse:{GrabMouseEventArgs.cs,Mouse.cs,MouseBinding.cs,MouseBindings.cs,MouseFlags.cs,MouseFlagsChangedEventArgs.cs} |Resources:{GlobalResources.cs,ResourceManagerWrapper.cs,Strings.Designer.cs} |Testing:{IInputInjector.cs,InputInjectionEvent.cs,InputInjectionExtensions.cs,InputInjectionMode.cs,InputInjectionOptions.cs,InputInjector.cs} |Text:{NerdFonts.cs,RuneExtensions.cs,StringExtensions.cs,TextDirection.cs,TextFormatter.cs} |Time:{FuncTimeProvider.cs,ITimeProvider.cs,ITimer.cs,SystemTimeProvider.cs,VirtualTimeProvider.cs} -|ViewBase:{DrawAdornmentsEventArgs.cs,DrawContext.cs,DrawEventArgs.cs,IDesignable.cs,IValue.cs,View.Adornments.cs,View.Arrangement.cs,View.Command.cs,View.Content.cs,View.cs,View.Cursor.cs,View.Diagnostics.cs,View.Drawing.Attribute.cs,View.Drawing.Clipping.cs,View.Drawing.cs,View.Drawing.Primitives.cs,View.Drawing.Scheme.cs,View.Hierarchy.cs,View.Keyboard.cs,View.Layout.cs,View.Navigation.cs,View.NeedsDraw.cs,View.ScrollBars.cs,View.Text.cs,ViewCollectionHelpers.cs,ViewDiagnosticFlags.cs,ViewEventArgs.cs,ViewExtensions.cs,ViewportSettingsFlags.cs,WeakReferenceExtensions.cs} -|ViewBase/Adornment:{Adornment.cs,ArrangeButtons.cs,Arranger.cs,ArrangerButton.cs,Border.Arrangment.cs,Border.cs,BorderSettings.cs,Margin.cs,Padding.cs,ParentManipulator.cs,ShadowStyle.cs,ShadowView.cs} +|ViewBase:{DrawAdornmentsEventArgs.cs,DrawContext.cs,DrawEventArgs.cs,IDesignable.cs,IValue.cs,View.Adornments.cs,View.Arrangement.cs,View.Command.cs,View.Content.cs,View.cs,View.Cursor.cs,View.Diagnostics.cs,View.Drawing.Adornments.cs,View.Drawing.Attribute.cs,View.Drawing.Clipping.cs,View.Drawing.cs,View.Drawing.LineCanvas.cs,View.Drawing.Primitives.cs,View.Drawing.Scheme.cs,View.Hierarchy.cs,View.Keyboard.cs,View.Layout.cs,View.Navigation.cs,View.NeedsDraw.cs,View.ScrollBars.cs,View.Text.cs,ViewCollectionHelpers.cs,ViewDiagnosticFlags.cs,ViewEventArgs.cs,ViewExtensions.cs,ViewportSettingsFlags.cs,WeakReferenceExtensions.cs} +|ViewBase/Adornment:{AdornmentImpl.cs,AdornmentView.cs,ArrangeButtons.cs,Arranger.cs,ArrangerButton.cs,Border.cs,BorderSettings.cs,BorderView.Arrangement.cs,BorderView.cs,IAdornment.cs,IAdornmentView.cs,ITitleView.cs,Margin.cs,MarginView.cs,Padding.cs,PaddingView.cs,ShadowStyles.cs,ShadowView.cs,TabLayoutContext.cs,TitleView.cs} |ViewBase/EnumExtensions:{AddOrSubtractExtensions.cs,AlignmentExtensions.cs,AlignmentModesExtensions.cs,BorderSettingsExtensions.cs,DimAutoStyleExtensions.cs,DimensionExtensions.cs,DimPercentModeExtensions.cs,SideExtensions.cs,ViewDiagnosticFlagsExtensions.cs} |ViewBase/Helpers:{StackExtensions.cs} |ViewBase/Layout:{AddOrSubtract.cs,Aligner.cs,Alignment.cs,AlignmentModes.cs,Dim.cs,DimAbsolute.cs,DimAuto.cs,DimAutoStyle.cs,DimCombine.cs,Dimension.cs,DimFill.cs,DimFunc.cs,DimPercent.cs,DimPercentMode.cs,DimView.cs,LayoutEventArgs.cs,LayoutException.cs,Pos.cs,PosAbsolute.cs,PosAlign.cs,PosAnchorEnd.cs,PosCenter.cs,PosCombine.cs,PosFunc.cs,PosPercent.cs,PosView.cs,Side.cs,SizeChangedEventArgs.cs,SuperViewChangedEventArgs.cs,ViewArrangement.cs,ViewManipulator.cs} |ViewBase/Mouse:{IMouseHoldRepeater.cs,MouseHoldRepeaterImpl.cs,MouseState.cs,View.Mouse.cs} |ViewBase/Navigation:{AdvanceFocusEventArgs.cs,FocusEventArgs.cs,NavigationDirection.cs,TabBehavior.cs} |ViewBase/Orientation:{IOrientation.cs,Orientation.cs,OrientationHelper.cs} -|Views:{Bar.cs,Button.cs,CheckBox.cs,CheckState.cs,DatePicker.cs,Dialog.cs,DialogTResult.cs,DropDownList.cs,FrameView.cs,HexView.cs,HexViewEventArgs.cs,Label.cs,Line.cs,Link.cs,MessageBox.cs,NumericUpDown.cs,ProgressBar.cs,Prompt.cs,PromptExtensions.cs,ReadOnlyCollectionExtensions.cs,Shortcut.cs,StatusBar.cs,Window.cs} +|Views:{Bar.cs,Button.cs,CheckBox.cs,CheckState.cs,DatePicker.cs,Dialog.cs,DialogTResult.cs,DropDownList.cs,DropDownListTEnum.cs,FrameView.cs,HexView.cs,HexViewEventArgs.cs,Label.cs,Line.cs,Link.cs,MessageBox.cs,NumericUpDown.cs,ProgressBar.cs,Prompt.cs,PromptExtensions.cs,ReadOnlyCollectionExtensions.cs,Shortcut.cs,StatusBar.cs,Tabs.cs,Window.cs} |Views/Autocomplete:{AppendAutocomplete.cs,AutocompleteBase.cs,AutocompleteContext.cs,AutocompleteFilepathContext.cs,IAutocomplete.cs,ISuggestionGenerator.cs,PopupAutocomplete.cs,PopupAutocomplete.PopUp.cs,SingleWordSuggestionGenerator.cs,Suggestion.cs} |Views/CharMap:{CharMap.cs,UcdApiClient.cs,UnicodeRange.cs} |Views/CollectionNavigation:{CollectionNavigator.cs,CollectionNavigatorBase.cs,DefaultCollectionNavigatorMatcher.cs,ICollectionNavigator.cs,ICollectionNavigatorMatcher.cs,IListCollectionNavigator.cs,TableCollectionNavigator.cs} @@ -74,14 +75,13 @@ Instead of embedding descriptions, it points to actual source files that agents |Views/FileDialogs:{AllowedType.cs,DefaultFileOperations.cs,FileDialog.cs,FileDialogCollectionNavigator.cs,FileDialogHistory.cs,FileDialogState.cs,FileDialogStyle.cs,FileDialogTableSource.cs,FilesSelectedEventArgs.cs,FileSystemCollectionNavigationMatcher.cs,OpenDialog.cs,OpenMode.cs,SaveDialog.cs} |Views/GraphView:{Axis.cs,AxisIncrementToRender.cs,BarSeriesBar.cs,GraphCellToRender.cs,GraphView.cs,HorizontalAxis.cs,IAnnotation.cs,ISeries.cs,LegendAnnotation.cs,LineF.cs,MultiBarSeries.cs,PathAnnotation.cs,ScatterSeries.cs,Series.cs,TextAnnotation.cs,VerticalAxis.cs} |Views/LinearRange:{LinearRange.cs,LinearRangeAttributes.cs,LinearRangeConfiguration.cs,LinearRangeEventArgs.cs,LinearRangeOption.cs,LinearRangeOptionEventArgs.cs,LinearRangeStyle.cs,LinearRangeType.cs} -|Views/ListView:{IListDataSource.cs,ListView.Commands.cs,ListView.cs,ListView.Drawing.cs,ListView.Movement.cs,ListView.Selection.cs,ListViewEventArgs.cs,ListWrapper.cs} +|Views/ListView:{IListDataSource.cs,ListView.Commands.cs,ListView.cs,ListView.Drawing.cs,ListView.Movement.cs,ListView.Selection.cs,ListViewEventArgs.cs,ListViewT.cs,ListWrapper.cs} |Views/Menu:{IMenuBarEntry.cs,Menu.cs,MenuBar.cs,MenuBarItem.cs,MenuItem.cs,PopoverMenu.cs} |Views/Runnable:{Runnable.cs,RunnableTResult.cs} -|Views/ScrollBar:{ScrollBar.cs,ScrollBarVisibilityMode.cs,ScrollSlider.cs} +|Views/ScrollBar:{ScrollBar.cs,ScrollBarVisibilityMode.cs,ScrollButton.cs,ScrollSlider.cs} |Views/Selectors:{FlagSelector.cs,FlagSelectorTEnum.cs,OptionSelector.cs,OptionSelectorTEnum.cs,SelectorBase.cs,SelectorStyles.cs} |Views/SpinnerView:{SpinnerStyle.cs,SpinnerView.cs} |Views/TableView:{CellActivatedEventArgs.cs,CellColorGetterArgs.cs,CellToggledEventArgs.cs,CheckBoxTableSourceWrapper.cs,CheckBoxTableSourceWrapperByIndex.cs,CheckBoxTableSourceWrapperByObject.cs,ColumnStyle.cs,DataTableSource.cs,EnumerableTableSource.cs,IEnumerableTableSource.cs,ITableSource.cs,ListColumnStyle.cs,ListTableSource.cs,RowColorGetterArgs.cs,SelectedCellChangedEventArgs.cs,TableSelection.cs,TableStyle.cs,TableView.CellMapping.cs,TableView.cs,TableView.Drawing.cs,TableView.Mouse.cs,TableView.Navigation.cs,TableView.Selection.cs,TreeTableSource.cs} -|Views/TabView:{Tab.cs,TabChangedEventArgs.cs,TabMouseEventArgs.cs,TabRow.cs,TabStyle.cs,TabView.cs} |Views/TextInput:{ContentsChangedEventArgs.cs,DateEditor.cs,DateTextProvider.cs,HistoryText.cs,HistoryTextItemEventArgs.cs,ITextValidateProvider.cs,NetMaskedTextProvider.cs,TextEditingLineStatus.cs,TextModel.cs,TextRegexProvider.cs,TextValidateField.cs,TimeEditor.cs,TimeTextProvider.cs} |Views/TextInput/TextField:{TextField.Commands.cs,TextField.cs,TextField.Drawing.cs,TextField.History.cs,TextField.Keyboard.cs,TextField.Mouse.cs,TextField.Selection.cs,TextField.Text.cs,TextFieldAutocomplete.cs} |Views/TextInput/TextView:{TextView.Commands.cs,TextView.cs,TextView.Drawing.cs,TextView.Files.cs,TextView.Find.cs,TextView.History.cs,TextView.Keyboard.cs,TextView.Mouse.cs,TextView.Movement.cs,TextView.Scrolling.cs,TextView.Selection.cs,TextView.Text.cs,TextView.WordWrap.cs,TextViewAutocomplete.cs,WordWrapManager.cs} @@ -95,7 +95,7 @@ Instead of embedding descriptions, it points to actual source files that agents [Terminal.Gui Docs Index]|root: ./docfx/docs |IMPORTANT: Prefer retrieval-led reasoning over pre-training-led reasoning. Read files when needed. -|.:{ansihandling.md,application.md,arrangement.md,cancellable-work-pattern.md,command-diagrams.md,command.md,config.md,cursor.md,dimauto.md,drawing.md,drivers.md,events.md,getting-started.md,index.md,input-injection.md,keyboard.md,layout.md,lexicon.md,logging.md,menus.md,migratingfromv1.md,mouse.md,multitasking.md,navigation.md,newinv2.md,Popovers.md,prompt.md,scheme.md,scrolling.md,shortcut.md,showcase.md,tableview.md,treeview.md,View.md,views.md} +|.:{ansihandling.md,application.md,arrangement.md,borders.md,cancellable-work-pattern.md,command-diagrams.md,command.md,config.md,cursor.md,dimauto.md,drawing.md,drivers.md,events.md,getting-started.md,index.md,input-injection.md,keyboard.md,layout.md,lexicon.md,logging.md,menus.md,migratingfromv1.md,mouse.md,multitasking.md,navigation.md,newinv2.md,Popovers.md,prompt.md,scheme.md,scrolling.md,shortcut.md,showcase.md,tableview.md,treeview.md,View.md,views.md} --- diff --git a/AGENTS.md b/AGENTS.md index e4152dac92..7e484221d2 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -209,52 +209,53 @@ See `.claude/cookbook/` for common UI patterns: [Terminal.Gui Source Index]|root: ./Terminal.Gui |IMPORTANT: Prefer retrieval-led reasoning over pre-training-led reasoning. Read files when needed. |.:{ModuleInitializers.cs} -|App:{Application.cs,ApplicationImpl.cs,ApplicationImpl.Driver.cs,ApplicationImpl.Lifecycle.cs,ApplicationImpl.Run.cs,ApplicationImpl.Screen.cs,ApplicationModelUsage.cs,ApplicationNavigation.cs,ApplicationPopover.cs,IApplication.cs,Logging.cs,NotInitializedException.cs} +|App:{Application.cs,ApplicationImpl.cs,ApplicationImpl.Driver.cs,ApplicationImpl.Lifecycle.cs,ApplicationImpl.Run.cs,ApplicationImpl.Screen.cs,ApplicationModelUsage.cs,ApplicationNavigation.cs,ApplicationPopover.cs,ApplicationToolTip.cs,IApplication.cs,Logging.cs,NotInitializedException.cs} |App/Clipboard:{Clipboard.cs,ClipboardBase.cs,ClipboardProcessRunner.cs,IClipboard.cs} |App/CWP:{CancelEventArgs.cs,CWPEventHelper.cs,CWPPropertyHelper.cs,CWPWorkflowHelper.cs,EventArgs.cs,ResultEventArgs.cs,ValueChangedEventArgs.cs,ValueChangingEventArgs.cs} |App/Keyboard:{ApplicationKeyboard.cs,IKeyboard.cs} |App/Legacy:{Application.Clipboard.cs,Application.Driver.cs,Application.Keyboard.cs,Application.Lifecycle.cs,Application.Mouse.cs,Application.Navigation.cs,Application.Popovers.cs,Application.Run.cs,Application.Screen.cs,Application.TopRunnable.cs} |App/MainLoop:{ApplicationMainLoop.cs,IApplicationMainLoop.cs,IMainLoopCoordinator.cs,MainLoopCoordinator.cs,MainLoopSyncContext.cs} |App/Mouse:{ApplicationMouse.cs,IMouse.cs,IMouseGrabHandler.cs} -|App/Popovers:{IPopover.cs,IPopoverView.cs,Popover.cs,PopoverImpl.cs} +|App/Popovers:{IPopover.cs,IPopoverView.cs,Popover.cs,PopoverImpl.cs,ToolTipHost.cs,ToolTipProvider.cs} |App/Runnable:{IRunnable.cs,SessionToken.cs,SessionTokenEventArgs.cs} |App/Timeout:{ITimedEvents.cs,LogarithmicTimeout.cs,SmoothAcceleratingTimeout.cs,TimedEvents.cs,Timeout.cs,TimeoutEventArgs.cs} |App/Tracing:{ITraceBackend.cs,ListBackend.cs,LoggingBackend.cs,NullBackend.cs,Trace.cs,TraceCategory.cs,TraceEntry.cs,TraceScope.cs} -|Configuration:{AppSettingsScope.cs,AttributeJsonConverter.cs,ColorJsonConverter.cs,ConcurrentDictionaryJsonConverter.cs,ConfigLocations.cs,ConfigProperty.cs,ConfigurationManager.cs,ConfigurationManagerEventArgs.cs,ConfigurationManagerNotEnabledException.cs,ConfigurationPropertyAttribute.cs,DeepCloner.cs,DictionaryJsonConverter.cs,KeyCodeJsonConverter.cs,KeyJsonConverter.cs,RuneJsonConverter.cs,SchemeJsonConverter.cs,SchemeManager.cs,Scope.cs,ScopeJsonConverter.cs,SettingsScope.cs,SourceGenerationContext.cs,SourcesManager.cs,ThemeManager.cs,ThemeScope.cs,TraceCategoryJsonConverter.cs} +|Configuration:{AppSettingsScope.cs,AttributeJsonConverter.cs,ColorJsonConverter.cs,ConcurrentDictionaryJsonConverter.cs,ConfigLocations.cs,ConfigProperty.cs,ConfigurationManager.cs,ConfigurationManagerEventArgs.cs,ConfigurationManagerNotEnabledException.cs,ConfigurationPropertyAttribute.cs,DeepCloner.cs,DictionaryJsonConverter.cs,KeyArrayJsonConverter.cs,KeyCodeJsonConverter.cs,KeyJsonConverter.cs,RuneJsonConverter.cs,SchemeJsonConverter.cs,SchemeManager.cs,Scope.cs,ScopeJsonConverter.cs,SettingsScope.cs,SourceGenerationContext.cs,SourcesManager.cs,ThemeManager.cs,ThemeScope.cs,TraceCategoryJsonConverter.cs} |Drawing:{Attribute.cs,Cell.cs,CellEventArgs.cs,FillPair.cs,Glyphs.cs,Gradient.cs,GradientFill.cs,GraphemeHelper.cs,IFill.cs,Region.cs,RegionOp.cs,Ruler.cs,Scheme.cs,Schemes.cs,SolidFill.cs,TextStyle.cs,Thickness.cs,VisualRole.cs,VisualRoleEventArgs.cs} |Drawing/Color:{AnsiColorCode.cs,Color.ColorExtensions.cs,Color.ColorName.cs,Color.ColorParseException.cs,Color.cs,Color.Formatting.cs,Color.Operators.cs,ColorModel.cs,ColorQuantizer.cs,ColorStrings.cs,IColorDistance.cs,IColorNameResolver.cs,ICustomColorFormatter.cs,StandardColor.cs,StandardColors.cs,StandardColorsNameResolver.cs} -|Drawing/LineCanvas:{IntersectionDefinition.cs,IntersectionRuneType.cs,IntersectionType.cs,LineCanvas.cs,LineStyle.cs,StraightLine.cs,StraightLineExtensions.cs} +|Drawing/LineCanvas:{IntersectionDefinition.cs,IntersectionRuneType.cs,IntersectionType.cs,LineCanvas.cs,LineDirections.cs,LineStyle.cs,StraightLine.cs,StraightLineExtensions.cs} |Drawing/Quant:{EuclideanColorDistance.cs,IPaletteBuilder.cs,PopularityPaletteWithThreshold.cs} |Drawing/Sixel:{SixelEncoder.cs,SixelSupportDetector.cs,SixelSupportResult.cs,SixelToRender.cs} -|Drivers:{ComponentFactoryImpl.cs,Cursor.cs,CursorStyle.cs,Driver.cs,DriverImpl.cs,DriverRegistry.cs,IComponentFactory.cs,IDriver.cs,ISizeMonitor.cs,PlatformDetection.cs,SizeMonitorImpl.cs} -|Drivers/AnsiDriver:{AnsiComponentFactory.cs,AnsiInput.cs,AnsiInputProcessor.cs,AnsiOutput.cs,AnsiPlatform.cs,AnsiSizeMonitor.cs,AnsiTerminalHelper.cs,FakeClipboard.cs,WindowsVTInputHelper.cs,WindowsVTOutputHelper.cs} +|Drivers:{ComponentFactoryImpl.cs,Cursor.cs,CursorStyle.cs,Driver.cs,DriverImpl.cs,DriverRegistry.cs,IComponentFactory.cs,IDriver.cs,ISizeMonitor.cs,PlatformDetection.cs,SizeDetectionMode.cs,SizeMonitorImpl.cs,TuiPlatform.cs} +|Drivers/AnsiDriver:{AnsiComponentFactory.cs,AnsiInput.cs,AnsiInputProcessor.cs,AnsiOutput.cs,AnsiPlatform.cs,AnsiSizeMonitor.cs,AnsiTerminalHelper.cs,FakeClipboard.cs} |Drivers/AnsiHandling:{AnsiEscapeSequence.cs,AnsiEscapeSequenceRequest.cs,AnsiKeyboardEncoder.cs,AnsiKeyboardParser.cs,AnsiKeyboardParserPattern.cs,AnsiKeyConverter.cs,AnsiMouseEncoder.cs,AnsiMouseParser.cs,AnsiRequestScheduler.cs,AnsiResponseExpectation.cs,AnsiResponseParser.cs,AnsiResponseParserBase.cs,AnsiResponseParserState.cs,AnsiResponseParserTInputRecord.cs,CsiCursorPattern.cs,CsiKeyPattern.cs,EscAsAltPattern.cs,GenericHeld.cs,IAnsiResponseParser.cs,IHeld.cs,KittyKeyboardFlags.cs,KittyKeyboardPattern.cs,KittyKeyboardProtocolDetector.cs,KittyKeyboardProtocolResult.cs,Osc8UrlLinker.cs,ReasonCannotSend.cs,Ss3Pattern.cs,StringHeld.cs,TerminalColorDetector.cs} |Drivers/AnsiHandling/EscSeqUtils:{EscSeqReqStatus.cs,EscSeqRequests.cs,EscSeqUtils.cs} -|Drivers/DotNetDriver:{INetInput.cs,NetComponentFactory.cs,NetInput.cs,NetInputProcessor.cs,NetKeyConverter.cs,NetOutput.cs,NetWinVTConsole.cs} +|Drivers/DotNetDriver:{INetInput.cs,NetComponentFactory.cs,NetInput.cs,NetInputProcessor.cs,NetKeyConverter.cs,NetOutput.cs} |Drivers/Input:{ConsoleInputSource.cs,IInput.cs,IInputProcessor.cs,IInputSource.cs,InputImpl.cs,InputProcessorImpl.cs,InputRecord.cs,ITestableInput.cs,TestInputSource.cs} |Drivers/Keyboard:{ConsoleKeyInfoExtensions.cs,ConsoleKeyMapping.cs,IKeyConverter.cs,KeyCode.cs,VK.cs} |Drivers/Mouse:{MouseButtonClickTracker.cs,MouseInterpreter.cs} |Drivers/Output:{IOutput.cs,IOutputBuffer.cs,OutputBase.cs,OutputBufferImpl.cs} |Drivers/TerminalEnvironment:{ColorCapabilityLevel.cs,TerminalColorCapabilities.cs,TerminalEnvironmentDetector.cs} -|Drivers/UnixDriver:{IUnixInput.cs,SuspendHelper.cs,UnixClipboard.cs,UnixComponentFactory.cs,UnixInput.cs,UnixInputProcessor.cs,UnixIOHelper.cs,UnixOutput.cs,UnixRawModeHelper.cs,UnixTerminalHelper.cs} +|Drivers/UnixHelpers:{SuspendHelper.cs,UnixClipboard.cs,UnixIOHelper.cs,UnixRawModeHelper.cs,UnixTerminalHelper.cs} |Drivers/WindowsDriver:{ClipboardImpl.cs,CursorVisibility.cs,IWindowsInput.cs,WindowsComponentFactory.cs,WindowsConsole.cs,WindowsInput.cs,WindowsInputProcessor.cs,WindowsKeyboardLayout.cs,WindowsKeyConverter.cs,WindowsKeyHelper.cs,WindowsOutput.cs} +|Drivers/WindowsHelpers:{NetWinVTConsole.cs,WindowsConsoleHelper.cs,WindowsVTInputHelper.cs,WindowsVTOutputHelper.cs} |FileServices:{DefaultSearchMatcher.cs,FileSystemColorProvider.cs,FileSystemIconProvider.cs,FileSystemInfoStats.cs,FileSystemTreeBuilder.cs,IFileOperations.cs,ISearchMatcher.cs} |Input:{Command.cs,CommandBinding.cs,CommandBindingsBase.cs,CommandBridge.cs,CommandContext.cs,CommandContextExtensions.cs,CommandEventArgs.cs,CommandOutcome.cs,CommandRouting.cs,IAcceptTarget.cs,ICommandBinding.cs,ICommandContext.cs} -|Input/Keyboard:{Key.cs,KeyBinding.cs,KeyBindings.cs,KeyChangedEventArgs.cs,KeyEqualityComparer.cs,KeyEventType.cs,KeystrokeNavigatorEventArgs.cs,ModifierKey.cs} +|Input/Keyboard:{Bind.cs,Key.cs,KeyBinding.cs,KeyBindings.cs,KeyChangedEventArgs.cs,KeyEqualityComparer.cs,KeyEventType.cs,KeystrokeNavigatorEventArgs.cs,ModifierKey.cs,PlatformKeyBinding.cs} |Input/Mouse:{GrabMouseEventArgs.cs,Mouse.cs,MouseBinding.cs,MouseBindings.cs,MouseFlags.cs,MouseFlagsChangedEventArgs.cs} |Resources:{GlobalResources.cs,ResourceManagerWrapper.cs,Strings.Designer.cs} |Testing:{IInputInjector.cs,InputInjectionEvent.cs,InputInjectionExtensions.cs,InputInjectionMode.cs,InputInjectionOptions.cs,InputInjector.cs} |Text:{NerdFonts.cs,RuneExtensions.cs,StringExtensions.cs,TextDirection.cs,TextFormatter.cs} |Time:{FuncTimeProvider.cs,ITimeProvider.cs,ITimer.cs,SystemTimeProvider.cs,VirtualTimeProvider.cs} -|ViewBase:{DrawAdornmentsEventArgs.cs,DrawContext.cs,DrawEventArgs.cs,IDesignable.cs,IValue.cs,View.Adornments.cs,View.Arrangement.cs,View.Command.cs,View.Content.cs,View.cs,View.Cursor.cs,View.Diagnostics.cs,View.Drawing.Attribute.cs,View.Drawing.Clipping.cs,View.Drawing.cs,View.Drawing.Primitives.cs,View.Drawing.Scheme.cs,View.Hierarchy.cs,View.Keyboard.cs,View.Layout.cs,View.Navigation.cs,View.NeedsDraw.cs,View.ScrollBars.cs,View.Text.cs,ViewCollectionHelpers.cs,ViewDiagnosticFlags.cs,ViewEventArgs.cs,ViewExtensions.cs,ViewportSettingsFlags.cs,WeakReferenceExtensions.cs} -|ViewBase/Adornment:{Adornment.cs,ArrangeButtons.cs,Arranger.cs,ArrangerButton.cs,Border.Arrangment.cs,Border.cs,BorderSettings.cs,Margin.cs,Padding.cs,ParentManipulator.cs,ShadowStyle.cs,ShadowView.cs} +|ViewBase:{DrawAdornmentsEventArgs.cs,DrawContext.cs,DrawEventArgs.cs,IDesignable.cs,IValue.cs,View.Adornments.cs,View.Arrangement.cs,View.Command.cs,View.Content.cs,View.cs,View.Cursor.cs,View.Diagnostics.cs,View.Drawing.Adornments.cs,View.Drawing.Attribute.cs,View.Drawing.Clipping.cs,View.Drawing.cs,View.Drawing.LineCanvas.cs,View.Drawing.Primitives.cs,View.Drawing.Scheme.cs,View.Hierarchy.cs,View.Keyboard.cs,View.Layout.cs,View.Navigation.cs,View.NeedsDraw.cs,View.ScrollBars.cs,View.Text.cs,ViewCollectionHelpers.cs,ViewDiagnosticFlags.cs,ViewEventArgs.cs,ViewExtensions.cs,ViewportSettingsFlags.cs,WeakReferenceExtensions.cs} +|ViewBase/Adornment:{AdornmentImpl.cs,AdornmentView.cs,ArrangeButtons.cs,Arranger.cs,ArrangerButton.cs,Border.cs,BorderSettings.cs,BorderView.Arrangement.cs,BorderView.cs,IAdornment.cs,IAdornmentView.cs,ITitleView.cs,Margin.cs,MarginView.cs,Padding.cs,PaddingView.cs,ShadowStyles.cs,ShadowView.cs,TabLayoutContext.cs,TitleView.cs} |ViewBase/EnumExtensions:{AddOrSubtractExtensions.cs,AlignmentExtensions.cs,AlignmentModesExtensions.cs,BorderSettingsExtensions.cs,DimAutoStyleExtensions.cs,DimensionExtensions.cs,DimPercentModeExtensions.cs,SideExtensions.cs,ViewDiagnosticFlagsExtensions.cs} |ViewBase/Helpers:{StackExtensions.cs} |ViewBase/Layout:{AddOrSubtract.cs,Aligner.cs,Alignment.cs,AlignmentModes.cs,Dim.cs,DimAbsolute.cs,DimAuto.cs,DimAutoStyle.cs,DimCombine.cs,Dimension.cs,DimFill.cs,DimFunc.cs,DimPercent.cs,DimPercentMode.cs,DimView.cs,LayoutEventArgs.cs,LayoutException.cs,Pos.cs,PosAbsolute.cs,PosAlign.cs,PosAnchorEnd.cs,PosCenter.cs,PosCombine.cs,PosFunc.cs,PosPercent.cs,PosView.cs,Side.cs,SizeChangedEventArgs.cs,SuperViewChangedEventArgs.cs,ViewArrangement.cs,ViewManipulator.cs} |ViewBase/Mouse:{IMouseHoldRepeater.cs,MouseHoldRepeaterImpl.cs,MouseState.cs,View.Mouse.cs} |ViewBase/Navigation:{AdvanceFocusEventArgs.cs,FocusEventArgs.cs,NavigationDirection.cs,TabBehavior.cs} |ViewBase/Orientation:{IOrientation.cs,Orientation.cs,OrientationHelper.cs} -|Views:{Bar.cs,Button.cs,CheckBox.cs,CheckState.cs,DatePicker.cs,Dialog.cs,DialogTResult.cs,DropDownList.cs,FrameView.cs,HexView.cs,HexViewEventArgs.cs,Label.cs,Line.cs,Link.cs,MessageBox.cs,NumericUpDown.cs,ProgressBar.cs,Prompt.cs,PromptExtensions.cs,ReadOnlyCollectionExtensions.cs,Shortcut.cs,StatusBar.cs,Window.cs} +|Views:{Bar.cs,Button.cs,CheckBox.cs,CheckState.cs,DatePicker.cs,Dialog.cs,DialogTResult.cs,DropDownList.cs,DropDownListTEnum.cs,FrameView.cs,HexView.cs,HexViewEventArgs.cs,Label.cs,Line.cs,Link.cs,MessageBox.cs,NumericUpDown.cs,ProgressBar.cs,Prompt.cs,PromptExtensions.cs,ReadOnlyCollectionExtensions.cs,Shortcut.cs,StatusBar.cs,Tabs.cs,Window.cs} |Views/Autocomplete:{AppendAutocomplete.cs,AutocompleteBase.cs,AutocompleteContext.cs,AutocompleteFilepathContext.cs,IAutocomplete.cs,ISuggestionGenerator.cs,PopupAutocomplete.cs,PopupAutocomplete.PopUp.cs,SingleWordSuggestionGenerator.cs,Suggestion.cs} |Views/CharMap:{CharMap.cs,UcdApiClient.cs,UnicodeRange.cs} |Views/CollectionNavigation:{CollectionNavigator.cs,CollectionNavigatorBase.cs,DefaultCollectionNavigatorMatcher.cs,ICollectionNavigator.cs,ICollectionNavigatorMatcher.cs,IListCollectionNavigator.cs,TableCollectionNavigator.cs} @@ -262,14 +263,13 @@ See `.claude/cookbook/` for common UI patterns: |Views/FileDialogs:{AllowedType.cs,DefaultFileOperations.cs,FileDialog.cs,FileDialogCollectionNavigator.cs,FileDialogHistory.cs,FileDialogState.cs,FileDialogStyle.cs,FileDialogTableSource.cs,FilesSelectedEventArgs.cs,FileSystemCollectionNavigationMatcher.cs,OpenDialog.cs,OpenMode.cs,SaveDialog.cs} |Views/GraphView:{Axis.cs,AxisIncrementToRender.cs,BarSeriesBar.cs,GraphCellToRender.cs,GraphView.cs,HorizontalAxis.cs,IAnnotation.cs,ISeries.cs,LegendAnnotation.cs,LineF.cs,MultiBarSeries.cs,PathAnnotation.cs,ScatterSeries.cs,Series.cs,TextAnnotation.cs,VerticalAxis.cs} |Views/LinearRange:{LinearRange.cs,LinearRangeAttributes.cs,LinearRangeConfiguration.cs,LinearRangeEventArgs.cs,LinearRangeOption.cs,LinearRangeOptionEventArgs.cs,LinearRangeStyle.cs,LinearRangeType.cs} -|Views/ListView:{IListDataSource.cs,ListView.Commands.cs,ListView.cs,ListView.Drawing.cs,ListView.Movement.cs,ListView.Selection.cs,ListViewEventArgs.cs,ListWrapper.cs} +|Views/ListView:{IListDataSource.cs,ListView.Commands.cs,ListView.cs,ListView.Drawing.cs,ListView.Movement.cs,ListView.Selection.cs,ListViewEventArgs.cs,ListViewT.cs,ListWrapper.cs} |Views/Menu:{IMenuBarEntry.cs,Menu.cs,MenuBar.cs,MenuBarItem.cs,MenuItem.cs,PopoverMenu.cs} |Views/Runnable:{Runnable.cs,RunnableTResult.cs} -|Views/ScrollBar:{ScrollBar.cs,ScrollBarVisibilityMode.cs,ScrollSlider.cs} +|Views/ScrollBar:{ScrollBar.cs,ScrollBarVisibilityMode.cs,ScrollButton.cs,ScrollSlider.cs} |Views/Selectors:{FlagSelector.cs,FlagSelectorTEnum.cs,OptionSelector.cs,OptionSelectorTEnum.cs,SelectorBase.cs,SelectorStyles.cs} |Views/SpinnerView:{SpinnerStyle.cs,SpinnerView.cs} |Views/TableView:{CellActivatedEventArgs.cs,CellColorGetterArgs.cs,CellToggledEventArgs.cs,CheckBoxTableSourceWrapper.cs,CheckBoxTableSourceWrapperByIndex.cs,CheckBoxTableSourceWrapperByObject.cs,ColumnStyle.cs,DataTableSource.cs,EnumerableTableSource.cs,IEnumerableTableSource.cs,ITableSource.cs,ListColumnStyle.cs,ListTableSource.cs,RowColorGetterArgs.cs,SelectedCellChangedEventArgs.cs,TableSelection.cs,TableStyle.cs,TableView.CellMapping.cs,TableView.cs,TableView.Drawing.cs,TableView.Mouse.cs,TableView.Navigation.cs,TableView.Selection.cs,TreeTableSource.cs} -|Views/TabView:{Tab.cs,TabChangedEventArgs.cs,TabMouseEventArgs.cs,TabRow.cs,TabStyle.cs,TabView.cs} |Views/TextInput:{ContentsChangedEventArgs.cs,DateEditor.cs,DateTextProvider.cs,HistoryText.cs,HistoryTextItemEventArgs.cs,ITextValidateProvider.cs,NetMaskedTextProvider.cs,TextEditingLineStatus.cs,TextModel.cs,TextRegexProvider.cs,TextValidateField.cs,TimeEditor.cs,TimeTextProvider.cs} |Views/TextInput/TextField:{TextField.Commands.cs,TextField.cs,TextField.Drawing.cs,TextField.History.cs,TextField.Keyboard.cs,TextField.Mouse.cs,TextField.Selection.cs,TextField.Text.cs,TextFieldAutocomplete.cs} |Views/TextInput/TextView:{TextView.Commands.cs,TextView.cs,TextView.Drawing.cs,TextView.Files.cs,TextView.Find.cs,TextView.History.cs,TextView.Keyboard.cs,TextView.Mouse.cs,TextView.Movement.cs,TextView.Scrolling.cs,TextView.Selection.cs,TextView.Text.cs,TextView.WordWrap.cs,TextViewAutocomplete.cs,WordWrapManager.cs} @@ -457,3 +457,32 @@ See `.claude/cookbook/` for common UI patterns: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Directory.Packages.props b/Directory.Packages.props index b699b270a7..3708a80cd6 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -5,19 +5,19 @@ - + - - + + - - - + + + @@ -28,21 +28,21 @@ - + - - - + + + - + - + - + diff --git a/Terminal.Gui/ViewBase/View.Content.cs b/Terminal.Gui/ViewBase/View.Content.cs index b681f1d258..a077bdef74 100644 --- a/Terminal.Gui/ViewBase/View.Content.cs +++ b/Terminal.Gui/ViewBase/View.Content.cs @@ -102,7 +102,7 @@ public int GetWidthRequiredForSubViews () => GetAutoWidth () - GetAdornmentsThickness ().Horizontal; /// - /// Gets the natural (auto-size) width of the view as calculated by . + /// Gets the natural (auto-size) width of the view as calculated by . /// /// /// The returned width is the full auto-calculated width for the view, including adornment thickness. @@ -114,7 +114,7 @@ public int GetWidthRequiredForSubViews () => public int GetAutoWidth () => Dim.Auto ().Calculate (0, GetContainerSize ().Width, this, Dimension.Width); /// - /// Gets the natural (auto-size) height of the view as calculated by . + /// Gets the natural (auto-size) height of the view as calculated by . /// /// /// The returned height is the full auto-calculated height for the view, including adornment thickness. diff --git a/Terminal.sln b/Terminal.sln index b4fa8dd844..627570beb0 100644 --- a/Terminal.sln +++ b/Terminal.sln @@ -57,6 +57,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{C7A51224-5 docfx\docs\ansihandling.md = docfx\docs\ansihandling.md docfx\docs\application.md = docfx\docs\application.md docfx\docs\arrangement.md = docfx\docs\arrangement.md + docfx\docs\borders.md = docfx\docs\borders.md docfx\docs\cancellable-work-pattern.md = docfx\docs\cancellable-work-pattern.md .github\CODEOWNERS = .github\CODEOWNERS CODE_OF_CONDUCT.md = CODE_OF_CONDUCT.md diff --git a/docfx/docs/View.md b/docfx/docs/View.md index 831c2f29b0..0d09824df3 100644 --- a/docfx/docs/View.md +++ b/docfx/docs/View.md @@ -82,13 +82,12 @@ See the [Scrolling Deep Dive](scrolling.md) for complete details. ### Adornments -[Adornments](~/api/Terminal.Gui.ViewBase.IAdornment.yml) are lightweight objects that define the spacing around a View's content. When View-level features are needed (e.g., SubViews, shadows), a full [AdornmentView](~/api/Terminal.Gui.ViewBase.AdornmentView.yml) is lazily created via `GetOrCreateView()`: +[Adornments]() are lightweight objects that define the spacing around a View's content. When View-level features are needed (e.g., SubViews, shadows), a full [AdornmentView]() is lazily created via `GetOrCreateView()`: -- **[Margin](~/api/Terminal.Gui.ViewBase.Margin.yml)** - Transparent spacing outside the Border -- **[Border](~/api/Terminal.Gui.ViewBase.Border.yml)** - Visual frame with [LineStyle](~/api/Terminal.Gui.Drawing.LineStyle.yml), title, and arrangement UI -- **[Padding](~/api/Terminal.Gui.ViewBase.Padding.yml)** - Spacing inside the Border, outside the Viewport - -Each adornment has a [Thickness](~/api/Terminal.Gui.Drawing.Thickness.yml) that defines the width of each side (Top, Right, Bottom, Left). +- **[Margin]()** - Transparent spacing outside the Border +- **[Border]()** - Visual frame with [LineStyle](), title, and arrangement UI +- **[Padding]()** - Spacing inside the Border, outside the Viewport +Each adornment has a [Thickness]() that defines the width of each side (Top, Right, Bottom, Left). See the [Layout Deep Dive](layout.md) for complete details on adornments. @@ -125,11 +124,11 @@ View is organized as a partial class across multiple files, each handling a spec See the [Command Deep Dive](command.md). -- [View.AddCommand](~/api/Terminal.Gui.ViewBase.View.yml) - Declares commands the View supports -- [View.InvokeCommand](~/api/Terminal.Gui.ViewBase.View.yml) - Invokes a command -- [Command](~/api/Terminal.Gui.Input.Command.yml) enum - Standard set of commands (Accept, Activate, HotKey, etc.) +- [View.AddCommand] - Declares commands the View supports +- [View.InvokeCommand] - Invokes a command +- [Command] enum - Standard set of commands (Accept, Activate, HotKey, etc.) - `CommandsToBubbleUp` - Opt-in list of commands that bubble from SubViews to this View -- [View.DispatchDown](~/api/Terminal.Gui.ViewBase.View.yml) - Dispatches a command downward to a SubView with bubbling suppressed (inverse of `TryBubbleToSuperView`) +- [View.DispatchDown] - Dispatches a command downward to a SubView with bubbling suppressed (inverse of `TryBubbleToSuperView`) - `DefaultAcceptView` - The SubView that receives when no other SubView handles it ### Input Handling diff --git a/docfx/docs/borders.md b/docfx/docs/borders.md index b632cc7024..1a2311be9f 100644 --- a/docfx/docs/borders.md +++ b/docfx/docs/borders.md @@ -14,7 +14,6 @@ This deep dive covers Border's rendering modes, the tab header system, and how ` - [Tab Offset and Clipping](#tab-offset-and-clipping) - [Auto-Join with SuperViewRendersLineCanvas](#auto-join-with-superviewrenderslinecanvas) - [Border Line Positioning](#border-line-positioning) -- [Implementation: TitleView](#implementation-tabtitleview) - [Arrangement (Move and Resize)](#arrangement-move-and-resize) --- @@ -23,10 +22,10 @@ This deep dive covers Border's rendering modes, the tab header system, and how ` Every [View](~/api/Terminal.Gui.ViewBase.View.yml) has a `Border` adornment accessible via `View.Border`. The border's appearance is controlled by: -- **`View.BorderStyle`** ([BorderStyle](~/api/Terminal.Gui.ViewBase.BorderStyle.yml)) — Helper property that sets `Border.LineStyle`, `Border.Settings`, and `Border.Thickness` to common presets for different line styles. +- **`View.BorderStyle`** ([BorderStyle](~/api/Terminal.Gui.ViewBase.View.BorderStyle.yml)) — Helper property that sets `Border.LineStyle`, `Border.Settings`, and `Border.Thickness` to common presets for different line styles. - **`View.Border.Settings`** ([BorderSettings](~/api/Terminal.Gui.ViewBase.BorderSettings.yml)) — Flags controlling title and tab rendering. -- **`View.Border.LineStyle`** ([LineStyle](~/api/Terminal.Gui.ViewBase.LineStyle.yml)) — Which line-drawing characters to use for the border. -- **`View.Border.Thickness`** ([Thickness](~/api/Terminal.Gui.Drawing.Thickness.yml)) — How many rows/columns each side occupies. +- **`View.Border.LineStyle`** ([LineStyle](~/api/Terminal.Gui.ViewBase.Border.LineStyle.yml)) — Which line-drawing characters to use for the border. +- **`View.Border.Thickness`** ([Thickness](~/api/Terminal.Gui.ViewBase.IAdornment.Thickness.yml)) — How many rows/columns each side occupies. When `BorderStyle` is set to a non-`None` value, it implicitly sets `Border.Settings` to include `BorderSettings.Title`, enabling title rendering based on the thickness of the top border. @@ -34,9 +33,9 @@ The border is rendered by [BorderView](~/api/Terminal.Gui.ViewBase.BorderView.ym --- -## `BorderSettings.Default | BorderSettings.Title` — Title Rendering by Thickness +## Title Rendering by Thickness -The `Thickness` on the title side determines how many rows (or columns) the border occupies and how the title is rendered within that space. +When `BorderSettings.Default | BorderSettings.Title` is set, the `Thickness` on the title side determines how many rows (or columns) the border occupies and how the title is rendered within that space. ### `Thickness.Top == 1` — Title Inline on Border Line @@ -77,7 +76,7 @@ Identical rendering to thickness 3, with additional empty rows above. The title --- -## `BorderSettings.Default | BorderSettings.Title | BorderSettings.Tab` - Tab Style Borders +## Tab Style Borders When `Border.Settings` includes `BorderSettings.Tab`, the border renders a **tab header** — a small rectangle containing the View's `Title` that protrudes from one side of the content border. This is the foundation for building tabbed interfaces. @@ -393,7 +392,7 @@ The key change: `DoDrawAdornmentsSubViews` now runs **before** `DoRenderLineCanv ## Arrangement (Move and Resize) -The [BorderView](~/api/Terminal.Gui.ViewBase.BorderView.yml) provides the interactive surface for mouse-driven move and resize operations. This is powered by the [Arranger](~/api/Terminal.Gui.ViewBase.Arranger.yml) class, which is lazily created by `BorderView` and handles all mouse hit-testing and drag operations. +The [BorderView](~/api/Terminal.Gui.ViewBase.BorderView.yml) provides the interactive surface for keyboard and mouse-driven move and resize operations. For a comprehensive guide to the arrangement system (including keyboard-based arrangement, overlapped layouts, and splitter patterns), see the [View Arrangement Deep Dive](arrangement.md). diff --git a/docfx/docs/command.md b/docfx/docs/command.md index 8d22627873..829ee17b25 100644 --- a/docfx/docs/command.md +++ b/docfx/docs/command.md @@ -170,7 +170,7 @@ User presses Space on CheckBox ## Architecture Overview -The system provides a standardized framework for view actions (selecting, accepting, activating). It integrates with keyboard/mouse input handling and uses the *Cancellable Work Pattern* for extensibility and cancellation. As commands propagate through the view hierarchy, each -implementing view appends its value to the chain, enabling ancestors to inspect the full value history (see [Value Propagation](#value-propagation)). +The Command system provides a standardized framework for view actions (selecting, accepting, activating). It integrates with keyboard/mouse input handling and uses the *Cancellable Work Pattern* for extensibility and cancellation. As commands propagate through the view hierarchy, each `IValue`-implementing view appends its value to the `ICommandContext.Values` chain, enabling ancestors to inspect the full value history (see [Value Propagation](#value-propagation)). Central concepts: diff --git a/docfx/docs/drawing.md b/docfx/docs/drawing.md index 99e790604e..b081facff8 100644 --- a/docfx/docs/drawing.md +++ b/docfx/docs/drawing.md @@ -244,7 +244,7 @@ Each is always horizontal or vertical. When you call `GetCellMap()`, the canvas walks every point within its bounds: -1. **Collect intersections.** For each point, every line that passes through it produces an describing *how* the line relates to that point — does it pass over horizontally? Start here going right? End here from below? +1. **Collect intersections.** For each point, every line that passes through it produces an `IntersectionDefinition` describing *how* the line relates to that point — does it pass over horizontally? Start here going right? End here from below? 2. **Determine glyph type.** The set of intersection types at a point is analyzed to decide the glyph category: corner, T-junction, cross, straight line, etc. For example, `{StartRight, StartDown}` = upper-left corner (`┌`). diff --git a/docfx/docs/newinv2.md b/docfx/docs/newinv2.md index 0edbee4998..aa1d06d7ff 100644 --- a/docfx/docs/newinv2.md +++ b/docfx/docs/newinv2.md @@ -290,16 +290,15 @@ Color color = Color.Yellow; // Was "Brown" in v1 See the [Layout Deep Dive](layout.md) for complete details. -v2 introduces a comprehensive [Adornment](~/api/Terminal.Gui.ViewBase.IAdornment.yml) system with lightweight adornments that lazily create Views when needed: - -- **[Margin](~/api/Terminal.Gui.ViewBase.Margin.yml)** - Transparent spacing outside the border -- **[Border](~/api/Terminal.Gui.ViewBase.Border.yml)** - Visual frame with title, multiple styles -- **[Padding](~/api/Terminal.Gui.ViewBase.Padding.yml)** - Spacing inside the border +v2 introduces a comprehensive [Adornment]() system with lightweight adornments that lazily create Views when needed: +- **[Margin]()** - Transparent spacing outside the border +- **[Border]()** - Visual frame with title, multiple styles +- **[Padding]()** - Spacing inside the border **Border Features:** -- Multiple [LineStyle](~/api/Terminal.Gui.Drawing.LineStyle.yml) options: Single, Double, Heavy, Rounded, Dashed, Dotted -- Automatic line intersection handling via [LineCanvas](~/api/Terminal.Gui.Drawing.LineCanvas.yml) -- Configurable thickness per side via [Thickness](~/api/Terminal.Gui.Drawing.Thickness.yml) +- Multiple [LineStyle]() options: Single, Double, Heavy, Rounded, Dashed, Dotted +- Automatic line intersection handling via [LineCanvas]() +- Configurable thickness per side via [Thickness]() - Title display with alignment options ```csharp diff --git a/docfx/docs/views.md b/docfx/docs/views.md index 88b1da7dc4..72968c1041 100644 --- a/docfx/docs/views.md +++ b/docfx/docs/views.md @@ -123,7 +123,7 @@ Color Picker supporting RGB, HSL, and HSV color models. Supports choosing colors ## [ColorPicker16](xref:Terminal.Gui.Views.ColorPicker16) -A sinple color picker that supports the legacy 16 ANSI colors +A simple color picker that supports the legacy 16 ANSI colors.
@@ -137,11 +137,18 @@ A sinple color picker that supports the legacy 16 ANSI colors
 
-## [DateField](xref:Terminal.Gui.Views.DateField) +## [DateEditor](xref:Terminal.Gui.Views.DateEditor) -Provides date editing functionality with specialized cursor behavior for date entry. +Provides date editing functionality using with culture-aware formatting. +
+┌┄┄┄┄┄┄┄┄┄┄┄┐
+01/15/2024 
+└┄┄┄┄┄┄┄┄┄┄┄┘
+
+
+ ## [DatePicker](xref:Terminal.Gui.Views.DatePicker) @@ -150,15 +157,15 @@ Lets the user pick a date from a visual calendar.
 ┌─────────────────────────────┐
-│Date: 03/10/2026             
+│Date: 04/08/2026             
 │┌───┬───┬───┬───┬───┬───┬───┐│
 ││Sun│Mon│Tue│Wed│Thu│Fri│Sat││
 │├───┼───┼───┼───┼───┼───┼───┤│
-││1  │2  │3  │4  │5  │6  │7  ││
-││8  │9  │10 │11 │12 │13 │14 ││
-││15 │16 │17 │18 │19 │20 │21 ││
-││22 │23 │24 │25 │26 │27 │28 ││
-││29 │30 │31 │-  │-  │-  │-  ││
+││-  │-  │-  │1  │2  │3  │4  ││
+││5  │6  │7  │8  │9  │10 │11 ││
+││12 │13 │14 │15 │16 │17 │18 ││
+││19 │20 │21 │22 │23 │24 │25 ││
+││26 │27 │28 │29 │30 │-  │-  ││
 ││-  │-  │-  │-  │-  │-  │-  ││
 │└───┴───┴───┴───┴───┴───┴───┘│
 │           ◄◄  ►►            │
@@ -173,9 +180,8 @@ A modal dialog window with buttons across the bottom. When a button is pressed,
 
 
 
-┏┥Dialog Title┝━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
-┃Example: Type and press ENTER to accept.          ┃
-┃                                                  ┃
+┏┥Dialog Title┝━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+┃Example: Type and press ENTER to accept.         ▼┃
 ┃                                                  ┃
 ┃                               ⟦ Cancel ⟧ ⟦► OK ◄⟧┃
 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
@@ -202,28 +208,34 @@ A dropdown/combo-box control that combines a 
 
+## [DropDownList\](xref:Terminal.Gui.Views.DropDownList`1) + +A type-safe dropdown control for selecting a single value from an enum. Provides the same interface as but rendered as a compact dropdown list. + + + ## [FileDialog](xref:Terminal.Gui.Views.FileDialog) The base-class for and
-┏┥Open┝━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
-┃C:\Users\Tig\s\gui-cs\Terminal.Gui\docfx                                   ┃
+┏┥Open┝━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+┃C:\Users\Tig\s\gui-cs\Terminal.Gui\docfx                                   ┃
 ┃⟦▲⟧                                                                        ┃
 ┃┌────────────────────┬──────────┬──────────────────────────────┬───────────┃
 ┃│Filename (▲)        │Size      │Modified                      │Type       ┃
 ┃├────────────────────┼──────────┼──────────────────────────────┼───────────┃
 ┃│..                  │          │                              │<Directory>┃
 ┃│\_exported_templates│          │2025-09-12T12:16:14           │<Directory>┃
-┃│\_site              │          │2026-03-10T11:03:24           │<Directory>┃
-┃│\api                │          │2026-03-10T11:02:45           │<Directory>┃
-┃│\apispec            │          │2026-03-09T09:23:54           │<Directory>┃
-┃│\docs               │          │2026-03-10T10:40:04           │<Directory>┃
+┃│\_site              │          │2026-04-08T10:48:11           │<Directory>┃
+┃│\api                │          │2026-04-08T10:47:33           │<Directory>┃
+┃│\apispec            │          │2026-03-10T11:11:00           │<Directory>┃
+┃│\docs               │          │2026-04-08T10:50:05           │<Directory>┃
 ┃│\images             │          │2026-03-04T13:02:07           │<Directory>┃
-┃│\includes           │          │2026-03-04T12:44:37           │<Directory>┃
-┃│\schemas            │          │2026-01-15T21:25:29           │<Directory>┃
-┃│\scripts            │          │2026-03-04T12:44:37           │<Directory>┃
+┃│\includes           │          │2026-04-08T07:55:52           │<Directory>┃
+┃│\schemas            │          │2026-03-26T14:39:08           │<Directory>┃
+┃│\scripts            │          │2026-04-08T07:55:52           │<Directory>┃
 ┃│aboutbox.png        │14.06 KB  │2025-09-12T12:16:14           │.png       ┃
 ┃                                                                           ┃
 ┃⟦►Tree⟧                                                  ⟦ Cancel ⟧⟦► OK ◄⟧┃
@@ -288,7 +300,7 @@ A non-overlapped container for other views with a border and optional title.
 
 ## [GraphView](xref:Terminal.Gui.Views.GraphView)
 
-Displays graphs (bar, scatter, etc.) with flexible labels, scaling, and scrolling
+Displays graphs (bar, scatter, etc.) with flexible labels, scaling, and scrolling.
 
 
 
@@ -420,6 +432,19 @@ Provides a type-safe linear range control letting the user navigate from a set o
 
 
 
+## [Link](xref:Terminal.Gui.Views.Link)
+
+Displays a clickable hyperlink with optional display text and a target URL.
+
+
+
+┌┤Link├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┐
+https://github.com/gui-cs
+└┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┘
+
+
+ + ## [ListView](xref:Terminal.Gui.Views.ListView) Provides a scrollable list of data where each item can be activated to perform an action. @@ -450,6 +475,12 @@ Provides a scrollable list of data where each item can be activated to perform a
+## [ListView\](xref:Terminal.Gui.Views.ListView`1) + +Provides a scrollable list of data where each item can be activated to perform an action, with a strongly-typed property that returns the selected object of type T from the underlying . + + + ## [Menu](xref:Terminal.Gui.Views.Menu) A vertically-oriented that contains items, supporting cascading sub-menus, selection tracking, and the pattern. @@ -528,22 +559,22 @@ Provides an interactive for selecting files or
-┏┥Open┝━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
-┃C:\Users\Tig\s\gui-cs\Terminal.Gui\docfx                                   ┃
+┏┥Open┝━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+┃C:\Users\Tig\s\gui-cs\Terminal.Gui\docfx                                   ┃
 ┃⟦▲⟧                                                                        ┃
 ┃┌────────────────────┬──────────┬──────────────────────────────┬───────────┃
 ┃│Filename (▲)        │Size      │Modified                      │Type       ┃
 ┃├────────────────────┼──────────┼──────────────────────────────┼───────────┃
 ┃│..                  │          │                              │<Directory>┃
 ┃│\_exported_templates│          │2025-09-12T12:16:14           │<Directory>┃
-┃│\_site              │          │2026-03-10T11:03:24           │<Directory>┃
-┃│\api                │          │2026-03-10T11:02:45           │<Directory>┃
-┃│\apispec            │          │2026-03-09T09:23:54           │<Directory>┃
-┃│\docs               │          │2026-03-10T10:40:04           │<Directory>┃
+┃│\_site              │          │2026-04-08T10:48:11           │<Directory>┃
+┃│\api                │          │2026-04-08T10:47:33           │<Directory>┃
+┃│\apispec            │          │2026-03-10T11:11:00           │<Directory>┃
+┃│\docs               │          │2026-04-08T10:50:05           │<Directory>┃
 ┃│\images             │          │2026-03-04T13:02:07           │<Directory>┃
-┃│\includes           │          │2026-03-04T12:44:37           │<Directory>┃
-┃│\schemas            │          │2026-01-15T21:25:29           │<Directory>┃
-┃│\scripts            │          │2026-03-04T12:44:37           │<Directory>┃
+┃│\includes           │          │2026-04-08T07:55:52           │<Directory>┃
+┃│\schemas            │          │2026-03-26T14:39:08           │<Directory>┃
+┃│\scripts            │          │2026-04-08T07:55:52           │<Directory>┃
 ┃│aboutbox.png        │14.06 KB  │2025-09-12T12:16:14           │.png       ┃
 ┃                                                                           ┃
 ┃⟦►Tree⟧                                                  ⟦ Cancel ⟧⟦► OK ◄⟧┃
@@ -630,7 +661,7 @@ Base implementation of  for views that can be r
 
 
 ┌┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┐
-┊This is some demo text.                                                       ┊
+┊This is some demo text.                                                       ┊
 ┊                                                                              ┊
 ┊                                                                              ┊
 ┊                                                                              ┊
@@ -665,22 +696,22 @@ Provides an interactive  for selecting files or
 
 
 
-┏┥Save┝━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
-┃C:\Users\Tig\s\gui-cs\Terminal.Gui\docfx                                   ┃
+┏┥Save┝━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+┃C:\Users\Tig\s\gui-cs\Terminal.Gui\docfx                                   ┃
 ┃⟦▲⟧                                                                        ┃
 ┃┌────────────────────┬──────────┬──────────────────────────────┬───────────┃
 ┃│Filename (▲)        │Size      │Modified                      │Type       ┃
 ┃├────────────────────┼──────────┼──────────────────────────────┼───────────┃
 ┃│..                  │          │                              │<Directory>┃
 ┃│\_exported_templates│          │2025-09-12T12:16:14           │<Directory>┃
-┃│\_site              │          │2026-03-10T11:03:24           │<Directory>┃
-┃│\api                │          │2026-03-10T11:02:45           │<Directory>┃
-┃│\apispec            │          │2026-03-09T09:23:54           │<Directory>┃
-┃│\docs               │          │2026-03-10T10:40:04           │<Directory>┃
+┃│\_site              │          │2026-04-08T10:48:11           │<Directory>┃
+┃│\api                │          │2026-04-08T10:47:33           │<Directory>┃
+┃│\apispec            │          │2026-03-10T11:11:00           │<Directory>┃
+┃│\docs               │          │2026-04-08T10:50:05           │<Directory>┃
 ┃│\images             │          │2026-03-04T13:02:07           │<Directory>┃
-┃│\includes           │          │2026-03-04T12:44:37           │<Directory>┃
-┃│\schemas            │          │2026-01-15T21:25:29           │<Directory>┃
-┃│\scripts            │          │2026-03-04T12:44:37           │<Directory>┃
+┃│\includes           │          │2026-04-08T07:55:52           │<Directory>┃
+┃│\schemas            │          │2026-03-26T14:39:08           │<Directory>┃
+┃│\scripts            │          │2026-04-08T07:55:52           │<Directory>┃
 ┃│aboutbox.png        │14.06 KB  │2025-09-12T12:16:14           │.png       ┃
 ┃                                                                           ┃
 ┃⟦►Tree⟧                                                ⟦ Cancel ⟧⟦► Save ◄⟧┃
@@ -719,6 +750,19 @@ Indicates the size of scrollable content and controls the position of the visibl
 
+## [ScrollButton](xref:Terminal.Gui.Views.ScrollButton) + +A used to scroll content forward or backward. It enables mouse hold-repeat for continuous scrolling when the mouse button is held down. The button displays an arrow glyph determined by the combination of and :
OrientationDirectionGlyph
HorizontalBackward
HorizontalForward
VerticalBackward
VerticalForward
+ + +
+┌┤Butt├┐
+Button┊
+└┄┄┄┄┄┄┘
+
+
+ + ## [ScrollSlider](xref:Terminal.Gui.Views.ScrollSlider) Represents the proportion of the visible content to the Viewport in a . Can be dragged with the mouse, constrained by the size of the Viewport of it's superview. Can be oriented either vertically or horizontally. @@ -777,36 +821,6 @@ A status bar is a that snaps to the bottom of
-## [Tab](xref:Terminal.Gui.Views.Tab) - -A single tab in a . - - -
-╭──────────────────────────────────────────────────────────────────────────────╮
-This is some demo text.
-│                                                                              │
-│                                                                              │
-│                                                                              │
-│                                                                              │
-│                                                                              │
-│                                                                              │
-│                                                                              │
-│                                                                              │
-│                                                                              │
-│                                                                              │
-│                                                                              │
-│                                                                              │
-│                                                                              │
-│                                                                              │
-│                                                                              │
-│                                                                              │
-│                                                                              │
-╰──────────────────────────────────────────────────────────────────────────────╯
-
-
- - ## [TableView](xref:Terminal.Gui.Views.TableView) Displays and enables infinite scrolling through tabular data based on a . See the TableView Deep Dive for more. @@ -837,31 +851,31 @@ Displays and enables infinite scrolling through tabular data based on a -## [TabView](xref:Terminal.Gui.Views.TabView) +## [Tabs](xref:Terminal.Gui.Views.Tabs) -Control that hosts multiple sub views, presenting a single one at once. +A tabbed container that renders each SubView as a selectable tab with a header drawn by . The currently focused SubView is the selected (front-most) tab.
 ┌┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┐
-┊                                                                              ┊
-┊                                                                              ┊
-┊                                                                              ┊
-┊│                                                                            │┊
-┊│                                                                            │┊
-┊│                                                                            │┊
-┊│                                                                            │┊
-┊│                                                                            │┊
-┊│                                                                            │┊
-┊│                                                                            │┊
-┊│                                                                            │┊
+┊╭─────────╮──────────╮────────────╮──────────╮                                ┊
+┊│Attribute│Line Style│Tab Settings│Add/Remove│                                ┊
+┊│         ╰──────────┴────────────┴──────────┴───────────────────────────────╮┊
 ┊│                                                                            │┊
-┊│                                                                            │┊
-┊│                                                                            │┊
-┊│                                                                            │┊
-┊│                                                                            │┊
-┊│                                                                            │┊
-┊└────────────────────────────────────────────────────────────────────────────┘┊
+┊│┌──────────────────────────────────────────────────────────────────────────┐│┊
+┊││┌┤Foreground├───────────────────────────────────────────┬┤Style├────────┐ ││┊
+┊│││H:                                                0   │☐ Bold         │ ││┊
+┊│││S:                                                0   │☐ Faint        │ ││┊
+┊│││V:                                                100 │☐ Italic       │ ││┊
+┊│││Name: White                                            │☐ Underline    │ ││┊
+┊│││Hex:#FFFFFF  ■                                         │☐ Blink        │ ││┊
+┊││├┼Background┼───────────────────────────────────────────┤☐ Reverse      │ ││┊
+┊│││H:                                                0   │☐ Strikethrough│ ││┊
+┊│││S:                                                0   │               │ ││┊
+┊│││V:                                                0   │               │ ││┊
+┊│││Name: Black                                            │               │ ││┊
+┊│││Hex:#000000                                           │               │ ││┊
+┊╰────────────────────────────────────────────────────────────────────────────╯┊
 └┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┘
 
 
@@ -882,7 +896,7 @@ Single-line text editor. ## [TextValidateField](xref:Terminal.Gui.Views.TextValidateField) -Masked text editor that validates input through a +Masked text editor that validates input through a .
@@ -895,7 +909,7 @@ Masked text editor that validates input through a 
@@ -923,11 +937,18 @@ Fully featured multi-line text editor
 
-## [TimeField](xref:Terminal.Gui.Views.TimeField) +## [TimeEditor](xref:Terminal.Gui.Views.TimeEditor) -Provides time editing functionality with specialized cursor behavior for time entry. +Provides time editing functionality using with culture-aware formatting. +
+┌┄┄┄┄┄┄┄┄┄┄┄┄┐
+02:30:00 PM 
+└┄┄┄┄┄┄┄┄┄┄┄┄┘
+
+
+ ## [TreeView](xref:Terminal.Gui.Views.TreeView) @@ -972,7 +993,7 @@ An overlapped container for other views with a border and optional title.
 ┌──────────────────────────────────────────────────────────────────────────────┐
-│This is some demo text.                                                       │
+│This is some demo text.                                                       │
 │                                                                              │
 │                                                                              │
 │                                                                              │
@@ -1001,18 +1022,18 @@ A multi-step dialog for collecting related data across sequential steps.
 
 
 
-┌┤Wizard Title - Example Step├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┐
-┊Enter Text:                                       This is some help text  ┊
-┊                                                  for the WizardStep.     ┊
-┊    A List: ┌╌╌╌╌╌╌╌╌┐                            You can provide         ┊
-┊            ┆Item 1  instructions or         ┊
-┊            ┆Item 2  ┆                            information to guide the┊
-┊            ┆Item 3  ┆                            user through this step  ┊
-┊            ┆Item 4  ┆                            of the wizard.          ┊
-┊            ┆Item 5  ┆                                                    ┊
-┊            └╌╌╌╌╌╌╌╌┘                                                    ┊
-┊                                                                          ┊
-┊                                                                          ┊
+┌┤Wizard Title - Example Step├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┐
+┊Enter Text:                                       This is some help text  ┊
+┊                                                  for the WizardStep.     ┊
+┊    A List: ┌╌╌╌╌╌╌╌╌┐                            You can provide         ┊
+┊            ┆Item 1  instructions or         ┊
+┊            ┆Item 2  ┆                            information to guide the┊
+┊            ┆Item 3  ┆                            user through this step  ┊
+┊            ┆Item 4  ┆                            of the wizard.          ┊
+┊            ┆Item 5  ┆                                                    ┊
+┊            └╌╌╌╌╌╌╌╌┘                                                    ┊
+┊                                                                          ┊
+┊                                                                          ┊
 ┊                                                                          ┊
 ┊                                                             ⟦► Next... ◄⟧┊
 └┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┘
diff --git a/local_packages/Terminal.Gui.2.0.0.nupkg b/local_packages/Terminal.Gui.2.0.0.nupkg
index 63319c4304..56cd3dfcd5 100644
Binary files a/local_packages/Terminal.Gui.2.0.0.nupkg and b/local_packages/Terminal.Gui.2.0.0.nupkg differ
diff --git a/local_packages/Terminal.Gui.2.0.0.snupkg b/local_packages/Terminal.Gui.2.0.0.snupkg
index 89743eee7a..0ebdcd5d70 100644
Binary files a/local_packages/Terminal.Gui.2.0.0.snupkg and b/local_packages/Terminal.Gui.2.0.0.snupkg differ