Skip to content

Conversation

@tig
Copy link
Collaborator

@tig tig commented Nov 6, 2024

TabView is a great control for testing the library. It has a lot of capabilities that stretch the library. The v1 version was internally very complex in order to work around limitations in TG. In theory, v2 should enable making this control a lot simpler.

This PR is a WIP/Prototype that I started to determine if we're on the right track with these v2 capabilities:

  • Content scrolling - The TabRowView can/should just be a horizontally scrolling View where each Tab is just a subview. All the complex TabView logic for renering the Tabs and supporting scrolling can go away.
  • Layout - Dim.Auto, deferred layout, etc... should reduce the need for a lot of the internal complexity. Especially the complex layout math scattered around.
  • Drawing - There should be no need for TabView to draw lines directly. Each element can just be a View and leverage Border an automatic line joins currently enabled by SuperViewRendersLineCanvas
  • Navigation - How a user navs with the keyboard across Tabs, TabRowView, and the tab content is complex. The new v2 Nav system should make this easier.

Depends on

In #3798 auto-line join across Views is currently broken. I'm pausing work on this PR until I fix that.

Fixes

Proposed Changes/Todos

  • Prototype TabRowView that just uses content scrolling
  • Remove ContentView
  • Remove all complex LineCanvas stuff and just rely on Border

Pull Request checklist:

  • I've named my PR in the form of "Fixes #issue. Terse description."
  • My code follows the style guidelines of Terminal.Gui - if you use Visual Studio, hit CTRL-K-D to automatically reformat your files before committing.
  • My code follows the Terminal.Gui library design guidelines
  • I ran dotnet test before commit
  • I have made corresponding changes to the API documentation (using /// style comments)
  • My changes generate no new warnings
  • I have checked my code and corrected any poor grammar or misspellings
  • I conducted basic QA to assure all features are working

@tig tig merged commit 77ae7ae into gui-cs:v2_develop Nov 10, 2024
8 checks passed
@BDisp
Copy link
Collaborator

BDisp commented Nov 10, 2024

There is still a little flickering and the selected tab isn't draw with the focus attribute.

WindowsTerminal_vVIjfC24mx

@tig
Copy link
Collaborator Author

tig commented Nov 19, 2024

@BDisp - I somehow screwed this PR up and while it merged with v2_develop, it's not actually there.

Not sure what I did. Trying to fix it now.

@BDisp
Copy link
Collaborator

BDisp commented Nov 19, 2024

@BDisp - I somehow screwed this PR up and while it merged with v2_develop, it's not actually there.

Not sure what I did. Trying to fix it now.

Don't forget that my PR #3828 already fix this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants