Commit Graph

66 Commits

Author SHA1 Message Date
Thomas Nind
cd6cfd7f62 Fixes #2683 - Adds an ITableSource which wraps a TreeView<T> (#2685)
* WIP: Add TreeTableSource

* Improve expand/collapse

* Render branch/tree properly

* Simplify TreeTableSource to only allow one TreeView

* Add TestTreeTableSource_BasicExpanding test

* Add test combining checkbox and tree together

* Move tree example into main TableEditor scenario
(deleting TreeTableExample.cs)

* Mouse support for expanding/collapsing branches

* Make TreeTableSource work with CheckBoxTableSourceWrapperByObject<T>

* Add tests for mouse expand/collapse

* Improve quality of TableEditor scenario

* Fix mouse expanding not refreshing screen

* Fixed null reference when clicking in header lines

* Add null checks to scenario now it can show trees as well as data tables

* Switch to underscore prefix on private members

* Remove accidentally committed file

* Add setup/teardown to explicitly set driver checked/unchecked glyphs

---------

Co-authored-by: Tig <tig@users.noreply.github.com>
2023-07-05 16:45:42 -06:00
Thomas Nind
e2feeefa93 Fixes #2663 - No more nested classes (#2664)
* 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
2023-05-23 13:42:47 +02:00
Tig
4d6781e5f9 Fixes #2649 - Unit Tests on Windows are failing (#2650)
* attempt to fix

* Removed unneeded ToString() calls

