- 17 Aug, 2015 3 commits
-
-
Collin Jackson authored
-
Adam Barth authored
The name `root` is confusing because this value isn't the root of anything. It's just the associated `RenderObject` instance.
-
Adam Barth authored
Widgets that want to receive drops should include a DropTarget in their build. Currently there's no widget for initiating a drag. Components can use the DragController directly. In the future, we'll probably want to add a Draggable that knows how to do some of this work automatically. Fixes #612
-
- 14 Aug, 2015 4 commits
-
-
Hans Muller authored
-
Collin Jackson authored
-
Adam Barth authored
This generalization will let us implement other alogorithims that need to walk the RenderObject tree.
-
Adam Barth authored
-
- 13 Aug, 2015 7 commits
-
-
Hans Muller authored
Setting a ProgressIndicator's value to null (the default) makes it an "indeterminate progress" or activity indicator. The indeterminate animations for both kinds of progress bars are essentially the same and wrong vis the Material Design spec, http://www.google.com/design/spec/components/progress-activity.html. I'll improve conformity with the visual design in a future CL.
-
Adam Barth authored
-
P.Y. Laligand authored
-
Matt Perry authored
Used for AnimationPerformance with a single AnimatedValue<T> variable.
-
Adam Barth authored
We'll need this for compositing because we need to switch out the sky.Canvas when we switch compositing layers.
-
Matt Perry authored
1. We would assert if you tried to start an animation from within an animation status callback. This is a common pattern, so I fixed this assert (in Ticker._tick). 2. We would assert for animations with duration under a millisecond. Fixed. Also removed the workarounds assocated with #1.
-
Adam Barth authored
Previously we were doing the bounds testing for hit tests in the parent, but that doesn't work if the child paints at a location other than 0.0, 0.0. Now we do the bounds check in the child. This also simplifies Scaffold's hit testing. Fixes #558
-
- 12 Aug, 2015 1 commit
-
-
Adam Barth authored
-
- 11 Aug, 2015 8 commits
-
-
Andrew Wilson authored
-
Hans Muller authored
Set the scrollOffset of a widget's Scrollable ancestor so that the widget is centered within the scrollable. A future CL will add support for specifying exactly where the widget appears. The scroll can be animated by specifying the animation: parameter. Changed the duration Scrollable.scrollTo() parameter from a Duration to an AnimationPerformance so that one can configure all aspects of the animation. The caller may also listen to the animation to schedule other work while it updates or when its status changes. complete
-
Eric Seidel authored
And also Material Design of course. @abarth
-
Matt Perry authored
This introduces the concept of an Anchor, which you can use to link transitions together. I've used this in the Fitness and Stocks apps to link the FAB and SnackBar to animate together by sharing the SlideTransition. I also fixed the Scaffold hit testing code to apply sub-widget transforms, so it works with Transformed nodes.
-
Eric Seidel authored
Now it wont crash on save, but it still doesn't display the error message in a snackbar and this also doesn't wire up the enter/go key to actually do anything. We'll need to implement performEditorAction on our InputConnection implementation to catch this key and pass it along to dart. Our Input control needs to get more powerful to handle things like this, including filtering of input. The code was crashing by triggering a bug in the SnackBar which didn't assert for actions, but crashed when they were not null. Partial fix for https://github.com/domokit/sky_engine/issues/543 @abarth
-
Alex Fandrianto authored
Added missing :
-
Hans Muller authored
The IgnorePointer class enables one to cut a widget subtree off from pointer events. This is useful when a sibling should not shield pointer events from overlapping siblings below it. Added a ScrollListener listener to Scrollable. The ScrollListener runs each time the Scrollable's scrollOffset changes. This can be used to keep overlay widgets in sync with a Scrollable below them. Removed the Scrollable ScrollClient API. It was no longer used and was clumsy to use as a ScrollListener. Added global function findScrollableAncestor() to scrollable.dart. Added examples/widgets/overlay_geometry.dart. The app's Scaffold is contained by a Stack. The Stack is used to display green overlay "Markers" at the corners of the most recently selected list item and where the corresponding tap occurred. The app uses widget.localToGlobal() to compute the global overlay positions of the markers. The ScrollListener is used to keep the markers' positions up to date.
-
Adam Barth authored
Using ImageResource solves two problems: 1) Listeners can be notified synchronously when the sky.Image is already available. This change removes flash of 0x0 layout when moving an already-cached image around in the render tree. 2) In the future, when we support animated images, we can notify listeners multiple times whenever a new image is available.
-
- 10 Aug, 2015 2 commits
-
-
Matt Perry authored
If you tap multiple tabs in a row, the tab animation used to snap to the last selected tab when starting a new animation. Fix that. Also use the BuilderTransition so we don't have to rebuild the tab bar every frame.
-
Matt Perry authored
Just infer it from the sign of the velocity. That's what odeon does.
-
- 08 Aug, 2015 1 commit
-
-
Adam Barth authored
There were two problems: 1) When starting the mimic, we put up a bad frame because although we set the `begin` value of the animation, we were building using the current `value`, which hadn't been updated. 2) When stoping the mimic, we'd dirty a component during didUnmount, which wouldn't get cleaned until the next frame. Now we're sure to clean all the components before leaving flushBuild.
-
- 07 Aug, 2015 7 commits
-
-
Adam Barth authored
Also, make RenderStack support negative positions with clipping so that we can expand objects that are partially offscreen.
-
Hans Muller authored
-
Adam Barth authored
This widget lets you mimic one of its children in an overlay. The overlay starts out as the same size of the child and then grows to fill the overlay. In the future, the mimic will start at the same visual position as the child.
-
Adam Barth authored
Now they give you a hint as to what went wrong. Also, in checked mode, they now throw during construction instead of during building. Fixes #418
-
Adam Barth authored
- Inline -> Pargraph. This class is actually a box, not an inline. It's really a wrapper for RenderParagraph, so Paragraph is the normal name. - InlineBase -> RenderInline. The name we used in C++ for the base class of all inlines was RenderInline, which removes the ugly "Base" suffix. - InlineText -> RenderText. Aligns this name with C++. - InlineStyle -> RenderStyled. Matches the foregoing pattern.
-
Adam Barth authored
-
Adam Barth authored
-
- 06 Aug, 2015 4 commits
-
-
Adam Barth authored
Wrap widgets you want to reparent in a Mimicable widget and assign the Mimicable widget a global key. Then, given the same global key to a Mimic widget to make it appear elsewhere in the view hierarchy.
-
Matt Perry authored
We only use them for the transition to dismissed.
-
Matt Perry authored
Also add intervals and curves to AnimationPerformance, which affect all variables used by the performance.
-
Adam Barth authored
Now ScrollableBlock can combine a horizontally scrolling viewport with a horizontal block. Also rename ViewportScrollDirection to just ScrollDirection for less verbosity.
-
- 05 Aug, 2015 3 commits
-
-
Adam Barth authored
-
Hans Muller authored
-
Adam Barth authored
We still need to tune the various parameters, but this patch is a start.
-