Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes #2181 - (Really) Adds configuration manager #2364

Closed
wants to merge 241 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
241 commits
Select commit Hold shift + click to select a range
e6b6551
protottype uicat scenario
tig Nov 5, 2022
7817295
add split container prototype
tznind Dec 23, 2022
90c08ef
Convert to full properties
tznind Dec 23, 2022
e9a5c49
Prototype support for collapsed panels
tznind Dec 23, 2022
9f26734
Fix scenario duplication
tznind Dec 23, 2022
ca0cd7c
Improved scenario to allow flipping splitter orientation
tznind Dec 23, 2022
8e30840
Started work on dragging splitter
tznind Dec 23, 2022
35b4987
Splitter dragging kinda working
tznind Dec 23, 2022
32aa51a
Fix dragging splitter line and preserve when Pos is percent
tznind Dec 23, 2022
e430ad8
Keyboard resizing of split container mostly working
tznind Dec 23, 2022
08bd85e
Merge branch 'develop' into splitcontainer
tznind Dec 23, 2022
c0383c2
Allow tabbing to SplitContainer and add symbol to show it can be resized
tznind Dec 24, 2022
1a62121
Merge branch 'splitcontainer' of https://github.com/tznind/gui.cs int…
tznind Dec 24, 2022
e604f8d
Add tests and indicator of resizability (Driver.Diamond)
tznind Dec 24, 2022
45d697d
Fix keyboard moving SplitterContainer distance jumping about the place
tznind Dec 24, 2022
b1c7efe
Respect minimum panel sizes and scenario support for toggle collapse
tznind Dec 24, 2022
d576799
Fix keyboard splitter adjustment to avoid float boundary issues (resu…
tznind Dec 24, 2022
33239bc
Initialize SplitContainer in tests
tznind Dec 24, 2022
df64aa8
Added SplitterMoved event
tznind Dec 24, 2022
5d39ae7
Made SplitterDistnce throw if passed unsupported Pos types
tznind Dec 24, 2022
a4d49d0
Add test for ensuring PosFactor preserves its type during keyboard sp…
tznind Dec 24, 2022
ae4575c
xmldocs
tznind Dec 24, 2022
dd246b7
Change UICatalog to use SplitContainer
tznind Dec 25, 2022
720b9fc
Merge branch 'develop' into splitcontainer
tznind Dec 31, 2022
74524a2
made titles work; refactored; fixed bugs
tig Dec 31, 2022
4465c42
Merge pull request #146 from tig/tznind-splitcontainer
tznind Jan 1, 2023
be4474a
Fix compilation errors in tests and disabled border (in tests)
tznind Jan 1, 2023
e4cb4b9
Working on fixing tests
tznind Jan 1, 2023
634d587
Fixing SplitContainer unit tests
tznind Jan 2, 2023
3354cb5
Fix failing unit tests by updating MinSize expectations
tznind Jan 2, 2023
0d03c6e
Merge branch 'develop' into splitcontainer
tznind Jan 2, 2023
6b5588c
Add 3 way split to SplitContainerExample
tznind Jan 3, 2023
59f2586
Merge branch 'develop' into splitcontainer
tznind Jan 3, 2023
bf7e251
Fix CanFocus to true and sort control positions
tznind Jan 3, 2023
5fdd57f
Merge branch 'splitcontainer' of https://github.com/tznind/gui.cs int…
tznind Jan 3, 2023
2203d87
Merge branch 'develop' into splitcontainer
tig Jan 5, 2023
63c3742
Fixed wrong panel2 MinSize calculation when there is a border
tznind Jan 6, 2023
e745bc2
Rename splitContainer2 to nestedSplitContainer in scenario for clarity
tznind Jan 6, 2023
675a6b0
Remove redundant comment
tznind Jan 6, 2023
61a4544
Add menu items for toggling borders in SplitContainerExample
tznind Jan 6, 2023
440af79
Merge branch 'develop' into visual_style_manager
tig Jan 8, 2023
0768d5e
wip - colorjsonconverter
tig Jan 9, 2023
ae00ac3
Initial WIP
tig Jan 9, 2023
228ca60
schema support
tig Jan 10, 2023
e0989ca
schema support
tig Jan 10, 2023
b8419ce
Refactored to be a Config manager
tig Jan 10, 2023
fbe04f9
Refactored to be a Config manager
tig Jan 10, 2023
5b4c9ba
New UI Catalog color scheme
tig Jan 10, 2023
4cbe51d
More refactoring & cleanup
tig Jan 10, 2023
1196e34
UI Catalog now watches all config dirs
tig Jan 11, 2023
581e8ac
Move Setup logic into LayoutSubviews and lay groundwork for recursion
tznind Jan 11, 2023
f3de819
Almost ready for serious review
tig Jan 12, 2023
863ffa6
Updated UI Config scenario for config editor
tig Jan 12, 2023
b0ba942
Merge branch 'develop' into visual_style_manager
tig Jan 12, 2023
5b59073
Renamed config editor
tig Jan 12, 2023
1354b89
Merge branch 'develop' of tig:gui-cs/Terminal.Gui into visual_style_m…
tig Jan 12, 2023
5a0637d
Merge branch 'visual_style_manager' of tig:tig/Terminal.Gui into visu…
tig Jan 12, 2023
eae89dc
fixed curses bug
tig Jan 12, 2023
1d0a06e
Refactored to include themes
tig Jan 13, 2023
ea9c22e
Fixed a bug that broke unit tests
tig Jan 13, 2023
806e982
Moved Configuration to separate .cs file. Made Config abstract
tig Jan 13, 2023
89aaec8
refactored Config
tig Jan 13, 2023
2210551
Bunches of unit tests
tig Jan 13, 2023
f3d6d92
Working on layout
tznind Jan 14, 2023
9259d28
Merge branch 'line-drawer' into recursive-split
tznind Jan 14, 2023
83c986d
Use LineCanvas for border drawing
tznind Jan 14, 2023
ef2bed9
Connected lines sort of working
tznind Jan 14, 2023
849775c
Add SplitContainerNesting scaffolding
tznind Jan 14, 2023
7abf2d7
Vamp up split container nesting
tznind Jan 14, 2023
da14ccd
Make split container nesting scenario better and scrap old example
tznind Jan 14, 2023
a34a2e9
Fix line canvas drawing in SplitContainer
tznind Jan 14, 2023
a3281a4
Fix tests and drawing of splitter moving Rune
tznind Jan 14, 2023
8626c4e
Enforce minimum panel sizes
tznind Jan 14, 2023
86564d5
Fix subcontainers in SplitContainerNesting example not having Titles
tznind Jan 14, 2023
ca8e646
Fix SplitContainerNesting container count
tznind Jan 14, 2023
ce6ffe3
Fix reading wrong bounds variable for Panel1 Height/Width in DimFunc
tznind Jan 14, 2023
c425cc6
dark/light themes
tig Jan 15, 2023
39098ce
tweaked themes
tig Jan 15, 2023
7dc29a6
Added DefaultWindowBorderStyle and DefaultFrameViewBorderStyle to Theme
tig Jan 15, 2023
8497dd7
Move panel splitting logic (SplitLeft/SplitRight) to main SplitContai…
tznind Jan 15, 2023
b5b1f0b
Implement `parentSplitPanel` reference (assigned during on `TrySplit`)
tznind Jan 15, 2023
a470451
TrySplitPanel now migrates PanelTitle to children
tznind Jan 15, 2023
c0b8edf
Fix up tests
tznind Jan 15, 2023
e8a7b7c
Added more asserts to diagnose Label issue
tznind Jan 15, 2023
7e8e095
Fix not splitting orientation correctly after refactoring
tznind Jan 15, 2023
50968c5
Merge branch 'gui-cs:develop' into splitcontainer
tznind Jan 15, 2023
05afde8
Fix width
tznind Jan 15, 2023
62b98dc
Disable AutoSize in SplitContainer test/scenario as it overspills par…
tznind Jan 15, 2023
9c324f0
Refactored Load in prep for Save
tig Jan 15, 2023
227e802
Merge branch 'visual_style_manager' of tig:tig/Terminal.Gui into visu…
tig Jan 15, 2023
8b69f8d
Removed defunct ConsoleDriver.SetAttribute
tig Jan 15, 2023
0c39eea
Merge branch 'develop' into visual_style_manager
tig Jan 16, 2023
fda24eb
merge and fix bug in THemes
tig Jan 16, 2023
feaf3c1
fix merge issues
tig Jan 16, 2023
6092e61
fix merge issues
tig Jan 16, 2023
8487422
Rename SplitContainer to SplitView
tznind Jan 16, 2023
e7e8d8a
Merge branch 'line-drawer' into splitcontainer
tznind Jan 19, 2023
824eb06
Update to latest code for LineCanvas
tznind Jan 19, 2023
3029caf
WIP: Not working - refactoring
tig Jan 19, 2023
ac1f174
more WIP
tig Jan 20, 2023
2d8b398
merged fixes_2296 in
tig Jan 20, 2023
4f2212d
Merge branch 'tabviewclick' into splitcontainer
tznind Jan 21, 2023
5b5f40f
Add SplitView to Notepad
tznind Jan 21, 2023
5add477
WIP split container Notepad
tznind Jan 21, 2023
56072f3
Remove `SetView1` and `SetView2` methods and just mount tab views pro…
tznind Jan 21, 2023
12c21d3
Merge branch 'develop' into visual_style_manager
tig Jan 21, 2023
8d02efd
WIP support more than 2 views at a given level/orientation
tznind Jan 21, 2023
f27aae2
WIP Tests almost compiling
tznind Jan 21, 2023
395fc3d
WIP new multi tile system compiling
tznind Jan 21, 2023
9bdd2a6
WIP: unit test fixes
tznind Jan 22, 2023
40ff384
Tests passing again after refactor to tiles
tznind Jan 22, 2023
338e0bf
Fix commented out code in SplitViewNesting
tznind Jan 22, 2023
1a00e49
Add SplitRight back in again for Notepad (still broken)
tznind Jan 22, 2023
a50f9cd
Add InsertTile method
tznind Jan 22, 2023
df9ae17
Add tests for insert middle and end
tznind Jan 22, 2023
c6ce53b
more progress; still broken
tig Jan 22, 2023
9c88187
fixed Color/Attribute Initialized bug
tig Jan 22, 2023
7a18bdb
is colorscheme json converter needed?
tig Jan 22, 2023
dc46dd5
colorscheme json converter not needed
tig Jan 22, 2023
98ce673
colorscheme json converter not needed
tig Jan 22, 2023
cc79d24
Revert "colorscheme json converter not needed"
tig Jan 22, 2023
6c6071b
Fix tile widths for middles (when 3+ panels)
tznind Jan 22, 2023
b420384
Implement Notepad split directions
tznind Jan 22, 2023
906b1ac
Merge branch 'develop' into splitcontainer
tznind Jan 22, 2023
1546961
Fix tab order to tile1, splitter1, tile2
tznind Jan 23, 2023
8373fbe
more WIP
tig Jan 23, 2023
9dc5e68
Add tests
tznind Jan 24, 2023
762a96d
massive refactor to make adding settings easy
tig Jan 25, 2023
c62867c
fixed lame bug
tig Jan 25, 2023
1225ba4
regen docs
tig Jan 25, 2023
f82029a
new sample gif
tig Jan 25, 2023
427950b
updated library config.json
tig Jan 25, 2023
147a3c1
adjusted Border init logic; revamped ConsoleDriver SetAttribute
tig Jan 25, 2023
eadf4cb
Created border/Dialog config
tig Jan 25, 2023
facc6a6
broken WIP - pushing so I can sync to another machine
tig Jan 26, 2023
f1297db
Fixing layout issues
tznind Jan 26, 2023
6eae10b
Fix SplitView tests
tznind Jan 26, 2023
b94041e
Reference Bounds in TabView to avoid redrawing issue with repainting
tznind Jan 27, 2023
fb16723
Add RemoveTile method
tznind Jan 27, 2023
258e627
Rename SplitView to TileView
tznind Jan 27, 2023
5369164
Fixes and improvements in Notepad Tile removal
tznind Jan 27, 2023
ecdc8e3
Added tests for RemoveTile and made it return the removed Tile for co…
tznind Jan 27, 2023
eaa4dfd
xmldoc and warnings
tznind Jan 27, 2023
c740768
Border figured out
tig Jan 27, 2023
ebcbf20
Unit test flushing out
tig Jan 28, 2023
d0d1760
Render Titles for Tiles properly
tznind Jan 28, 2023
6379005
Fix nesting scenario name and titles
tznind Jan 28, 2023
2b4bec2
Update Title comment to reflect new behaviour
tznind Jan 28, 2023
933f26f
IndexOf now supports recursive search
tznind Jan 28, 2023
5d6ccb9
Address todos
tznind Jan 28, 2023
5c2c53d
Tests for IsRootTileView
tznind Jan 28, 2023
6a48bcb
More unit tests and API tweaks
tig Jan 29, 2023
44a6112
More unit tests and API tweaks
tig Jan 29, 2023
b614a7b
TileView now respects Tile.View.Visible
tznind Jan 29, 2023
fd8e229
Add guard to HideSplittersBasedOnTileVisibility
tznind Jan 29, 2023
42813b0
Added TestNestedContainer3RightAnd1Down_TileVisibility_WithoutBorder
tznind Jan 29, 2023
da5ca55
Create scaffold for min sizes multi panel tests
tznind Jan 29, 2023
61e2fac
Add test for Int.Max minwidth
tznind Jan 30, 2023
9d1a429
Implementing nullable bool checked on CheckBox.
BDisp Jan 30, 2023
9dbc702
Rename Checkbox.cs to CheckBox.cs
BDisp Jan 30, 2023
886d650
Rename CheckboxTests.cs to CheckBoxTests.cs
BDisp Jan 30, 2023
489a802
Implementing nullable bool checked on Menu.
BDisp Jan 30, 2023
5a46e49
Prevent moving splitter lines over one another
tznind Jan 31, 2023
8c766a1
Refactor to use new method IsValidNewSplitterPos
tznind Jan 31, 2023
58eca0d
Enforce min size on move splitter not Setup
tznind Jan 31, 2023
4f26490
Allow resizing left/right even when splitter offscreen as long as mov…
tznind Jan 31, 2023
66c6836
Updated tests to match new max/min size implementation
tznind Feb 1, 2023
2caab5d
Add tests for resizing splitter 2 and ensuring splitter does not go t…
tznind Feb 1, 2023
6be225b
Only show Expected/But Was for failing tests in AssertDriverContentsAre
tznind Feb 1, 2023
826b5b8
Fix min sizes calculation
tznind Feb 1, 2023
e09aa09
Added NoBorder versions of panel sizes tests
tznind Feb 1, 2023
34e517b
Whitespace layout fix
tznind Feb 1, 2023
0a51972
xmldoc tidy
tznind Feb 1, 2023
45e2218
TrySplitTile moves Title across to new child too
tznind Feb 1, 2023
e8df68c
Remove stale TODO statements
tznind Feb 1, 2023
a2c98ce
Added AppSettings Scope
tig Feb 1, 2023
3cb9832
Fix titles overruning bounds in some cases
tznind Feb 2, 2023
814236b
refinement
tig Feb 3, 2023
228a901
tweaked API for notifications
tig Feb 3, 2023
0e59701
option to catch json errors
tig Feb 3, 2023
e890f44
hardened enumerators
tig Feb 3, 2023
cbd4b9f
fixed api doc
tig Feb 3, 2023
16fb6d7
fixed api doc
tig Feb 3, 2023
9f2be6e
tweaked config editor
tig Feb 3, 2023
d9fb0b7
fixed crash and tests
tig Feb 3, 2023
4d2701f
Merge branch 'v2' into nullable-bool-checked
tig Feb 3, 2023
5ca7408
Merge pull request #2313 from BDisp/nullable-bool-checked
tig Feb 3, 2023
6dad57c
Merge branch 'develop' into visual_style_manager
tig Feb 5, 2023
c0e0f97
Merge branch 'develop' into splitcontainer
tznind Feb 5, 2023
b39413c
Remove stale bounds hacks
tznind Feb 5, 2023
619435e
Fix failing tests after merge by adding SetNeedsDisplay calls before …
tznind Feb 5, 2023
f758411
merge develop
tig Feb 7, 2023
ae0b511
merge latest develop
tig Feb 7, 2023
f8f08b1
Merge branch 'develop' into visual_style_manager
tig Feb 7, 2023
7b347b5
ignore .tui
tig Feb 7, 2023
a0169e0
del orig files
tig Feb 7, 2023
7aa6b67
doc update
tig Feb 7, 2023
1684a15
Better json exception logging
tig Feb 8, 2023
2301a09
Moved update API to be stream based
tig Feb 8, 2023
e92d2cc
Merge branch 'develop' into splitcontainer
tig Feb 9, 2023
98e9bb2
merge and udpate
tig Feb 9, 2023
7174059
Merge branch 'fixes_2336_ignore_border' into tznind-splitcontainer
tig Feb 9, 2023
9cb5e8c
merging tigs changes
tig Feb 9, 2023
040bbc4
merging tigs changes
tig Feb 9, 2023
cd20dee
merging tigs
tig Feb 9, 2023
6e92b90
more merge
tig Feb 9, 2023
f64ca56
Merge branch 'develop' into splitcontainer
tig Feb 9, 2023
503a8ca
fixed merge issues
tig Feb 9, 2023
00d46ee
udpated unit tests
tig Feb 9, 2023
532c144
Merge branch 'tznind-splitcontainer' into visual_style_manager
tig Feb 9, 2023
236cc42
Add disposal tests
tznind Feb 9, 2023
0261e4b
Fix tests for renaming View to ContentView
tznind Feb 9, 2023
64a8985
Merge branch 'develop' of tig:gui-cs/Terminal.Gui into visual_style_m…
tig Feb 10, 2023
4414bc4
Merge branch 'splitcontainer' of github.com:tznind/gui.cs into visual…
tig Feb 10, 2023
e057458
Merge branch 'develop' into splitcontainer
tig Feb 10, 2023
ac05298
Merge branch 'develop' of tig:gui-cs/Terminal.Gui into tznind-splitco…
tig Feb 10, 2023
bb8ff2c
WIP tileview experiemnts
tig Feb 10, 2023
8259f00
View->ContentView
tig Feb 10, 2023
e685ac0
tileview experiments
tig Feb 11, 2023
560a059
Merge branch 'develop' into visual_style_manager
tig Feb 11, 2023
56eeadf
Merge branch 'develop' into tznind-splitcontainer
tig Feb 11, 2023
8645541
WIP
tig Feb 12, 2023
09ab30b
Merge branch 'develop' into tznind-splitcontainer
tig Feb 12, 2023
ccadf81
FrameView experiment
tig Feb 12, 2023
dc4fe69
Merge branch 'splitcontainer' of tig:tznind/gui.cs into tznind-splitc…
tig Feb 12, 2023
6558af1
Revert "Merge branch 'splitcontainer' of tig:tznind/gui.cs into tznin…
tig Feb 12, 2023
d15374a
Added TODOs
tig Feb 12, 2023
f26c556
Demo proving Title rendering is easy
tig Feb 12, 2023
0a53f7e
Demo proving Title rendering is easy
tig Feb 12, 2023
619a66a
messing with offset location
tig Feb 13, 2023
585857b
more expiermnets
tig Feb 15, 2023
1f00c88
added View2
tig Feb 15, 2023
32c9c80
Merge branch 'tznind-splitcontainer' into v2
tig Feb 15, 2023
086c3b1
merge latest develop
tig Feb 20, 2023
32983b1
merge animation
tig Feb 20, 2023
b7fe14e
attempting to merge
tig Feb 20, 2023
29ccbe3
attempting to merge
tig Feb 20, 2023
67bee8b
updated v2 branch to develop
tig Feb 20, 2023
1079793
Merge branch 'develop' into v2_config_manager
tig Feb 20, 2023
eb90d6a
Merge pull request #2363 from tig/v2_config_manager
tig Feb 20, 2023
a763e2b
attempting merge again
tig Feb 20, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,5 @@ UnitTests/TestResults
demo.*

*.deb

*.tui/
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ _The Documentation matches the most recent Nuget release from the `main` branch
* **Cross Platform** - Windows, Mac, and Linux. Terminal drivers for Curses, [Windows Console](https://github.com/gui-cs/Terminal.Gui/issues/27), and the .NET Console mean apps will work well on both color and monochrome terminals.
* **Keyboard and Mouse Input** - Both keyboard and mouse input are supported, including support for drag & drop.
* **[Flexible Layout](https://gui-cs.github.io/Terminal.Gui/articles/overview.html#layout)** - Supports both *Absolute layout* and an innovative *Computed Layout* system. *Computed Layout* makes it easy to layout controls relative to each other and enables dynamic terminal UIs.
* **[Configuration & Themes](https://gui-cs.github.io/Terminal.Gui/articles/config.html)** - Terminal.Gui supports a rich configuration system that allows end-user customization of how the UI looks (e.g. colors) and behaves (e.g. key-bindings).
* **Clipboard support** - Cut, Copy, and Paste of text provided through the [`Clipboard`](https://gui-cs.github.io/Terminal.Gui/api/Terminal.Gui/Terminal.Gui.Clipboard.html) class.
* **[Arbitrary Views](https://gui-cs.github.io/Terminal.Gui/api/Terminal.Gui/Terminal.Gui.View.html)** - All visible UI elements are subclasses of the `View` class, and these in turn can contain an arbitrary number of sub-views.
* **Advanced App Features** - The [Mainloop](https://gui-cs.github.io/Terminal.Gui/api/Terminal.Gui/Terminal.Gui.MainLoop.html) supports processing events, idle handlers, timers, and monitoring file
descriptors. Most classes are safe for threading.
* **Advanced App Features** - The [Mainloop](https://gui-cs.github.io/Terminal.Gui/api/Terminal.Gui/Terminal.Gui.MainLoop.html) supports processing events, idle handlers, timers, and monitoring file descriptors. Most classes are safe for threading.
* **Reactive Extensions** - Use [reactive extensions](https://github.com/dotnet/reactive) and benefit from increased code readability, and the ability to apply the MVVM pattern and [ReactiveUI](https://www.reactiveui.net/) data bindings. See the [source code](https://github.com/gui-cs/Terminal.Gui/tree/master/ReactiveExample) of a sample app in order to learn how to achieve this.

## Showcase & Examples
Expand Down
Loading