* Forced all unit tests to use FakeClipboard
2023-05-21 17:45:02 +02:00
Tig
ecf6d4f340 Revamps CharMap (#2625)
* 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.

* Fixed bugs

* Scenario desc

* 😂Code review

* Fixed merge issue

* 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.

* Fixed cursor issue?

* Switched to TableView

* Fixed select when sorted by range

* SearchNav now works with start/end

* Fixed text changed bug

* Added abilty to sort ascending/descending

* Minor tweaks to API docs

* Column width = 3

---------

Co-authored-by: BDisp <bd.bdisp@gmail.com>
2023-05-20 19:58:57 +02:00
BDisp
713b2c4725 Fixes #92. Remove dependency on ustring. (#2620)
* 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>
2023-05-20 19:35:32 +02:00
Thomas Nind
6cd79ada3a Fixes #2587 - Add CheckBoxTableSourceWrapper for TableView checkboxes (#2589)
* 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>
2023-05-10 07:33:19 +02:00
Nutzzz
440c529818 Some UICatalog scenario code style fixes (#2614) 2023-05-09 16:18:45 +02:00
Tig
dea5f0fe03 Fixes #2597. Enables standard glyphs to be set via ConfigurationManager (#2595)
* 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
2023-05-07 07:34:02 +02:00
Thomas Nind
038cf8aa45 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>
2023-04-28 14:21:06 -06:00
Thomas Nind
5cefd5bf0b Fixes #2553 - Fix HotFocus color when FullRowSelecting being used for VLines on left/right of TableView (#2557)
* 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>
2023-04-16 09:10:24 -06:00
Nutzzz
dcdb4f9b49 Add Style.ShowHeaders to TableView (#2514)
* 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>
2023-04-15 18:27:05 -06:00
Thomas Nind
ba473ffe05 Adds ShowHorizontalBottomline (#2552) 2023-04-15 18:19:04 -06:00
Tig
b4552ee14b Fixes #2493. Move all layout code out of View (and Toplevel) into a layout helper class (#2544)
* 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
2023-04-14 10:26:10 -06:00
Tig
a637f8a29c Fixes #2486 - Removes old Border and fixes a litany of related things (#2525)
* 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
2023-04-10 17:34:52 -06:00
BDisp
d9ff0da007 Fix changed event and reformat in Scenarios. 2023-03-17 17:12:10 +00:00
BDisp
846494ea7c Resolving merge conflicts. 2023-03-17 11:24:53 +00:00
Tig
c94f9165f4 Makes UI Catalog Scenarios use Theme and top-level color scheme (#2401)
* lots of clean up

* scenarios now get themes from uicatalog
2023-03-16 07:50:09 -06:00
tznind
2ed71e284c Move all nested eventargs out of parent classes to root 2023-03-15 19:35:21 +00:00
tznind
796e15a64d Added DrawEventArgs 2023-03-12 02:39:32 +00:00
tznind
09683a2cd5 Refactor more event Action to event EventHandler 2023-03-12 02:31:22 +00:00
tznind
3bec36ac47 Change Action to EventHandler for more events 2023-03-12 02:10:22 +00:00
tznind
43f67a6387 Convert more Actions to EventHandlers in View 2023-03-11 19:55:08 +00:00
tznind
fcc75e7147 Update View Action events to EventHandler events 2023-03-11 19:46:46 +00:00
Thomas Nind
705d4307e3 Fixes #1842 - Add support for toggling selected cells e.g. with space (#2386)
* Add support for toggling selected cells e.g. with space

* Make toggle cell selection work better with FullRowSelect

* Test for toggle cell selection

* Test and fix for full row select toggling

* Make toggle work with shift selected blocks

* Make extend selection ignore toggled regions when considering pushing a new head to selection stack
2023-03-02 09:35:54 -07:00
BDisp
489a802df6 Implementing nullable bool checked on Menu. 2023-01-30 21:02:14 +00:00
tznind
f362e40ca0 Add sort to context menu and fix naming of context items when they are sorted 2022-12-03 19:59:52 +00:00
tznind
6136656327 Added context menu for show/hide columns in TableEditorScenario 2022-12-03 19:49:42 +00:00
tznind
643e53b575 Add column sorting to TableEditor 2022-11-22 10:57:03 +00:00
Charlie Kindel
bf1ed31281 Refactored UI Catalog and added tons of unit tests 2022-11-03 15:58:15 -06:00
Thomas Nind
0e9811c52a TableView unicode scenario usability (#1762)
- Add additional unicode ranges from CharacterMap
- Format the unicode symbol number with 0x prefix
2022-06-01 13:41:12 -07:00
Thomas Nind
13af2b1662 Support for flexible column widths in TableView (#1760)
* Support for flexible column widths in TableView

* Fixed not respecting min width of MinAcceptableWidth an added UICatalog support

* Added menu options for SmoothHorizontalScrolling and setting all MinAcceptableWidth to 1

* spelling fix
2022-06-01 13:33:20 -07:00
Tig Kindel
5b4716bef9 Merge pull request #1761 from tznind/table-char-map
Added unicode testing code to TableEditor
2022-05-30 15:58:09 -07:00
Thomas Nind
ee2336783c Added unicode testing code to TableEditor 2022-05-30 11:46:28 +01:00
Thomas Nind
d68a2e8b8c Add horizontal scroll idicators to TableView (#1756)
* Add horizontal scroll idicators to TableView

* Made horizontal scroll indicators clickable

* Added setting ShowHorizontalScrollIndicators defaulting to true
2022-05-28 14:27:08 -07:00
Charlie Kindel
32ae3cb62f Cleaned up Categories and Scenario descripitons. 2022-04-17 15:48:48 -07:00
Charlie Kindel
83f70cbf39 Revert "Revert "Reorganizing scenarios categories as per #1648""
This reverts commit 359ba385c8.
2022-04-17 14:17:40 -07:00
Charlie Kindel
359ba385c8 Revert "Reorganizing scenarios categories as per #1648"
This reverts commit 3362ca849d.
2022-04-17 14:14:44 -07:00
BDisp
3362ca849d Reorganizing scenarios categories as per #1648 2022-03-17 16:39:15 +00:00
Thomas Nind
446759a3f2 Made RowColorGetterDelegate follow same pattern as CellColorGetter 2021-07-07 12:32:22 +01:00
Thomas Nind
29c14876c0 Changed CellColorGetterDelegate to use its own class for args CellColorGetterArgs to future proof the API against breaking changes 2021-07-07 12:15:35 +01:00
Thomas Nind
f536d906d4 Made selected cell invert first character optional as a TableStyle 2021-06-29 09:27:28 +01:00
Thomas Nind
e460650a3c Changed Scenario alt colors to Win.ColorScheme instead of Colors.Base 2021-06-29 07:16:25 +01:00
tznind
98dfcc4959 Added support for full row coloring 2021-06-28 19:27:29 +01:00
tznind
b3ce131fbf Added support for coloring cells 2021-06-28 18:16:48 +01:00
Thomas Nind
0dd0f2e5c4 TableView - adds last column dividing line (#1289)
* Adds a final vertical column line at the end of the last header in TableView

* Added clear line as first step in RenderRow

* Added TableStyle.EnforceMaxWidthOnLastColumn

* Added Scenario toggle setting and tests

* Fixed EnforceMaxWidthOnLastColumn when Bounds match exactly the last column width

* Fixed whitespace and comment on ColumntoRender.Width

* Renamed EnforceMaxWidthOnLastColumn to ExpandLastColumn
2021-05-10 20:58:15 -07:00
Thomas Nind
6a9e27761f Nested types for TabView and TableView (#1243)
* Made TabView classes nested

* Moved TableView classes to nested
2021-04-26 08:58:40 -07:00
Charlie Kindel
b29240f362 Code coverage (#1235)
* tweaked version # for v1.0.0-beta.10

* tweaked version # for v1.0.0-beta.11

* Updated readme and revision history for 1.0

* excluding test results

* Added support for viewing code coverage results with Fine Code Coverage

* add generating CC to CI/CD

* refactored unit test namespaces

* more refactoring. commented out failing test.

* Removed UnitTests and UICatalog from code coverage reporting

* made Application and test more deterministic

* disabled Multi_Thread_Toplevels because it is currently broken and don't understand why

* updated threading test per @bdisp

* testing cc badge stuff

* another test

* using coverlet.settings

* trying copy

* trying cp. duh.

* trying mv.

* wrong path

* print

* chaging badge output for testing

* yaml error

* fixed code coverage

* moved dimtests to core
2021-04-25 10:18:31 -07:00
tznind
1549d775c5 Added vertical scrollbars 2021-01-27 08:29:12 +00:00
tznind
d988a34444 Added SelectAll, better selection iteration and validation 2021-01-03 21:57:00 +00:00
tznind
df3e191a72 Added CellActivated event which occurs on Enter or double click 2020-12-31 13:38:15 +00:00