1. 06 Jan, 2016 1 commit
    • Adam Barth's avatar
      Switch clients of ScrollableList to ScrollableList2 · b1f9138f
      Adam Barth authored
      This patch also changed ScrollableList2 to use an Iterable instead of an
      List for its children. This change lets clients map their underlying
      data lazily. If the clients actually have a concrete list, we skip the
      extra copy and grab the child list directly.
      b1f9138f
  2. 05 Jan, 2016 1 commit
    • Adam Barth's avatar
      Introduce ScrollableList2 · 99bca282
      Adam Barth authored
      ScrollableList2 uses the same pattern as ScrollableGrid, which requires the
      client to allocate widgets for every list item but doesn't inflate them unless
      they're actually needed for the view. It improves on the original
      ScrollableList by not requiring a rebuild of the whole visible portion of the
      list when scrolling. In fact, small scrolls can often be handled entirely by
      repainting.
      99bca282
  3. 04 Jan, 2016 1 commit
    • Adam Barth's avatar
      Add support for scrollable grids · 6106fa9d
      Adam Barth authored
      We now support (vertically) scrollable grids with viewporting. If the
      scroll doesn't reveal any new rows, we execute the scroll with a repaint
      (i.e., no layout). If the scroll reveals a new row, we trigger a layout
      to change the set of materialized children in the viewport.
      6106fa9d
  4. 02 Jan, 2016 1 commit
    • Adam Barth's avatar
      Generalize grid layout · 46a178dc
      Adam Barth authored
      This patch make grid layout much more flexible. The behavior is factored
      out into a GridDelegate that's modeled after the custom layout
      delegates. The patch includes a MaxTileWidthGridDelegate that implements
      the old behavior and a FixedColumnCountGridDelegate that implements a
      grid layout with a fixed number of columns.
      
      Fixes #1048
      46a178dc
  5. 14 Dec, 2015 1 commit
  6. 10 Dec, 2015 1 commit
  7. 09 Dec, 2015 3 commits
  8. 08 Dec, 2015 1 commit
    • Ian Hickson's avatar
      Make BoxDecoration replaceable. · 2afa87df
      Ian Hickson authored
      Factor out a reusable interface called Decoration from BoxDecoration.
      
      Make all the consumers of BoxDecoration and the erstwhile BoxPainter
      into consumers of Decoration.
      
      Make a BoxPainter be something you get from a Decoration, rather than
      something to which you pass a BoxDecoration.
      
      Rename Shape to BoxShape now that it's documented specifically as
      applying to boxes.
      
      Move EdgeDims to its own file.
      
      Move FractionalOffset up so that it's with the other helper classes in
      its file rather than alone at the end.
      
      Minor change to RenderClipOval's hit testing to avoid taking an
      unnecessary square root.
      
      Rename BoxDecorationPosition to DecorationPosition since
      RenderDecoratedBox now takes any Decoration.
      
      Implement hit testing for rounded rects.
      
      Rename AnimatedBoxDecorationValue to AnimatedDecorationValue, and make
      it support lerping across any Decoration (by deferring to the objects
      involved).
      2afa87df
  9. 05 Dec, 2015 2 commits
    • Ian Hickson's avatar
      PointerInput refactor · f1625556
      Ian Hickson authored
      Instead of PointerInputEvent having a "type" field, we now have a
      different class for each pointer type.
      
      This has ripple effects throughout the system.
      
      I also did code cleanup in affected files while I was there.
      f1625556
    • Adam Barth's avatar
      Remove PaintingCanvas · abf03595
      Adam Barth authored
      We can just use Canvas now.  The two are the same thing.
      abf03595
  10. 04 Dec, 2015 2 commits
  11. 03 Dec, 2015 1 commit
    • Adam Barth's avatar
      Fix a large number of Drawer bugs · 1d195cb9
      Adam Barth authored
      This patch restructures how we handle drawer. The drawer is now a child of the
      Scaffold, which wraps the Drawer in a DrawerController. The DrawerController
      manages the interaction with the navigator as well as the edge swiping. The
      DrawerController's state machine is driven almost entirely off its Performance,
      which it now owns completely.
      
      Fixes #90
      Fixes #187
      Fixes #192
      Fixes #194
      Fixes #604
      1d195cb9
  12. 02 Dec, 2015 2 commits
  13. 30 Nov, 2015 2 commits
    • Hixie's avatar
      NavigatorTransaction · f9ea1ce8
      Hixie authored
      To make it easier to avoid pushing twice in one frame, provide a
      transaction mechanism for the navigator.
      f9ea1ce8
    • Hans Muller's avatar
      TabNavigator animates selected TabView · 9de4df1e
      Hans Muller authored
      The TabBar's selection is now represented by a TabBarSelection object which encapsulates both the previous and currently selected indices and the Performance used to animate the selection indicator.
      
      Added a TabBarView class which displays a tab's contents. It uses a shared TabBarSelection to stay in sync with a TabBar. The TabBarView scrolls in sync with the TabBar when the selection changes. Eventually it will allow one to fling the selection forward or backwards.
      
      Added a tabBar property to ToolBar. Typically the corresponding TabBarView will be the body of the toolbar's Scaffold.
      
      Removed TabNavigatorView and TabNavigator.
      
      Added a widget gallery tabs demo page. Removed the old tabs demo.
      9de4df1e
  14. 26 Nov, 2015 1 commit
    • Adam Barth's avatar
      Improve Material selection controls · 3f06da0e
      Adam Barth authored
       - These controls now have proper radial reactions.
       - You can drag the switch.
       - The radio button animates properly.
       - There's a demo in the Material Gallery
      3f06da0e
  15. 24 Nov, 2015 1 commit
  16. 23 Nov, 2015 1 commit
  17. 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
  18. 18 Nov, 2015 2 commits
  19. 17 Nov, 2015 1 commit
    • Adam Barth's avatar
      Add a Positioned constructor from a Rect · c769d120
      Adam Barth authored
      A common pattern is to use a Positioned with a Sized box to give both an offset
      from the edge as well as a fixed size to the child. This patch rolls into into
      the Stack layout algorithm for simplicity.
      
      Fixes #250
      c769d120
  20. 16 Nov, 2015 2 commits
    • Hixie's avatar
      Fix some examples. · 5e221334
      Hixie authored
      - drag and drop was using the wrong draggables (long press vs short
        press).
      
      - navigation.dart wasn't using material correctly and so was ending up
        with some red text.
      
      - piano wasn't followig our style guide even a little.
      
      - date picker was not scrollable.
      5e221334
    • Collin Jackson's avatar
      e3b9094f
  21. 13 Nov, 2015 2 commits
  22. 12 Nov, 2015 3 commits
    • Devon Carew's avatar
      49b7fee4
    • Hixie's avatar
      flutter analyze command · a0227cab
      Hixie authored
      Other changes in this patch:
      - Make the 'flutter' tool say "Updating flutter tool..." when it calls
        pub get, to avoid confusion about what the pub get output is about.
      - Make the bash flutter tool call pub get when the revision has
        changed. (This was already happening on Windows.)
      - Fix a raft of bugs found by the analyzer.
      - Fix some style nits in various bits of code that happened to be near
        things the analyzer noticed.
      - Remove the logic in "flutter test" that would run "pub get", since
        upon further reflexion it was determined it didn't work anyway.
        We'll probably have to add better diagnostics here and say to run the
        updater script.
      - Remove the native velocity tracker script, since it was testing code
        that has since been removed.
      
      Notes on ignored warnings:
      - We ignore warnings in any packages that are not in the Flutter repo or
        in the author's current directory.
      - We ignore various irrelevant Strong Mode warnings. We still enable
        strong mode because even though it's not really relevant to our needs,
        it does (more or less accidentally) catch a few things that are
        helpful to us.
      - We allow CONSTANTS_LIKE_THIS, since we get some of those from other
        platforms that we are copying for sanity and consistency.
      - We allow one-member abstract classes since we have a number of them
        where it's perfectly reasonable.
      - We unfortunately still ignore warnings in mojom.dart autogenerated
        files. We should really fix those but that's a separate patch.
      - We verify the actual source file when we see the 'Name non-constant
        identifiers using lowerCamelCase.' lint, to allow one-letter variables
        that use capital letters (e.g. for physics expressions) and to allow
        multiple-underscore variable names.
      - We ignore all errors on lines that contain the following magic
        incantation and a "#" character:
          // analyzer doesn't like constructor tear-offs
      - For all remaining errors, if the line contains a comment of the form
          // analyzer says "..."
        ...then we ignore any errors that have that "..." string in them.
      a0227cab
    • Adam Barth's avatar
      ItemBuilder should also get the index of the item · 0259ad81
      Adam Barth authored
      This seems useful for numbering the entries in the list, for example.
      
      Fixes #328
      0259ad81
  23. 11 Nov, 2015 2 commits
  24. 10 Nov, 2015 2 commits
  25. 07 Nov, 2015 1 commit
  26. 06 Nov, 2015 1 commit