* Move all public nested classes out into own files
* Move more nested classes out
* Tidy up and treat CA1034 as an error. Fix remaining nested classes.
* Remove partial keyword from ThemeManager as it is no longer needed
* Rename Bar to BarSeriesBar to more clearly indicate it is part of GraphView subsystem
* Fix xmldoc references
* Revert nesting changes to ConsoleDrivers
* Change to file scoped namespaces and revert renames
- LineCanvasCell back to just Cell
- ApplicationRunState back to just RunState
* Switch to file scoped namespaces
* 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.
* Updated RuneJsonConverter to deal with more formats
* nonBMP apple
* Adjusted unit tests
* Added ConsoleDriver.IsRuneSupported API
* Removed debug code
* Disabled non-BMP in CursesDriver
---------
Co-authored-by: BDisp <bd.bdisp@gmail.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>
* Move unicode file/folder icons to Glyphs
* Change to DirectorySeparatorChar for folder icon when no unicode
* Fixed test expectations for linux path separator
* Add explicit file name unicode mappings
* Added nerd file extensions
* Add folder icon
* Added tests and attribution
* Fix tree view not using System.IO.Abstractions
* Make FileDialog tree use IconGetter
* Added context to IconGetter
* Make Nerd a config setting
* Fix typo in attribution
* tidy up
* Change open folder check to null or whitespace
* Update class diagram to show new classes
* Rename configuration property NerdFonts and set it to ThemeScope
* Move NerdFonts setting to ConsoleDriver
* Move NerdFonts setting to NerdFonts class and rename Enable
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Add CheckBoxTableSourceWrapper
* Fix column offsets when there are checkboxes column
* Fix index
* Add CellToggledEventArgs and handle in CheckBoxTableSourceWrapper
* Add xmldoc for CheckBoxTableSourceWrapper
* Add tests and default keybinding for toggle to CheckBoxTableSourceWrapper
* Add unit tests for TableView checkboxes
* Split CheckBoxTableSource to two subclasses, one by index the other by object
* Add more tests for CheckBoxTableSourceWrapperByObject
* Refactor for readability
* Add UseRadioButtons
* Add test for radio buttons in table view
* Fix xmldoc
* Fix regression during radio refactoring
* Fix build errors for new glyph and draw method names
* Fix tests to expect new unicode glyphs
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Add CheckBoxTableSourceWrapper
* Fix column offsets when there are checkboxes column
* Fix index
* Add CellToggledEventArgs and handle in CheckBoxTableSourceWrapper
* Add xmldoc for CheckBoxTableSourceWrapper
* Add tests and default keybinding for toggle to CheckBoxTableSourceWrapper
* Add unit tests for TableView checkboxes
* Split CheckBoxTableSource to two subclasses, one by index the other by object
* Add more tests for CheckBoxTableSourceWrapperByObject
* Refactor for readability
* Add UseRadioButtons
* Add test for radio buttons in table view
* Fix xmldoc
* Fix regression during radio refactoring
* Fix build errors for new glyph and draw method names
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Add ListTableSource for TableView to display an IList in a columned view
Also adds a global MinCellWidth to TableView
* Code style fixes
* Include padding in MinCellWidth calculation
* Unit Tests for Min/MaxCellWidth and ListTableSource
* Rename Redraw to Draw after refactor
* Rename Redraw to Draw after refactor
---------
Co-authored-by: Tig <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#2558. MenuBar positions wrong in some situations.
* Replacing Application.Top with Application.Current.
* Fix typo.
* Fix shortcut tag overlapping help on smaller width and add more unit test.
* Resizing the console will close all opened menus.
* Resize first the console before show ContextMenu.
* Remove DriverFrame and DriverFrameOffset as not relevant.
* Replace _frame with Frame as requested.
* Fix xml document comment.
* Compare equality between Dialog and Application.Top.
* Move GetDriverLocationOffset and GetDriverLocationOffsetFromCurrent to the Menu.cs.
* Fix merge errors.
* Ensure menu is closed on click.
* Force Height always be 1 to avoid mouse events respond even outside bounds.
* Recovering UseSubMenusSingleFrame hope doesn't break again.
* Fix bugs and made requested changes.
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* 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>
* 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>
* 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>
* 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.
* 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>
* 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>
* Add many styles to SpinnerView
* Add SpinnerStyles as a nested class
* Allow zero as valid spinner delay value
* Change from BorderStyle to LineStyle
* Rename SpinDelayInMilliseconds to just SpinDelay
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Add additional LineStyles
* Fix WizardTests because of renamed runes
* BorderFrame -> Border
* Fix the layout of Border Scenarios
* Fix for LineCanvas clipping
Based on comment https://github.com/gui-cs/Terminal.Gui/pull/2533#issuecomment-1508982468
* Update LineCanvasTests.cs
* Rename Thick border to Heavy
(less confusion with "Thickness")
Also:
* Add a few more runes for potential future use
* Fix Unit Tests
* Fix LineDrawing scenario to use 1 unit longer lines (matching new LineCanvas API).
* Fix LineDrawing scenario to better match mouse cursor location
---------
Co-authored-by: tznind <tznind@dundee.ac.uk>
* Fix HotFocus color when FullRowSelecting being used for VLines on left/right of TableView
* Add AlwaysUseNormalColorForVerticalCellLines style setting
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Add dir selection tests
* Make tests work on windows or linux
* Fixed multi-selection issues
- ".." no longer a valid multi select item
- Pressing Alt+O (or clicking ok) now prefers completing multi
selection (to completing text box path)
- Pressing Enter in text box still uses Path as selection (ignoring
any multi selection)
* Allow toggling <space> then <enter> to perform single dir select
* FileDialogState now remembers Path
Makes back button smoother in some nieche situations
* Added Culture property to FileDialog
* Fix bad date/time format
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Add Style.HideHeaders to TableView
* Revisions to TableView HideHeaders from review
Also add to UICatalog TableEditor Scenario
* Allow ShowHorizontalHeaderUnderline to draw top border even when HideHeaders is enabled; AlwaysShowHeader will keep it there on scroll
* Add Unit Tests for TableView.Style.HideHeaders
* Rename HideHeaders to ShowHeaders and simplify logic
---------
Co-authored-by: tznind <tznind@dundee.ac.uk>
* Fixes menu frame and unit test on the #2483.
* Reverting some code. Only color on ScrollView is failing.
* Fixes for the unit test Draw_A_ContextManu_Over_A_Dialog pass.
* 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
* POC
* View.DrawFrame now uses LineCanvas
* Fixes#2531. Toplevel should redraw only if it's needed.
* Fix toplevel when mdi is enabled preventing clear the screen twice.
* Massive LineCanvis updates
* Fixes#2534. Bounds isn't updating when the Frame is changed.
* Almost everything works!
* Had to disable a few tests but all unit test now pass again
* Deleted ConsoleDriver.DrawWindowFrame; hacked ProgressBar
* Deleted ConsoleDriver.DrawWindowTitle; moved to Frame.DrawTitle
* Renames BorderFrame to Border
* Removed old commented code
* Tweaked scenario
* Added auto convert \r\n to Enviornment.NewLine in TestHelpers.AssertEqual
* Fix merge errors.
* Fix AssertEqual newlines to platform-specific.
* Refactored frames drawing; view adds to its lineview, superview renders them
* New titlebar style based on Border.Top size; fixed bugs
* wzard bug
---------
Co-authored-by: BDisp <bd.bdisp@gmail.com>
* 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