* Adds basic MainLoop unit tests
* Remove WinChange action from Curses
* Remove WinChange action from Curses
* Remove ProcessInput action from Windows MainLoop
* Simplified MainLoop/ConsoleDriver by making MainLoop internal and moving impt fns to Application
* Modernized Terminal resize events
* Modernized Terminal resize events
* Removed un used property
* for _isWindowsTerminal devenv->wininit; not sure what changed
* Modernized mouse/keyboard events (Action->EventHandler)
* Updated OnMouseEvent API docs
* Using WT_SESSION to detect WT
* removes hacky GetParentProcess
* Updates to fix#2634 (clear last line)
* removes hacky GetParentProcess2
* Addressed mac resize issue
* Addressed mac resize issue
* Removes ConsoleDriver.PrepareToRun, has Init return MainLoop
* Removes unneeded Attribute methods
* Removed GetProcesssName
* Removed GetProcesssName
* Refactored KeyEvent and KeyEventEventArgs into a single class
* Revert "Refactored KeyEvent and KeyEventEventArgs into a single class"
This reverts commit 88a00658db.
* Fixed key repeat issue; reverted stupidity on 1049/1047 confusion
* Updated CSI API Docs
* merge
* Rearranged Event.cs to Keyboard.cs and Mouse.cs
* Renamed KeyEventEventArgs KeyEventArgs
* temp renamed KeyEvent OldKeyEvent
* Merged KeyEvent into KeyEventArgs
* Renamed Application.ProcessKey members
* Renamed Application.ProcessKey members
* Renamed Application.ProcessKey members
* Added Responder.KeyPressed
* Removed unused references
* Fixed arg naming
* InvokeKeybindings->InvokeKeyBindings
* InvokeKeybindings->InvokeKeyBindings
* Fixed unit tests fail
* More progress on refactoring key input; still broken and probably wrong
* Moved OnKeyPressed out of Responder and made ProcessKeyPrssed non-virtual
* Updated API docs
* Moved key handling from Responder to View
* Updated API docs
* Updated HotKey API docs
* Updated shortcut API docs
* Fixed responder unit tests
* Removed Shortcut from View as it is not used
* Removed unneeded OnHotKey override from Button
* Fixed BackTab logic
* Button now uses Key Bindings exclusively
* Button now uses Key Bindings exclusively
* Updated keyboard.md docs
* Fixed unit tests to account for Toplevel handling default button
* Added View.InvokeCommand API
* Modernized RadioGroup
* Removed ColdKey
* Modernized (partially) StatusBar
* Worked around FileDialog issue with Ctrl-F
* Fixed driver unit test; view must be focused to reciev key pressed
* Application code cleanup
* Start on updaing menu
* Menu now mostly works
* Menu Select refinement
* Fixed known menu bugs!
* Enabled HotKey to cause focus- experimental
* Fixes#3022 & adds unit test to prove it
* Actually Fixes#3022 & adds unit test to prove it
* Working through hotkey issues
* Misc fixes
* removed hot/cold key stuff from Keys scenario
* Fixed scenarios
* Simplified shortcut string handling
* Modernized Checkbox
* Modernized TileView
* Updated API docs
* Updated API docs
* attempting to publish v2 docs
* Revert "attempting to publish v2 docs"
This reverts commit 59dcec111b.
* Playing with api docs
* Removed Key.BackTab
* Removed Caps/Scroll/Numlock
* Partial removal of keymodifiers - unit tests pass
* Partial removal of keymodifiers - broke netdriver somewhere
* WindowsDriver & added KeyEventArgsTests
* Fixing menu shortcut/hotkeys - broke Menu.cs into separate files
* Fixed MenuBar!
* Finished modernizing Menu/MenuBar
* Removed Key.a-z. Broke lots of stuff
* checkout@v4
* progress on key mapping and formatting
* VK tests are still failing
* Fixed some unit tests
* Added Hotkey and Keybinding unit tests
* fixed unit test
* All unit tests pass again...
* Fixed broken unit tests
* KeyEventArgs.KeyValue -> AsRune
* Fixed bugs. Still some broken
* Added KeyEventArgs.IsAlpha. Added KeyEventArgs.cast ops. Fixed bugs. Unit tests pass
* Fixed WindowsDriver
* Oops.
* Refactoring based on bdisp's help. Not complete!
* removed calling into subviews from OnKeyBindings
* removed calling into subviews from OnKeyBindings
* Improved View KeyEvent unit tests
* More hotkey unit tests
* BIg change - Got rid of KeyPress w/in Application/Drivers
* Unit tests now pass again
* Refreshed API docs
* Better HotKey logic. More progress. Getting close.
* Fixed handling of shifted chars like ö
* Minor code cleanup
* Minor code cleanup2
* Why is build Action failing?
* Why is build Action failing??
* upgraded to .net8 to try to fix weird CI/CD build errors
* upgraded to .net8 to try to fix weird CI/CD build errors2
* Disabling TextViewTests to diagnose build errors
* reenable TextViewTests to diagnose build errors
* Arrrrrrg
* Merged v2_develop
* Fixed uppercase accented keys in WindowsDriver
* Fixed key binding api docs
* Experimental impl of CommandScope.SubViews for MenuBar
* Removed dead code from application.cs
* Removed dead code from application.cs
* Removed dead code from ConsoleDriver.cs
* Cleaned up some key binding stuff
* Disabled Alt to activate menu for now
* Updated label commands
* Fixed menu bugs. Upgraded menu unit tests
* Fixed unit tests
* Working on NetDriver
* fixed netdriver
* Fixed issues called out by @bdisp CR
* fixed CursesDriver
* added todo to netdriver
* Cherry picked treeview test fix 1b415e5
* Fix NetDriver.
* CommandScope->KeyBindingScope
* Address some tznind feedback
* Refactored KeyBindings big time!
* Added key consts to KeyEventArgs and renamed Key to ConsoleDriverKey
* Fixed some API docs
* Moved ConsoleDriverKey to ConsoleDriver.cs
* Renamed Key->ConsoleDriverKey
* Renamed Key->ConsoleDriverKey
* Renamed Key->ConsoleDriverKey
* renamed file I forgot to rename before
* Updated name and API docs of KeyEventArgs.isAlpha
* Fixed issues with OnKeyUp not doing the right thing.
* Fixed MainLoop.Running never being used
* Fixed MainLoop.Running never being used - unit tests
* Claned up BUGBUG comments
* Disabled a unit test to see why ci/cd tests are failing
* Removed defunct commented code
* Removed more defunct commented code
* Re-eanbled unit test; jsut removing one test case...
* Disabled more...
* Renambed Global->Applicaton and updated scope API docs
* Disabled more unit tests...
* Removed dead code
* Disabled more unit tests...2
* Disabled more unit tests...3
* Renambed Global->Applicaton and updated scope API docs 2
* Added more KeyBinding scope tests
* Added more KeyBinding scope tests2
* ConsoleDriverKey too long. Key too ambiguous. Settled on KeyCode. (Partialy because eventually I want to intro a class named Key).
* KeyEventArgs improvements. cast to Rune must be explicit as it's lossy
* Fixed warnings
* Renamed KeyEventArgs to Key... progress on fixing broken stuff that resulted
* Fix ConsoleKeyMapping bugs.
* Fix NetDriver issue from converting a lower case to a upper case.
* Started migration to Key from KeyCode - e.g. made HotKeys all consistent.
* Fixed build warnings
* Added key defns to Key
* KeyBindings now uses Key vs. KeyCode
* Verified by tweaking UICatalog
* Fixed treeview test ... again
* Renamed ProcessKeyDown/Up to NewKeyDown/Up and OnKeyPressed to OnProcessKeyDown to make things more clear
* Added test AllViews_KeyDown_All_EventsFire unit tests and fixed a few Views that were wrong
* fixed stupid KeyUp event bug
* If key not handled, return false for datefield
* dotnet test --no-restore --verbosity diag
* dotnet test --blame
* run tests on windows
* Fix TestVKPacket unit test and move it to ConsoleKeyMappingTests.cs file.
* Remove unnecessary commented code.
* Tweaked unit tests and removed Key.BareKey
* Fixed little details and updated api docs
* updated api docs
* AddKeyBindingsForHotKey: KeyCode->Key
* Cleaned up more old KeyCode usages. Added TODOs
---------
Co-authored-by: BDisp <bd.bdisp@gmail.com>
* Add horizontal and vertical support for combining glyphs.
* Fix text and auto size behavior.
* Add TabWidth property.
* Add unit test for WordWrap.
* Add MultiLine property and improve more code.
* Fix word wrap on MessageBox.
* Fix label unit test.
* Rename to GetTextFormatterSizeNeededForTextAndHotKey
* Proves that TextFormatter.Size not must to have the same View.Bounds.Size.
* Fix fails unit tests.
* Updates AutoSize document.
* Updates MultiLine document.
* Removes Application dependency from the TextFormatter class.
* Fix Draw XML comment.
* Added ClipRegion; cleaned up driver code
* clip region unit tests
* api docs
* Moved color stuff from ConsoleDriver to Color.cs
* Removes unused ConsoleDriver APIs
* Code cleanup and Removes unused ConsoleDriver APIs
* Code cleanup and Removes unused ConsoleDriver APIs
* Work around https://github.com/gui-cs/Terminal.Gui/issues/2610
* adjusted unit tests
* initial commit
* Made Rows, Cols, Top, Left virtual
* Made Clipboard non-virtual
* Made EnableConsoleScrolling non-virtual
* Made Contents non-virtual
* Pulled Row/Col up
* Made MoveTo virtual; fixed stupid FakeDriver cursor issue
* Made CurrentAttribute non-virtual
* Made SetAttribute non-virtual
* Moved clipboard code out
* Code cleanup
* Removes dependecy on NStack from ConsoleDrivers - WIP
* Fixed unit tests
* Fixed unit tests
* Added list of unit tests needed
* Did some perf testing; tweaked code and charmap to address
* Brough in code from PR #2264 (but commented)
* Tons of code cleanup
* Fighting with ScrollView
* Fixing bugs
* Fixed TabView tests
* Fixed View.Visible test that was not really working
* Fixed unit tests
* Cleaned up clipboard APIs in attempt to track down unit test failure
* Add Cut_Preserves_Selection test
* Removed invalid code
* Removed invalid test code; unit tests now pass
* EscSeq* - Adjusted naming, added more sequences, made code more consistent, simplified, etc...
* Added CSI_SetGraphicsRendition
* NetDriver code cleanup
* code cleanup
* Cleaned up color handling in NetDriver
* refixed tabview unit test
* WindowsDriver color code cleanup
* WindowsDriver color code cleanup
* CursesDriver color code cleanup
* CursesDriver - Adding _BOLD has no effect. Further up the stack we cast the return of ColorToCursesColor from int to short and the _BOLD values don't fit in a short.
* CursesDriver color code - make code more accurate
* CursesDriver color code - make code more accurate
* Simplified ConsoleDriver.GetColors API
* Simplified ConsoleDriver.GetColors API further
* Improved encapslation of Attribute; prep for TrueColor & other attributes like blink
* Fixes#2249. CharacterMap isn't refreshing well non-BMP code points on scroll.
* Use GetRange to take some of the runes before convert to string.
* Attempting to fix unit tests not being cleaned up
* Fixes#2658 - ConsoleDriver.IsRuneSupported
* Fixes#2658 - ConsoleDriver.IsRuneSupported (for WindowsDriver)
* Check all the range values and not only the max value.
* Reducing code.
* Fixes#2674 - Unit test process doesn't exit
* Changed Cell to support IsDirty and list of Runes
* add support for rendering TrueColor output on Windows merging veeman & tznind code
* add colorconverter changes
* fixed merged v2_develop
* Fixing merge bugs
* Fixed merge bugs
* Fixed merge bugs - all unit tests pass
* Debugging netdriver
* More netdriver diag
* API docs for escutils
* Update unicode scenario to stress more stuff
* Contents: Now a 2D array of Cells; WIP
* AddRune and ClearContents no longer virtual/abstract
* WindowsDriver renders correctly again
* Progress on Curses
* Progress on Curses
* broke windowsdriver
* Cleaned up FakeMainLoop
* Cleaned up some build warnings
* Removed _init from AutoInitShutdown as it's not needed anymore
* Removed unused var
* Removed unused var
* Fixed nullabiltiy warning in LineCanvas
* Fixed charmap crash
* Fixes#2758 in v2
* Port testonfail fix to v2
* Remove EnableConsoleScrolling
* Backport #2764 from develop (clear last line)
* Remove uneeded usings
* Progress on unicode
* Merged in changes from PR #2786, Fixes#2784
* revamp charmap rendering
* Charmap option to show glyph widths
* Fixed issue with wide glpyhs being overwritten
* Fixed charmap startcodepoint change issue
* Added abiltiy to see ncurses verison/lib
* Fought with CursesDriver; giving up for now. See notes.
* Leverage Wcwidth nuget library instaed of our own tables
* enhanced charmap Details dialog
* Final attempt at fixing curses
---------
Co-authored-by: BDisp <bd.bdisp@gmail.com>
Co-authored-by: adstep <stephensonadamj@gmail.com>
* Fixes#2680. Make the TextView API more extensible.
* Remove unnecessary using.
* Add GetLine method.
* Change RuneCell Attribute property to ColorScheme property.
* Add LoadRuneCells method and unit test.
* Add helper method to set all the Colors.ColorSchemes with the same attribute.
* Change RuneCell to class.
* Add IEquatable<RuneCell> interface.
* Fix unit test.
* Still fixing unit test.
* Fixes#2688. ReadOnly TextView's broken scrolling after version update.
* keyModifiers must be reset after key up was been processed.
* Trying fix server unit test error.
* Prevents throw an exception if RuneCell is null.
* Still trying fix this unit test.
* Cleaning code.
* Fix when the RuneCell is null.
* Fix throwing an exception if current column position is greater than the line length.
* Fixes#2689. Autocomplete doesn't popup after typing the first character.
* Fix Used on TextField.
* Always use the original ColorScheme if RuneCell.ColorScheme is null.
* Fix Used on TextView.
* Add RuneCellEventArgs and draw colors events.
* Add two more samples to the scenario.
* Fix a bug which was causing unit tests with ColorScheme fail.
* Fix a issue when WordWrap is true by always loading the old text.
* Improves debugging in RuneCell.
* WordWrap is now preserving the ColorScheme of the unwrapped lines.
* Simplifying unit test.
* Ensures the foreground and background colors are never the same if Used is false.
* Remove nullable from the parameter.
* Merge syntax highlighting of quotes and keywords together
* Add IdxRow property into the RuneCellEventArgs.
* Fix pos calculation on windows
(where newline in Text is \r\n not \n)
* Fix events not being cleared when toggling samples.
* Change Undo and Redo to a public method.
* Changes some methods names to be more explicit.
* Call OnContentsChanged on needed methods and fix some more bugs.
* Adds InheritsPreviousColorScheme to allow LoadRuneCells uses personalized color schemes.
* Serializes and deserializes RuneCell to a .rce extension file.
* Prevents throwing if column is bigger than the line.
* Avoids create a color attribute without one of the foreground or background values. In Linux using -1 throws an exception.
* Replace SetAllAttributesBasedOn method with a ColorScheme constructor.
* Move RuneCell string extensions to TextView.cs
* Reverted parameter name from cell to rune.
* Change Row to UnwrappedPosition which provide the real unwrapped text position within the Col.
* Add brackets to Undo and Redo methods.
* Replace all the LoadXXX with Load and rely on the param type to differentiate.
* Open a file inside a using.
* Proves that the events run twice for WordWrap disabled and the enabled.
* Remove GetColumns extension for RuneCell.
* Add braces to Undo an Redo.
* Change comment.
* Add braces.
* Delete remarks tag.
* Explaining used color and ProcessInheritsPreviousColorScheme.
* Fix comment.
* Created a RuneCellTests.cs file.
* Rename to StringToLinesOfRuneCells.
* Make ToRuneCells private.
---------
Co-authored-by: Thomas <tznind@dundee.ac.uk>
Co-authored-by: Thomas Nind <31306100+tznind@users.noreply.github.com>
* Remove NStack and replace ustring to string.
* Add unit test and improving some code.
* Adjust code and fix all unit tests errors.
* Add XML Document and move the Rune folder into the Text folder.
* Improve unit tests with byte array on DecodeRune and DecodeLastRune.
* Fix unit test.
* 😂Code review
* Reduce unit tests code.
* Change StringExtensions.Make to StringExtensions.ToString and added some more unit tests.
* Fix merge errors.
* Remove GetTextWidth and calls replaced with StringExtensions.GetColumns.
* Hack to use UseSystemConsole passed in the command line arguments.
* Revert "Hack to use UseSystemConsole passed in the command line arguments."
This reverts commit b74d11c786.
* Remove Application.UseSystemConsole from the config file.
* Fix errors related by removing UseSystemConsole from the config file.
* Fixes#2633. DecodeEscSeq throw an exception if cki is null.
* Fix an exception if SelectedItem is -1.
* Set SelectedItem to 0 and remove unnecessary ToString.
* Using a unique ToString method for Rune and other for byte.
* Fix a bug where a wider rune is added with only a width of 1.
* Force the SelectedGlyph is the one that was typed after jumpList is executed.
* Added more InlineData to RuneTests.
* Reducing significantly the code by using Theory attribute in the TextFormatterTests.
* Override PositionCursor to handle the CharMap cursor position.
* Fix merge errors.
* Minor tweaks to API docs
---------
Co-authored-by: Tig Kindel <tig@users.noreply.github.com>
* initial
* basically working
* removed test settings
* removed extra usings
* Improved API docs
* Renamed glyphs to be consistent and use unicode names; use char literals
* Refactored Glyphs class & Json format to not be static (startup perf)
* Refactored Glyphs class & Json format to not be static (startup perf)
* Fixed a bunch of API doc errors
* Switched checked/selected to glyhps from box drawing range
* Switched button glyphs to nicer looking ones that seem to work on standard fonts
* Upgraded LineDrawing scenario
* CrossHair->Cross
* Fixed unit tests
* Fixed unit tests; moved Glyphs from Application to ConfigurationManager; added CM global using alias
* Found and replaced all other special glyphs; fixed more unit tests
* Fixes#2482. Refactor Redraw - Non-virtual with the right set of virtual OnXXX methods.
* Change documentation comments.
* Fixes#2575 - TableView to use interface instead of System.Data.DataTable (#2576)
* WIP: Add ITableDataSource
* WIP: Refactor TableView
* WIP: Port CSVEditor
* WIP: Port TableEditor
* WIP: Port MultiColouredTable scenario
* Fix bug of adding duplicate column styles
* Update tests to use DataTableSource
* Tidy up
* Add EnumerableTableDataSource<T>
* Add test for EnumerableTableDataSource
* Add test for EnumerableTableDataSource
* Add code example to xmldoc
* Add ProcessTable scenario
* Rename ITableDataSource to ITableSource and update docs
* Rename EnumerableTableDataSource to EnumerableTableSource
* Fixed Frame != Bounds; changed UICat Scenarios list to use tableview!
* Fix scroll resetting in ProcessTable scenario
* Fix unit tests by setting Frame to same as Bounds
* Document why we have to measure our data for use with TableView
---------
Co-authored-by: Tig Kindel <tig@users.noreply.github.com>
* Fixes#2582 - Refactors FileDialog for cleaner data model (#2583)
* WIP: Add ITableDataSource
* WIP: Refactor TableView
* WIP: Port CSVEditor
* WIP: Port TableEditor
* WIP: Port MultiColouredTable scenario
* Fix bug of adding duplicate column styles
* Update tests to use DataTableSource
* Tidy up
* Add EnumerableTableDataSource<T>
* Add test for EnumerableTableDataSource
* Add test for EnumerableTableDataSource
* Add code example to xmldoc
* Add ProcessTable scenario
* Rename ITableDataSource to ITableSource and update docs
* Rename EnumerableTableDataSource to EnumerableTableSource
* Fixed Frame != Bounds; changed UICat Scenarios list to use tableview!
* Fix scroll resetting in ProcessTable scenario
* Fix unit tests by setting Frame to same as Bounds
* Document why we have to measure our data for use with TableView
* WIP: Simplify FileDialogs use of TableView
* WIP start migrating sorter
* WIP new filedialog table source mostly working
* WIP remove sorter class
* Refactor GetOrderByValue to be adjacent to GetColumnValue
* Fix collection navigator back so it ignores icon
* Fix unit tests
* Tidy up
* Fix UseColors
* Add test for UseColors
---------
Co-authored-by: Tig Kindel <tig@users.noreply.github.com>
* Fixes#2196. TextView: Setting Text places cursor at beginning, unlike TextField (#2572)
* Fixes#2196. TextView: Setting Text places cursor at beginning, unlike TextField
* Change all private members to have the _prefix.
* Renamed local member to prevLayoutStyle.
* Helper function for SetNeedsDisplay.
* Fixes#2569. Borders scenarios needed to be refactored. (#2570)
* Fixes#2569. Borders scenarios needed to be refactored.
* Fix border title with width equal to 4 and thickness top grater than 1.
* Improves border manipulation on borders scenarios.
* Prevents null value on the margin, border and padding thickness on the border scenarios.
* Remove NStack using dependence and fix prior commit.
* Refactoring the Frames scenario.
* Deleted borders scenarios.
* I did not realize that it was changed to SetSubViewNeedsDisplay.
* Re-layout; fixed colorpicker; fixed radio group
* Remove Thickness.IsEmpty as requested.
* Change the Frames scenario as requested.
---------
Co-authored-by: Tig Kindel <tig@users.noreply.github.com>
* Builds CollectionNavigator support into UI Catalog for TableView (#2584)
* Builds collectionnav support into UI cat for TableView
* Fixes keyboard mapping
* MultiSelect = false for TableView
* MultiSelect = false doesn't unbind ctrl-a
* Fixes#2581 Refactor CollectionNavigator so it supports TableView (#2586)
* Refactor CollectionNavigator to a base and a collection implementation
* Refactor CollectionNavigatorBase to look for first match smartly
* Add TableCollectionNavigator
* Make TableCollectionNavigator a core part of TableView
* Fix bad merge
* Added tests for tableview collection navigator
* Add FileDialogCollectionNavigator which ignores . and directory separator prefixes on file names
* whitespace fixes
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Resolving merge conflicts.
* Fix merge errors.
* Fix merge errors.
* Add Command.Accept and snap to the selected glyph when ShowHorizontalScrollIndicator change to true.
* Reformat.
* Reformat again.
---------
Co-authored-by: Thomas Nind <31306100+tznind@users.noreply.github.com>
Co-authored-by: Tig Kindel <tig@users.noreply.github.com>
* Comment/warning clean up
* Moved Text and Drawing out
* Moved Layout out
* Removed extra lines
* Removed Mouse out
* Reorgainzed View
* API docs
* removed border.cs
* TopLevel.Resized -> TerminalResized
* Mdi -> Overlapped
* Removed confusing and un-needed WillPresent
* privates -> _
* Tweaked RunLoop API
* Added View.BorderStyle and renamed BorderStyle enum to LineStyle
* Fixed a lot of things and broke everything else
* Fixed things
* Updated DialogTests
* Updates including Rect unit tests
* Fixed Dialog & MessagBox tests
* Fixed AllviewsTester bug
* Fixed AllviewsTester bug
* Removed Border class
* Renamed View privates with _
* Removed comments in MessageBox.cs
* Fixes#2511. Cannot cycle selections in lists/tables when Numlock is pressed.
* The Capslock, Numlock and Scrolllock tests can be run once.
* Done requested changes.