2992 Commits

Author SHA1 Message Date
Adam Barth
6cea5dc80d Switch Navigator over to using AnimationController
This patch moves Navigator and related code over to using
AnimationController.
2016-01-20 08:43:04 -08:00
Adam Barth
0b098ee2e5 Move Scaffold over to using AnimationController
Also, clean up the class hierarchy for AnimationController now that
we've renamed progress to value. That means everything in the hierarchy
now has a value, include Watchable. This patch renames Watchable to
Animated<T>, which lets us use that type almost everywhere.

I've added some ducktape to modal bottom sheets to avoid having to
refactor all of Navigator to use AnimationController. I'll remove the
ducktape in the next patch.
2016-01-20 08:43:04 -08:00
Adam Barth
fc978c1aa8 Port examples to the new animation API
These now use Animation and AnimationController instead of PerformanceView and
Performance.
2016-01-19 16:03:31 -08:00
Adam Barth
1e70dc9ba1 Localize curve direction concern
The curve direction is now a concern of ACurve alone.
2016-01-19 14:33:57 -08:00
Adam Barth
bc20871cb9 Introduce Tween and the new animation API
This patch removes state from the animation system, which was causing problems
as we were scaling the use of animated values.

Now the "tween" objects are stateless and can watch animations, which creates a
new object that holds both the tween and the animation instead of mutating the
tween every tick of the animation.

This patch ports one client as a proof-of-concept.

Fixes #215
2016-01-19 14:26:05 -08:00
Adam Barth
548dbf0870 Update engine 2016-01-19 10:50:06 -08:00
Devon Carew
0e99d2fd41 fix two null-aware-operator issues 2016-01-19 09:32:35 -08:00
Ian Hickson
0bf6170c29 Merge pull request #1297 from Hixie/dialog-PENDING
StackParentData.toString() fix, RenderOpacity default
2016-01-18 22:17:31 -08:00
Ian Hickson
03dcd2686a Move RenderObjectWidgets down
It's confusing to have non-render-object widgets on either side of the
render object ones.
2016-01-18 21:32:01 -08:00
Ian Hickson
32cd916e00 StackParentData.toString() fix, RenderOpacity default 2016-01-18 21:14:51 -08:00
Ian Hickson
60d9ab7e7b Fix some intrinsic constraints contract violations.
RenderBlock wasn't constraining the results.
RenderPadding wasn't constraining the results (which matters
especially when the constraints can't fit the padding in the first
place).
RenderViewport wasn't constraining the results.

Add a test for the block case.

To catch this kind of thing in the future, add some asserts to
debugDoesMeetConstraints() that all four intrinsic functions return
values that are within the constraints.

RenderBlockViewport doesn't support returning intrinsics, so turn off
the "no intrinsic support" asserts (and return zero) when we're doing
this new assert.

This new assert screwed up the custom layout classes' tests, so adjust
those tests to ignore the callbacks invoked from these asserts.

Add to the _debugReportException() method a short summary of the
descendants of this node. It's important to have this information when
debugging errors like these intrinsic constraints contract violations
because often nodes just pass the values through to their child so you
have to go several steps down to find the actual problem.

Fixes https://github.com/flutter/flutter/issues/1210
2016-01-18 13:54:45 -08:00
Ian Hickson
aa701d44f6 Merge pull request #1257 from Hixie/shadows
More elaborate RenderBox example
2016-01-18 13:53:22 -08:00
Ian Hickson
73c9ebab19 Reimplement the theme transition animation by actually animating the Theme.
As part of this:
 - A lot of classes got new lerp functions, including e.g. TextStyle.
 - Theme's constructor story got overhauled. You can now configure
   everything if you really want to, and we're better about defaults.
 - Material no longer automatically animates its background color.
   (It still does for its shadow.)
 - Tabs try to get the indicator color from the theme.
 - The fields in ThemeData got reordered for sanity.
 - Theme.== and Theme.hashCode got fixed.
 - Typography got a bit of a spring cleaning.

