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

TabControl Spec #28

Merged
merged 41 commits into from
Jul 31, 2019
Merged

TabControl Spec #28

merged 41 commits into from
Jul 31, 2019

Conversation

stmoy
Copy link
Contributor

@stmoy stmoy commented May 28, 2019

Spec review for TabControl.

@stmoy stmoy requested a review from a team as a code owner May 28, 2019 21:16
@stmoy stmoy self-assigned this May 28, 2019
active/tab/tabcontrol.md Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Outdated Show resolved Hide resolved
active/tab/tabcontrol.md Show resolved Hide resolved
stmoy and others added 3 commits July 3, 2019 10:42
Update the description of the TabView-in-titlebar sample based on feedback.

Co-Authored-By: MikeHillberg <18429489+MikeHillberg@users.noreply.github.com>
@mdtauk
Copy link

mdtauk commented Jul 3, 2019

The ListView within the TabView, should be given appropriate Add, Remove, Re-arrange animations for TabViewItems being added, removed or dragged.

Edge Canary and Dev has a flag for a new opening animation - which should probably be the basis for the transitions used by the XAML control.

edge://flags/#new-tab-loading-animation

https://youtu.be/jn_pUsnKwgM

@stmoy
Copy link
Contributor Author

stmoy commented Jul 8, 2019

The ListView within the TabView, should be given appropriate Add, Remove, Re-arrange animations for TabViewItems being added, removed or dragged.

Edge Canary and Dev has a flag for a new opening animation - which should probably be the basis for the transitions used by the XAML control.

edge://flags/#new-tab-loading-animation

https://youtu.be/jn_pUsnKwgM

Thank you @mdtauk for calling out the animations and providing a video. Naively, the Tab control will end up having the animations from ListView by default, since TabView contains a ListView. That said, the Edge Canary animations look much more appropriate than the ListView animations - we'll need to investigate how we can make these animations happen.

@Poopooracoocoo
Copy link

Poopooracoocoo commented Jul 10, 2019

@mdtauk. That's not an Edge exclusive flag. That flag changes the loading spinner on the favicon so you can see it while it's loading. Before there was just a spinner.

