- 20 Nov, 2015 7 commits
-
-
Hixie authored
- Removed the concept of ephemeral routes. - Renamed the two _MenuRoutes to _PopupMenuRoute and _DropDownRoute. - Added type arguments in various places: - DropDownMenu - _DropDownRoute - _ModalBottomSheetRoute - PopupMenuItem - _PopupMenu - _PopupMenuRoute - Made _ModalBottomSheetRoute, the two ex _MenuRoutes, and _DialogRoute all inherit from ModalRoute, via PopupRoute. - Change "Dropdown" and "DropDown" to "DropDown" consistently. - Made MaterialPageRoute inherit from PageRoute. - Made ModalBarrier not create a box if it's always transparent. - Exposed the Futures on TransitionRoutes. - Fixed that menus were no longer dismissable by tapping the modal barrier.
-
Hixie authored
These end up not actually being used, currently, because we don't have generic methods, which you'd need for showDialog() and friends, and we don't have any way to parameterise a class type at runtime, which you'd need for MaterialApp routes, but it's a step in the right direction.
-
Adam Barth authored
The old name was confusing. Fixes #462
-
Hixie authored
Rather than have delayed calls to super.didPop(), which raises my eyebrow every time I see it, this provides a separate finished() function to call, and uses the convention that if you want to call it yourself, you just don't call super.didPop().
-
Hixie authored
This lets you close them manually.
-
Hixie authored
- `Scaffold.of(context).showBottomSheet(widget);` - Returns an object with .closed Future and .close() method. - Uses a StateRoute to handle back button. - Take the Navigator logic out of the BottomSheet widget. - Support showing a sheet while an old one is going away. - Add Navigator.remove().
-
Adam Barth authored
Many of the widgets that use CustomPaint were spamming repaints because CustomPaint repaints when the identity of the onPaint callback changes, which it does every build for StatelessComponents. This patch changes CustomPaint to use a CustomPainter, similar to the new custom layout widgets. The CustomPainter has a `shouldRepaint` function along with its `paint` function. This function gives clients explicit control over when the custom paint object repaints.
-
- 19 Nov, 2015 4 commits
-
-
Adam Barth authored
This patch simplifies PaintingContext with several goals: 1) We now call a callback instead of assuming the caller has a single child to paint. This change will let us handle render objects that wish to paint more than one child. 2) We now avoid creating lots of empty picture layers because we don't eagerly start recording pictures. Instead, we wait for the first caller to touch the canvas before creating the picture recorder. 3) We now are more consistent about which values have incorporated the painting offset.
-
Adam Barth authored
Previously, we were putting a ForcedLayer just below the overlay, but that causes trouble for routes like the popup menu that want to position themselves inside the overlay. Instead, I've moved the ForcedLayer down into ModalRoute. Also, rename ForcedLayer to RepaintBoundary, which is more descriptive of what this widget does. Fixes #485
-
Hixie authored
"showSnackBar()" is now a feature of a Scaffold. To get to a Scaffold you either use a global key (`scaffoldKey.currentState.showSnackBar(...)`), or you use `Scaffold.of(context)`. Snack bars no longer have a route. They are entirely managed by the Scaffold. Fixes #432. Snack bars now queue up when you have several of them. Fixes #374. Snack bars now auto-size themselves around their contents. This is step one towards implementing multiline snack bars. Snack bars now self-dismiss after some per-snackbar configurable period. The self-dismissing pauses while a dialog is up above the snackbar (or anything that uses ModalRoute). To enable this, there's now a `ModalRoute.of(context)` API that returns the current ModalRoute, and you will be rebuilt if you asked for this and the route's "current" status changes. To implement this, the Navigator now rebuilds unconditionally any time it pushes or pops a route. Snack bars now use the curves that Android uses for snack bars. Snack bar contents now fade in.
-
Adam Barth authored
Now we use a forced layer around the reprojected content of the drawer, which means we don't have to re-record it during the slide animation. This saves 2ms per frame. The total main-thread time for the drawer animation is now 2.0ms.
-
- 18 Nov, 2015 3 commits
-
-
Hans Muller authored
-
Hans Muller authored
Shadows now render as three seprate MaskFilter.blur components per the most recent Material spec. The shadows Map was replaced by a similar Map called elevationToShadow with entries that match the 10 elevations specifed by http://www.google.com/design/spec/what-is-material/elevation-shadows.html. The "level" property (many classes) is now called "elevation", to match the Material spec. BoxShadow now includes a spreadRadius parameter - as in CSS box-shadow. Renamed the BoxShadow blur property to blurRadius to further align BoxShadow with CSS box-shadow.
-
Hixie authored
I'm planning on adding more .of() functions and so to avoid further copypasta I'm providing some general utility functions here.
-
- 17 Nov, 2015 1 commit
-
-
Hixie authored
This makes HeroController ignore StateRoutes when deciding where to animate heroes to and from.
-
- 16 Nov, 2015 1 commit
-
-
Hixie authored
PageRoute is now MaterialPageRoute. This also changes the following: - Now the HeroController is a Navigator observer, rather than a feature of HeroPageRoutes, which are gone. This means heroes can work between any kind of ModalRoute now. - ModalPageRoute is moved from modal_barrier.dart to routes.dart. - It allows routes to opt-out of their modal barrier being a shortcut to popping the route. - Features of PageRoute that aren't Material-specific get promoted to ModalRoute features: storage, the subtree key, offstageness... The AnimatedModalBarrier is still a ModalRoute feature.
-
- 14 Nov, 2015 1 commit
-
-
Hans Muller authored
-
- 13 Nov, 2015 1 commit
-
-
Hans Muller authored
-
- 12 Nov, 2015 2 commits
-
-
Hans Muller authored
TransitionRoute completer is now optional.
-
Devon Carew authored
-
- 11 Nov, 2015 3 commits
-
-
Hans Muller authored
-
Adam Barth authored
The input widget scrolls, so it should give its text loose constraints. That way the text ends up being its intrinsic size even if put in a context with tight constraints. Fixes #298
-
Hans Muller authored
-
- 10 Nov, 2015 1 commit
-
-
Hans Muller authored
Factored OverlayRoute out of the modal and persistent bottom sheet clases, since the bottom sheet classes need to drive the performance. Added a bottom sheet to the stocks demo: long-press on a stock shows a modal bottom sheet. Made AnimatedModalBarrier public.
-
- 09 Nov, 2015 2 commits
-
-
Hans Muller authored
-
Hans Muller authored
-
- 06 Nov, 2015 5 commits
-
-
Hans Muller authored
-
Adam Barth authored
These types belong at the MaterialApp level. Fixes #1969
-
Adam Barth authored
This patch paves the path for refactoring the Drawer into the Scaffold to support edge swipes and peeks.
-
Hixie authored
It's common to want a scrolling viewport but with padding around the contents. Teaching Block about this makes the places that do this substantially simpler and further buries ScrollableViewport and BlockBody (they're now only used in scrollable.dart).
-
Hans Muller authored
-
- 05 Nov, 2015 3 commits
-
-
Hixie authored
- runApp(new MaterialApp()) was crashing long after the constructor. Now it asserts in a more useful location. - remove the default name for NamedRouteSettings. It was unused anyway.
-
Hans Muller authored
-
Adam Barth authored
Now a RenderBox is considered hit if one of its children are hit or it itself decides that it's hit. In particular, empty space inside a flex won't be hit because none of the children are located there and a RenderFlex doesn't consider itself hittable. Fixes #53 Fixes #1221
-
- 04 Nov, 2015 2 commits
-
-
Hans Muller authored
-
Hans Muller authored
-
- 03 Nov, 2015 4 commits
-
-
Adam Barth authored
Previously, we passed widgets up the hierarchy to display them in the overlay, but that breaks the change propagation logic because those widgets won't get rebuilt. Now we pass WidgetBuilders instead, which can be rebuilt when the overlay rebuilds. Fixes #1913
-
Hans Muller authored
-
Hans Muller authored
-
Hans Muller authored
-