Fixes #613.
2016-01-18 13:07:39 -08:00
Ian Hickson
eb53ec313b Merge pull request #1288 from Hixie/ViewConstraints-rename
Rename ViewConstraints to ViewConfiguration
2016-01-17 22:34:37 -08:00
Ian Hickson
a566afcbb1 Merge pull request #1287 from Hixie/scaffold
Rename _Child to _ScaffoldSlot for clarity.
2016-01-17 22:34:24 -08:00
Ian Hickson
9d155bdce5 Merge pull request #1285 from Hixie/activity
Activity clean-up
2016-01-17 22:33:59 -08:00
Ian Hickson
51566aeffa More elaborate RenderBox example
Also, some trivial fixes for things that I found while playing with
the rendering library directly.
2016-01-17 22:31:41 -08:00
Ian Hickson
96958b203e Merge pull request #1255 from Hixie/random-fixes
Include BoxDecoration description in Container toString
2016-01-17 22:30:19 -08:00
Ian Hickson
47aee96c1f Rename _Child to _ScaffoldSlot for clarity. 2016-01-16 15:10:02 -08:00
Ian Hickson
7145784436 Rename ViewConstraints to ViewConfiguration
And rootConstraints to configuration.

This type and its variable have nothing to do with Constraints.

Fixes https://github.com/flutter/flutter/issues/829
2016-01-16 14:11:53 -08:00
Ian Hickson
c03c4cca10 Activity clean-up
Turns out Android crashes if the colour is not opaque, so we enforce
that at the Dart level.

Also, since label and colour are both actually optional, make them
named arguments.
2016-01-16 12:18:32 -08:00
Hixie
df78ec2b24 fix framework to match new mojo sdk
The dart bindings changed semantics in a non-compatible way.
2016-01-15 17:05:21 -08:00
Seth Ladd
af250fc9cf fix links to new website 2016-01-15 13:08:27 -08:00
Hans Muller
179ca8164e Upgrade progress_indicator demo defend against null color in updateTaskDescription 2016-01-15 08:41:57 -08:00
Ian Hickson
8c44c38299 Include BoxDecoration description in Container toString
Have BoxDecoration default to one-line dumps

Style nits in a rendering example
2016-01-14 22:20:43 -08:00
Hixie
24cab8999c Tooltips
Introduces a new Tooltip class.
Adds support for tooltips to IconButton and Scaffold.
Adds some tooltips to various demos.

Also some tweaks to stack.dart that I made before I decided not to go
down a "CustomPositioned" route.
2016-01-14 12:21:56 -08:00
Adam Barth
28d4e52a06 Update engine 2016-01-14 12:02:11 -08:00
Adam Barth
6d7bf20fcf Merge pull request #1243 from abarth/edge_trigger
Stocks has both tabs reified in the wiget tree
2016-01-14 11:24:04 -08:00
Hans Muller
675f4c4d2a Merge pull request #1240 from HansMuller/page_storage
PageStorage storage identifier should include the context widget's key
2016-01-14 10:33:17 -08:00
Adam Barth
b5ed355b93 Stocks has both tabs reified in the wiget tree
We were recomputing which widgets to show only when we were on the other side
of the repaint boundaries. That doesn't work well for pageable lists because we
come to rest exactly on a repaint boundary, which means we don't cull the other
page.