(I actually wrote this comment tons better but since I'm using firefox focus and opened your video in a new tab, my comment was cleared)

edit: my comment said "I think a lot" now I feel bad. >>

@mdtauk
Copy link

mdtauk commented Jul 10, 2019

@mdtauk. That's not an Edge exclusive flag. That flag changes the loading spinner on the favicon so you can see it while it's loading. Before there was just a spinner.

(I actually wrote this comment tons better but since I'm using firefox focus and opened your video in a new tab, my comment was cleared)

@Poopooracoocoo There are slight tweaks to the movement, but also how the Icon animates into view. The ProgressRing control is changing by WinUI 3.0 - so hopefully it will work a little better in the tab header, compared to the current version.

@stmoy stmoy changed the base branch from master to user/stmoy/tabview_API_review July 31, 2019 16:59
@stmoy
Copy link
Contributor Author

stmoy commented Jul 31, 2019

Hi all! I wanted to provide a super quick update and let you know what's coming next. TL;DR - the feedback provided has helped evolve and solidify the spec to a point where we want to create a "checkpoint of truth" 😉, so I will be completing this PR and submitting the spec to our internal API review board. If you have more comments/feedback, you can still provide them here - we just wanted to give the review board a "clean" PR so they can focus specifically on the spec.

We are actively developing TabView (you can check out its progress on the main WinUI repo). Once the API review is completed, we can start the process of moving TabView from "preview" to "release".

Thank you again for all of your comments/suggestions/feedback! I know there are some features that didn't make it in for v1, so keep an eye out for a v2 tracking issue soon!

@stmoy stmoy merged commit 149c4c1 into user/stmoy/tabview_API_review Jul 31, 2019
@stmoy stmoy mentioned this pull request Jul 31, 2019
@mdtauk
Copy link

mdtauk commented Jul 31, 2019

@stmoy Will the updated spec be published on GitHub to view?

At the moment the current Spec uses images from UWP Edge, the current control design, and a design with selected indicator.

Will the proposed actual design be included, or is that beyond the scope of the spec document?

@stmoy
Copy link
Contributor Author

stmoy commented Jul 31, 2019

Good questions! This is a pretty new process for the team so we're still trying to flesh a few things out. With that in mind...

Will the updated spec be published on GitHub to view?

The current spec (as it exists in this PR) is the most up-to-date spec for v1 (sans my answer to your next question 😉)

At the moment the current Spec uses images from UWP Edge, the current control design, and a design with selected indicator.
Will the proposed actual design be included, or is that beyond the scope of the spec document?

Yup, you've touched on an area that is still being actively iterated upon. We're working with our design team to come up with better and more representative images for the spec and docs. Since the next step in the process is API review, and the API board isn't as concerned with the visual spec, we didn't want to block on that piece. Before we check into master, we'll have more representative images of what our actual POR is.

@mdtauk
Copy link

mdtauk commented Jul 31, 2019

@stmoy Thank you for that. I think I have seen others "cleaning" up Specs and Proposals for pitching to teams - so wasn't sure if that is what happens with API reviews also.

I am sure the Windows Terminal team are looking forward to getting their hands on a V1 release, and addressing the many design related feedback items they have received.

I look forward to seeing how First Party apps implement it, or even the Windows Shell itself (I'm looking at you Property Dialog) 😉

stmoy added a commit that referenced this pull request Aug 30, 2019
* TabControl Spec (#28)

* Create tabcontrol.md

* Removed initial comment

* Starting filling in content

* Added backlink to Proposal

* Added links to Pivot, NavigationView

* Add sample for putting tabs in titlebar

* Fill out sample for tab tear off

* Update title format to be more readable

* Adding sample image files for tabs in titlebar and in new window

* Reference the new images in the doc

* Rearrange samples based on expected usage

* Update tabcontrol.md

* Update tabcontrol.md

* Clarified Tabs in Titlebar sample

* Update Edge sample with new tab button style

* Clarified CloseButtonOverlay default

* Added default TabWidthBehavior description

* Adding some Open Questions

Adding some open questions to the open questions section that were brought up in the PR.

* Updated Keyboard sections

* Cleaned up the API to minimize the v1 surface area

* Remove open questions that have been answered

* Updating the API section now that TabView CONTAINS a ListView insead of IS A ListView

* More API changes resulting from containing a ListView instead of being a ListView

* Updating images to reflect current API spec

* Adding placeholder sections for samples that need to be written

* Update link to new images from png to PNG

* Rename from TabControl to TabView

* Add sample showing keyboarding

* Add sample of the Add Tab button and handler

* Rename TabItem to TabViewItem

* AddButtonCommand and Parameter, as well as ItemTemplateSelector properties

* Update active/tab/tabcontrol.md

Update the description of the TabView-in-titlebar sample based on feedback.

Co-Authored-By: MikeHillberg <18429489+MikeHillberg@users.noreply.github.com>

* Update instances of Tab to TabView

* Update AddButton APIs to AddTabButton

* Update wording in keyboarding section

* Updated to include IDL and some slight name changes across the doc to align between spec and IDL

* Update keyboarding section to separate built-in functionality/examples from app guidance

* Remove TODO for recombination sample. This will be shown in a separate sample as its too complex for the spec

* Update Tab Control to TabView

* Update Item to TabItem

* API Feedback: 1st sample

* API Feedback: TabDraggedOutside --> TabDroppedOutside

* API Feedback: Update TabItems to type IVector<TabViewItem>

* API Feedback: s/fire/raise

* API Feedback: Remove Cancel from TabViewTabClosingEventArgs

* API Feedback: Update ItemTemplate to TabContentTemplate. Added TabHeaderTemplate.

* Rename TabViewItemWidthMode --> TabWidthMode, and updated enum to TabViewTabWidthMode

* API Feedback: Remove TODOs

* API Feedback: Remove TabView.CanCloseTabs

* API Feedback: Change Item to Tab in TabViewTabClosingEventArgs

* API Feedback: Add TabViewItemDroppedOutsideEventArgs

* API Feedback: Update TabDroppedOutside event args to have typed sender

* API Feedback: Update custom drag region min width

* Update TabClosing to TabCloseRequested

* API Feedback: Update descriptions for Tab content vs header

* API Feedback: Clarify behavior when too many tabs are visible and bumpers show

* API Feedback: Move pictures to remarks and update text based on latest naming

* Add TabCloseRequested to basic sample

* API Feedback: Update IDL to reflect latest feedback.

* API Feedback: Add note about selected items.

* API Feedback: Simplify the basic add tab sample

* Update instances of tab spacing to space spacing

* API Feedback: Update TabItemTemplate

* API Feedback: Update titlebar sample

* API Feedback: Update multi-window sample image and text

* API Feedback: Update images

* Add visual design mockups to appendix

* API Feedback: Update IDL. CanDragTabs = false and SelectedIndex = 0
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.