* Added Applicaton.Popover.
Refactored FindDeepestView
* Popover prototype
* Testing highlight
* Fixed click outside issue
* Fixed DialogTests
* Fixed click outside issue (agbain)
* Enabled mouse wheel in Bar
* Enabled mouse wheel in Bar
* Progress. Broke arrangement
* Added popover tests.
Fixed a bunch more CM issues related ot unreliable unit tests.
Updated config.json to include Glyphs.
* Can't set ForceDriver to empty in Resources/config.json.
* added BUGBUG
* Made Position/ScreenPosition clear
* Added View.IsInHierarchy tests
* Added Contextmenuv2 scenario.
* Implemented CM2 in TextView
* Removed unneeded CM stuff from testhelpers
* Shortcut API docs
* Fixed keybinding unit tests
* Fixed mouse handling
* Fighting with CM related unit test failures
* Unit tests pass. I think.
* Shortcut code cleanup
* TextView uses new CM2
* Starting on OnSelect etc...
* Starting on OnSelect etc...
* Fixed ContextMenuv2
* ContextMenu is working again.
* Ugh. ANd fixed button api docs
* Fixed DrawHorizontalShadowTransparent (vertical was already fixed).
* Made Scenarios compatible with #nullable enable
* Undid some keybinding stuff
* Fixed stuff
* Sped up unit tests
* Sped up unit tests 2
* Sped up unit tests 3
* Messing with menus
* merged latest v2_develop
* Added more Popover unit tests
* Added more Popover unit tests2
* Fixed positioning bug
* Fixed mouse bug
* Fixed Bar draw issue
* WIP
* merge v2_develop
* CM2 sorta works
* Enabled Bar subclasses to have IDesignable
* Added ViewportSettings.Transparent
* Region -> nullable enable
* Added ViewportSettigs Editor
* merged v2_develop part 2
* merged v2_develop part 3
* WIP: GetViewsUnderMouse
* WIP: More GetViewsUnderMouse work
* Bars works again
* Added unit tests
* CM now works
* MenuItemv2 POC
* SubMenu POC
* CommandNotBound
* More POC
* Optimize Margin to not defer draw if there's no shadow
* Logger cleanup
* Reverted Generic
* Cascading mostly working
* fixed layout bug
* API docs
* API docs
* Fixed cascade
* Events basically work
* code cleanup
* Fixed IsDefault bug;
* Enabled hotkey support
* Made context-menu-like
* Improved usability
* Refactored ApplicationPopover again
* Cleanup
* Menuv2 POC basically complete
* Code Cleanup
* Made menu API simpler
* Fixed Strings bugs
* Got old ContextMenu scenario mostly working
* ContextMenu scenario now works
* ContextMenu fixes
* ContextMenu fixes
* Tons of menu cleanup
* ContextMenu works in TextView
* Fixed unit tes
* Added unit tests
* Fixed tests
* code cleanup
* More code cleanup
* Deep dive
* scenario
* typos
* Demo colorpicker in a Menu
* Added Region tests proving Region is broken in some Union cases
* fixed v2win/net
* Add W3C color enum with the RGB as numeric value
* Add transform helper class for W3cColor enum
For the sake of backwards compatibility prioritize parsing 16 color mode color names over the W3C colors because the previous resource-based color names/values had a mix of W3C and 16 color mode RGB values.
Mechanism for choosing/prioritizing one color scheme over the other is currently only available at higher application/driver/output level.
* IColorNameResolver enable null analysis
* Remove obsolete color name related ResourceManagerTests
* Replace remains of W3CColors with direct W3C color name resolver
Temporarily breaks backwards compatibility and tests even further.
* Add ANSI 4-bit (ColorName16) color name resolver
* Add multi-standard color name resolver
Combined resolver for both ANSI 4-bit (ColorName16) and W3C colors while trying to maintain backwards compatibility for ColorPicker.
* Split conditional name resolver test cases
* Change W3C colors tests to be similar to name resolvers
* Change W3cColorsTests to W3cColorNameResolverTests
More consistent when all the tests refer to the color name resolver layer.
* Make W3cColors internal
Color name resolver is the public interface.
* W3cColors: Use Color.Argb instead of individual RGB components
* MultiStandardColorNameResolver: Substitute instead of blocking alternative W3C names
Changes color picker behavior a bit, e.g. Aqua will match to Cyan instead of jumping to Aquamarine.
* Remove leftover color string resources
* Consistent position for IColorNameResolver #nullable enable directive
* Add missing XML comments to ColorScheme.Colors.cs
Uses StringBuilder and char span indexof search to reduce intermediate allocations.
The new implementation behaves slightly different compared to old implementation. In synthetic LFCR scenario it is correctly removed while the old implementation left the CR, which seems like an off-by-one error.
* Fixes#3968. Menu appears in wrong place when opened in a subview
* Fixes#3965. Cannot exit a Window with a CanFocus true MenuBar
* Fixes#3981. Drivers crash when middle or right click on a ContextMenu item
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Change IConsoleOutput.Write(string) overload parameter to ReadOnlySpan<char>
Allows the caller more flexibility about choosing a buffer per use case.
* NetOutput: Write StringBuilder directly to the std out text stream
* Add EscSeqUtils.CSI_WriteCursorPosition
Writes cursor position sequence to text writer without string allocation.
* NetOutput: Skip cursor position escape sequence string allocation
* Replace CSI_(Enable|Disable)MouseEvents static properties with readonly fields
Changed for the sake of consistency with rest of the EscSegutils fields rather than performance. Also prevents bugs from accidentally setting the properties.
* Use EscSeqUtils.CSI_Append(Foreground|Background)ColorRGB in v2 drivers
* WindowsOutput SetCursorVisibility: Remove intermediate string builder
* WindowsOutput.WriteToConsole: Use rented array as intermediate write buffer
The large intermediate string builder remains a challenge. :)
* NetOutput: Console.Out for the sake of consistency
Also might have missed one of the Console.Out.Write(StringBuilder) calls...
* Avoid Rune.ToString() in NetOutput.Write(IOutputBuffer)
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Fixes#3964. Null Reference in DoDrawBorderAndPadding
* Fix unit test.
* Ensures closing all opened menus that belong to another top when a new modal top is opened.
* Reformat
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Subview clean up
* New Add/Remove event pattern
* Using Logging
* cleanup
* Subview -> SubView
* Test code cleanup. Killed many warnings.
* Fix tznind feedback
* Refactored AllViewTest helpers
* Moved keyboard tests to parallel
* Moved mouse tests to parallel
* Moved view tests to parallel
* Test code cleanup. Killed many warnings.
* dupe test
* Some mouse tests can't run in parallel because MouseGrabView
* Made SpinnerView more testable
* Moved more tests
* SubViews to IReadOnlyCollection<View>
* SubViews to IReadOnlyCollection<View> 2
* scrollbar tests
* shortcut tests
* Use InternalSubViews vs. _subviews
* Nuked View.IsAdded.
Added View.SuperViewChanged.
* API doc updats
* Unit Test tweak
* Unit Test tweak
* Fixes#3956. MessageBox doesn't return the index of IsDefault button
* Change to Theory test.
* Fix unit test 'Error opening terminal: unknown.'
* Remove RunningUnitTests = true because constructor already set it.
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Tons of API doc updates
* Removed stale test
* Removed stale tests
* Fixed Skipped Shadow test 1
* Fixed Skipped Shadow test 2
* Fixed Skipped Shadow test 3
* Removed stale test
* Removed stale test2
* Explicit unregister of event handler on Application.Driver!.ClearedContents
* Added Toplevels to dict
* code cleanup
* spelling error
* Removed stale test3
* Removed stale test4
* Removed stale test5
* added script
* tweaked script
* tweaked script
* Created StressTests project; moved some tests
* Created IntegrationTests project; moved some tests
* New yml
* made old yml just unit tests
* Tweaked Button_IsDefault_Raises_Accepted_Correctly
* tweaked script
* cleaned up ymls
* tweakled up ymls
* stress tests...
* stress tests on ubuntu only
* Fixed WindowsDriver in InvokeLeakTest
* Fixed WindowsDriver in InvokeLeakTest2
* Added Directory.Packages.props.
Added Directory.Build.props
* Shortened StressTest time
* Removed dupe file.
* DemoFiles
* Moved all tests to ./Tests dir.
* Fixed release build issue
* Fixed .sln file
* Fixed .sl* files
* Fixing ymls
* Fixing interation tests
* Create link to the file TestHelpers.
* Created Tests/UnitTestsParallelizable.
Moved all obviously parallelizable tests.
Updated yml.
* fixing logs
* fixing logs2
* fixing logs3
* don't require stress to pass for PRs
* Fix a failure?
* tweaked script
* Coudl this be it?
* Moved tons of tests to parallelizable
* Fixed some stuff
* Script to find duplicate tests
* Testing workflows
* Updated to v4
* Fix RelativeBasePath issue
* Replace powershell to pwsh
* Add ignore projects.
* Removed dupe unit tests
* Code cleanup of tests
* Cleaned up test warnings
* yml tweak
* Moved setter
* tweak ymls
* just randomly throwing spaghetti at a wall
* Enable runing 5 test runners in par
* Turned off DEBUG_DISPOSABLE for par tests
* RunningUnitTests=true
* code cleanup (forcing more Action runs)
* DISABLE_DEBUG_IDISPOSABLE
* Added View.DebugIDisposable. False by default.
* Remobed bogus tareet
* Remobed bogus tareet2
* fixed warning
* added api doc
* fixed warning
* fixed warning
* fixed warning2
* fixed warning3
* fixed warning4
---------
Co-authored-by: BDisp <bd.bdisp@gmail.com>