After this patch, we recompute the set of widgets using an edge-trigger when we
hit the boundary. That's better than using a level-trigger so that we don't
continuously recompute the set of widget as we sit at the boundary.
2016-01-14 10:19:05 -08:00
Hans Muller
568fa07e17 PageStorage storage identifier should include the context widgets key 2016-01-14 09:35:39 -08:00
Ian Hickson
a54ee77b88 Tweaks near Material, BoxDecoration, implicit animations.
Some more asserts and toString info.
Reorder some code to group lerp-related functions.
2016-01-13 18:53:56 -08:00
Adam Barth
742567e374 Rev engine 2016-01-13 15:58:48 -08:00
Adam Barth
15eeb7f57d Merge pull request #1235 from abarth/handle_degenerate_transforms
Handle degenerate transforms better
2016-01-13 11:21:06 -08:00
Adam Barth
192c6e24c3 Handle degenerate transforms better
No you can't hit things inside degenerate transforms. Tranforming from global
coordaintes to degenerate local coordinates gives you Point.origin. Also,
upgrade vector_math to get a better invert constructor.

Fixes #1161
Fixes #1224
2016-01-13 11:14:46 -08:00
Adam Barth
193ed22b63 Merge pull request #1197 from abarth/rm_clamp
Remove clamp() in favour of double.clamp()
2016-01-13 11:01:41 -08:00
Adam Barth
d444ae7dc8 Update engine
Also, update callers of deprecated methods.
2016-01-12 12:24:07 -08:00
Hans Muller
cafea7f51f Floating Action Button transitions 2016-01-12 11:42:20 -08:00
Adam Barth
84957e5be8 Fix time picker
We were painting the contents of the RRect clip at the wrong offset. This patch
makes RRect match Rect and Path clips.

Fixes #1194
2016-01-12 10:07:09 -08:00
Adam Barth
8e5dd7a385 Remove clamp() in favour of double.clamp()
Fixes #961
2016-01-12 09:19:33 -08:00
Ian Hickson
867bbcc9bd Provide a safe time to update a WidgetToRenderBoxAdapter
If you change the RenderObject tree between frames, you'll assert if
you subsequently hit test. So e.g. if you get two button presses back
to back, and you mutate the tree synchronously in response to the
first one, the second will assert.

This adds an onBuild callback to WidgetToRenderBoxAdapter to make it
easier to do the updates at the right time, i.e., during widget build.
It'll be called whenever you rebuild the WidgetToRenderBoxAdapter
itself, so all you have to do to use it is call setState() on whoever
is building the WidgetToRenderBoxAdapter.
2016-01-11 23:14:37 -08:00
Adam Barth
f10f79f8fd Merge pull request #1196 from abarth/rm_layer_bounds
Stop passing bogus bounds to SceneBuilder
2016-01-11 22:29:09 -08:00
Ian Hickson
e20ec39b81 Merge pull request #1195 from Hixie/raised-button
Fixed the RaisedButton shadow issue
2016-01-11 22:23:23 -08:00
Adam Barth
d2c22a490d Stop passing bogus bounds to SceneBuilder
We no longer need to pass bounds to SceneBuilder. Instead, the
compositor computes these bounds itself from the RTrees in the
SkPictures.
2016-01-11 22:18:43 -08:00
Ian Hickson
ac616df0bd Fixed the RaisedButton shadow issue
The onHighlightChanged callback was being given "true" every time
instead of the actual value.
2016-01-11 22:06:29 -08:00
Adam Barth
82bb3bd40d ShaderMask needs to play nicely with compositing
This patch adds ShaderLayer and makes ShaderMask use it.

Fixes #1155
2016-01-11 21:57:54 -08:00
Adam Barth
875da1f53f Update engine 2016-01-11 21:57:34 -08:00
Ian Hickson
8f894f3757 Merge pull request #1140 from Hixie/concat
Transition callers from 'concat' to 'transform'
2016-01-11 20:05:07 -08:00
Adam Barth
00359a4f96 RenderPerformanceOverlay needs alwaysNeedsCompositing
The performance overlay is always drawn using the compositor. We should tell
the rest of the system that it's going to make a composited layer.

Fixes #1177
2016-01-11 14:23:49 -08:00
Adam Barth
056766414c Use a named argument for Widget children
Previously we used a positional argument for widgets that had multiple
children. Now we use a named argument that defaults to an empty list.

Fixes #241
2016-01-11 13:17:09 -08:00