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

Mamatt/progress ring determinate #93

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

MarissaMatt
Copy link
Contributor

Hello! I updated this spec so we can add the determinate state to progress ring.

@MarissaMatt MarissaMatt requested a review from a team as a code owner July 21, 2020 18:10
@ranjeshj ranjeshj requested a review from StephenLPeters August 6, 2020 20:23
active/progress/ProgressRing.md Outdated Show resolved Hide resolved
active/progress/ProgressRing.md Outdated Show resolved Hide resolved
active/progress/ProgressRing.md Outdated Show resolved Hide resolved
active/progress/ProgressRing.md Outdated Show resolved Hide resolved
active/progress/ProgressRing.md Outdated Show resolved Hide resolved
@MarissaMatt
Copy link
Contributor Author

I think I resolved all of the comments. Is this ready to publish to master?

@adambarlow adambarlow removed the request for review from a team October 22, 2020 21:39

Progress _Bar_ has both a determinate and indeterminate mode.
In determine mode the rectangle goes from empty to full, in indeterminate mode it shows an animation.
Progress _Ring_ currently only has an indeterminate mode, but this spec is adding an indeterminate mode.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Progress _Ring_ currently only has an indeterminate mode, but this spec is adding an indeterminate mode.
Progress _Ring_ currently only has an indeterminate mode, but this spec is adding a determinate mode.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recommend: please

In determine mode the rectangle goes from empty to full, in indeterminate mode it shows an animation.
Progress _Ring_ currently only has an indeterminate mode, but this spec is adding an indeterminate mode.

ProgressBar is also getting a feature to replaces its built-in visualization (a spinning ring)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
ProgressBar is also getting a feature to replaces its built-in visualization (a spinning ring)
ProgressRing is also getting a feature to replaces its built-in visualization (a spinning ring)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recommend: please

The typical visual appearance is a ring-shaped "spinner" that animates a filled area as progress continues.

By default, ProgressRing will display an indeterminate spinner that continuously
animates until the control is no longer visible ?? or
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfinished wordsmithing. Suggest

... that continuously animates as long as the IsActive property is true.

No need to say that it animates only when visible. Collapsed items cannot animate.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recommend: it will animate until it's IsActive is false or Visibility is collapsed.

animates until the control is no longer visible ?? or
[ProgressRing.IsActive](https://docs.microsoft.com/uwp/api/Microsoft.UI.Xaml.Controls.ProgressRing.IsActive)
is set to false. You can change the behavior to display
a determinate ring that fills in based on the value you provide, using the `IsIndeterminate` property.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
a determinate ring that fills in based on the value you provide, using the `IsIndeterminate` property.
a determinate ring that fills in based on the value you provide, by setting the `IsIndeterminate` property to `false` (default `true`).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recommend: please


By default ProgressRing is indeterminate (a spinning circle).

> Issue: not the same without an AniGif
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Internal editing comment needs to be addressed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recommend: add a picture

Boolean IsIndeterminate{ get; set; };

IAnimatedVisualSource DeterminateSource{ get; set; };
IAnimatedVisualSource IndeterminateSource{ get; set; };
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Style: Sometimes read/write properties are expressed as Blah { get; set;} and sometimes as just Blah. Please be consistent with the rest of WinUI on this stylistic choice.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recommend: update


## Design Behavior Details
The determinate progress ring will be an empty ring when the progress is set to a value of 0.
When value is set to 1, a blue dot will appear and then continue to fill as the value increases.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The value is a Double, so is this really saying "any nonzero value", like ½?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be when the Value is set to Minimum?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussion: Point is that should only be empty at 0 and full at 100.

Recommend: update


```xaml
[webhosthidden]
unsealed runtimeclass ProgressRing : Windows.UI.Xaml.Controls.Control
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How horrible would it be if we just made ProgressRing derive from RangeBase?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would bring in LargeChange and SmallChange APIs, which make no sense on ProgressRing. And there's no polymorphism scenario to motivate a common case class.

See [AnimatedVisualPlayer](https://docs.microsoft.com/uwp/api/Microsoft.UI.Xaml.Controls.AnimatedVisualPlayer)
for more information on animated visuals.

> Picture would be nice
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please clean up internal comments.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recommend: add a picture


Show progress ring that visually looks like a thermometer boiling over.
See [AnimatedVisualPlayer](https://docs.microsoft.com/uwp/api/Microsoft.UI.Xaml.Controls.AnimatedVisualPlayer)
for more information on animated visuals.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean that everybody who uses a ProgressRing, even if they just use the standard animation, still has to pull in all the code for a Lottie player?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussion: Yes, the internal implementation of the ring uses a Lottie animation.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussion: Yes, the internal implementation of the ring uses a Lottie animation.

Wasn't there a way to use standard Xaml animations via re-templating?

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.

7 participants