1. 08 Dec, 2015 1 commit
    • Adam Barth's avatar
      Material gallery crashes when you press the drop-down button · 4982c553
      Adam Barth authored
      Now use use the route's getPosition function to position the drop-down menu.
      Also, fix a number of other related bugs that blocked the dropdown button from
      working correctly. The dropdown menu still has the following issues:
      
      1) In the exit animation, the background of the menu disappears too quickly
         because of incorrect paint bounds computations in the layer tree.
      2) The drop down menu isn't positioned correctly after the device rotates.
         We'll need to address this issue in a separate patch.
      
      Fixes #630
      4982c553
  2. 05 Dec, 2015 2 commits
  3. 04 Dec, 2015 1 commit
  4. 30 Nov, 2015 2 commits
  5. 20 Nov, 2015 2 commits
    • Hixie's avatar
      Route refactor · 6e371875
      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.
      6e371875
    • Adam Barth's avatar
      Callback identity is too fragile for CustomPaint · 72329cf4
      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.
      72329cf4
  6. 18 Nov, 2015 1 commit
    • Hans Muller's avatar
      Update shadow rendering · d9153a13
      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.
      d9153a13
  7. 16 Nov, 2015 1 commit
    • Hixie's avatar
      Move Material page animations to Material layer. · 309d25d4
      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.
      309d25d4
  8. 13 Nov, 2015 1 commit
  9. 06 Nov, 2015 1 commit
    • Hixie's avatar
      Teach Block about padding. · 1f5844ea
      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).
      1f5844ea
  10. 03 Nov, 2015 1 commit
    • Adam Barth's avatar
      Stocks list doesn't update when stocks are loaded · 78d35391
      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
      78d35391
  11. 02 Nov, 2015 1 commit
    • Adam Barth's avatar
      Routes shouldn't be interactive when animating out · 828775e9
      Adam Barth authored
      This patch introduces the notion of a ModalRoute that puts up a modal barrier
      and makes the route invisible to hit testing when its animating out. This patch
      also uses this mechanism in a number of places (including PageRoute). There are
      still a few more cases to convert, but that's work for a future patch.
      
      Fixes #1684
      828775e9
  12. 30 Oct, 2015 1 commit
  13. 22 Oct, 2015 1 commit
    • Adam Barth's avatar
      Add Navigator.of · de395582
      Adam Barth authored
      Now you don't need to pass the navigator around everywhere.
      de395582
  14. 21 Oct, 2015 1 commit
    • Hixie's avatar
      Make Route.build() arguments match RouteBuilder() · babba2f0
      Hixie authored
      Assert at build time that PageRoute route builders do not return null
      widget trees.
      
      Also very minor new code comments and code reorg to help make the heroes
      patch easier to review.
      
      (These are changes that are unrelated to Heroes but that were part of
      the Heroes patch.)
      babba2f0
  15. 20 Oct, 2015 1 commit
  16. 12 Oct, 2015 1 commit
    • Hixie's avatar
      Lots of trivial warning fixes · f2cc43a4
      Hixie authored
      Add type annotations in many places.
      Fix some identifiers to have more lint-satisfying names.
      Make all operator==s consistent in style.
      Reorder some functions for consistency.
      Make ParentData no longer dynamic, and fix all the code around that.
      f2cc43a4
  17. 10 Oct, 2015 3 commits
  18. 09 Oct, 2015 2 commits
  19. 07 Oct, 2015 1 commit
  20. 06 Oct, 2015 3 commits
    • Hans Muller's avatar
      Remove PopupMenu margin · 56d9d85f
      Hans Muller authored
      The margins make using showMenu's menuPosition argument difficult and they're not really needed.
      
      I also made a few small gratuitous changes in navigator.dart.
      56d9d85f
    • Adam Barth's avatar
      Mark most State subclasses private · 922aece1
      Adam Barth authored
      In the vast majority of cases, folks should be interacting with the Widget
      rather than its State.
      
      Fixes #267
      922aece1
    • Adam Barth's avatar
      Use Navigator to drive SnackBar · 2eec3011
      Adam Barth authored
      Now SnackBar is an ephemeral route that uses a Placeholder to put itself into
      the Scaffold.
      
      Fixes #673
      2eec3011
  21. 05 Oct, 2015 2 commits
  22. 03 Oct, 2015 1 commit
    • Adam Barth's avatar
      RenderInkWell should use gestures · cf889934
      Adam Barth authored
      After this patch, InkWell is driven by gesture recognizers, which lets us
      cleanly cancel splashes when the user actually scrolls.
      
      I've also refactored all the clients of InkWell to use InkWell to detect
      gestures instead of wrapping InkWell in a GestureDetector.
      
      Fixes #1271
      cf889934
  23. 01 Oct, 2015 2 commits
    • Hixie's avatar
      Heroes: Pass next Performance to route builders · 8cce992f
      Hixie authored
      This is step 1 in making it possible to have hero transitions between
      routes. To make it possible for a route to have an "exit" animation when
      a new route has been pushed on top of it, we provide the next route's
      AnimationPerformance to the build function. It's null if there is no
      next route or if the next route has no performance.
      8cce992f
    • Adam Barth's avatar
      Make fn3 the default widget framework · 45c906d2
      Adam Barth authored
      45c906d2
  24. 18 Sep, 2015 4 commits
    • Hixie's avatar
      Introduce a showPopupMenu() function · a3ae46b9
      Hixie authored
      Instead of having to manage the popup menu from your app's build
      function, you now just call showPopupMenu() with the menu's position and
      it takes care of everything for you.
      
      This solves the problem that the popup menu was trying to mutate the
      state of the navigator from within its own initState() function.
      
      Also, remove the "route" argument to RouteBase.build() since it equals
      "this" by definition...
      
      Also, remove ModalOverlay, and instead put that logic in the navigator.
      a3ae46b9
    • Hixie's avatar
      Allow route transitions to be more flexible · d4dd786b
      Hixie authored
      - Fix AnimationTiming to have defaults for 'interval' and 'curve' since
        that seems to be how we use it.
      
      - Merge RouteBase.build and RouteBase.buildTransition
      
      - Get rid of HistoryEntry, since it added nothing
      
      - Broke out RouteBase.createPerformance() so subclasses can change what
        is created.
      
      - Build the routes backwards so that we more efficiently avoid building
        hidden routes.
      
      - Introduce an explicit way (!hasContent) for RouteState to avoid
        building, rather than the implicit "build returns null" we had before.
      d4dd786b
    • Hixie's avatar
      Require that you pass transitions a performance. · e73bbd94
      Hixie authored
      This fixes #1103.
      e73bbd94
    • Adam Barth's avatar
      Move theme into material.dart · 4467a268
      Adam Barth authored
      Also, introduce Colors and Typography to hold the material colors and the
      typography declarations. Previously we expected clients of these libraries to
      import them into a namespace, but that doesn't play nice with re-exporting them
      from material.dart.
      4467a268
  25. 14 Sep, 2015 1 commit
  26. 08 Sep, 2015 2 commits