1. 20 Oct, 2015 3 commits
  2. 19 Oct, 2015 3 commits
  3. 16 Oct, 2015 2 commits
  4. 14 Oct, 2015 2 commits
    • Hixie's avatar
      7946dc3a
    • Hans Muller's avatar
      Added Painter, ScrollingListPainter, MaterialScrollbarPainter · 921d4320
      Hans Muller authored
      Enabled displaying a scrollbar in ScrollingLists. The scrollbar is painted as an "overlay", i.e. it's painted on top of the scrolling list's visible children.
      
      Added an abstract Painter base class that encapsulates a paint method and the renderer that it's attached to. RenderBlockViewport and HomogenousViewport now support an overlayPainter property. If specified, RenderBlockViewport attaches itself to the overlayPainter when it's attached to the rendering tree. RenderBlockViewport now calls overlayPainter.paint() after it has painted its children.
      
      Added an abstract ScrollingListPainter class that exposes ScrollingList's state which might be needed for painting. Like its scroll direction and scrollOffset. The ScrollingListPainter is notified when a scroll starts and ends.
      
      Defined a Material-specific ScrollingListPainter that renders a scrollbar. The scrollbar thumb is faded in/out when the scroll starts/ends.
      
      Added onScrollStart and onScrollEnd listeners to Scrollable.
      921d4320
  5. 13 Oct, 2015 2 commits
    • Hixie's avatar
      Port first sector demo to fn3 · 1cf1cf9c
      Hixie authored
      Also, fix warnings in rendering/sector_layout.dart
      Also, fix hit testing in rendering/sector_layout.dart
      Also, add WidgetToRenderBoxAdapter
      Also, make the rendering library debugging tools more resilient to
      dumping stuff before layout is complete.
      1cf1cf9c
    • Adam Barth's avatar
      Add a centerSlice parameter to images · 998a066a
      Adam Barth authored
      This lets you draw nine-patch images.
      998a066a
  6. 12 Oct, 2015 4 commits
  7. 10 Oct, 2015 3 commits
  8. 09 Oct, 2015 2 commits
  9. 08 Oct, 2015 1 commit
    • Hans Muller's avatar
      IndexedStack · 09d26302
      Hans Muller authored
      Added horizontal and vertical alignment properties to Stack so that the origin of non-positioned children can be specified. Currently all of the non-positioned children just end up with their top-left at 0,0. Now, for example, you can center the children by specifying verticalAlignment: 0.5, horizontalAlignment: 0.5.
      
      Added IndexedStack which only paints the stack child specified by the index property. Since it's a Stack, it's as big as the biggest non-positioned child. This component will be essential for building mobile drop down menus.
      
      Added a (likely temporary) example that demonstrates IndexedStack.
      09d26302
  10. 07 Oct, 2015 1 commit
    • Hixie's avatar
      HomogeneousViewport support for Theme.of() · d45bf145
      Hixie authored
      Previously, RenderObjectElements didn't support being marked dirty. This
      is fine, except for MixedViewport and HomogeneousViewport, which have
      builder functions to which they hand themselves as a BuildContext. If
      those builder functions call, e.g., Theme.of(), then when the theme
      changes, the Inherited logic tries to tell the RenderObjectElement
      object that its dependencies changed and that doesn't go down well.
      
      This patch fixes this by making RenderObjectElement a BuildableElement,
      and making MixedViewport and HomogeneousViewport hook into that to
      rebuild themselves appropriately.
      
      Also, this was only found at all because ThemeData didn't implement
      operator==, so we were aggressively marking the entire tree dirty all
      the time. That's fixed here too.
      
      Also, I changed card_collection.dart to have more features to make this
      easier to test. This found bugs #1524, #1522, #1528, #1529, #1530, #1531.
      d45bf145
  11. 06 Oct, 2015 1 commit
    • Adam Barth's avatar
      Simplify Scaffold · 89a09822
      Adam Barth authored
      Rather than using a custom render object, we can just use a Stack.
      89a09822
  12. 05 Oct, 2015 4 commits
    • Hixie's avatar
      Simplify the usage of Navigator's routes argument · 90a0f630
      Hixie authored
      (These are changes cherry-picked from in-flight branches since they are
      more independent and could be helpful even without those changes.)
      
      - Change RouteBuilder's signature to take a single argument in which the
        other fields are placed, so that we can keep iterating on those
        arguments without having to break compatibility each time. Also, this
        makes defining route builders much simpler (only one argument to
        ignore rather than a variable number).
      
      - Expose the next performance to RouteBuilders, since sometimes the
        route itself might not be where it's used.
      
      - Allow BuildContext to be used to walk children, just like it can for
        ancestors
      
      - Allow BuildContext to be used to get the Widget of the current
        BuildContext
      
      - Allow StatefulComponentElement to be referenced with a type
        specialisation so that you don't have to cast when you know what the
        type you're dealing with actually is.
      90a0f630
    • Adam Barth's avatar
      Give Interval a Curve to apply between start and end · 3a31f5f7
      Adam Barth authored
      This patch simplifies AnimationTiming and all the AnimatedValue base classes.
      Also, make PopupMenu a stateless component because it has no state.
      
      Fixes #1168
      3a31f5f7
    • Adam Barth's avatar
      Improves names of animation classes · 3f82552d
      Adam Barth authored
      Fixes #1170
      3f82552d
    • Adam Barth's avatar
      Convert Drawer to using navigator · 49c47876
      Adam Barth authored
      This patch converts drawer to using the "openDialog" pattern for managing its
      state. Currently, the drawer entrance and exit animation aren't integrated with
      the navigator's animation system because the drawer's animations can be stopped
      and reversed, which the navigator can't yet understand. That means dismissing
      the drawer via the system back button causes the drawer to be removed
      instanteously.
      
      Fixes #715
      Fixes #1187
      49c47876
  13. 03 Oct, 2015 3 commits
    • Adam Barth's avatar
      Switch scheduler over to Duration · db191e96
      Adam Barth authored
      This patch prepares us to switch to using integers when handing off the
      animation time from the engine to the framework.
      db191e96
    • Adam Barth's avatar
      Use `}) : super` consistently · e9aabcd5
      Adam Barth authored
      Fixes #1372
      e9aabcd5
    • Hans Muller's avatar
      ShaderMask · 4de0a99b
      Hans Muller authored
      The ShaderMask widget enables rendering its child with an alpha channel defined by a Shader. For example if the Shader was a linear gradient in alpha then the component behind the ShaderMask's child would appear wherever the gradient's alpha value was not fully opaque.
      
      The card_collection.dart example demonstrates this. Select the "Let the sun shine" checkbox in the app's drawer.
      4de0a99b
  14. 02 Oct, 2015 1 commit
    • Hixie's avatar
      Draggable offsets and fix default drag feedback · 894a1ca0
      Hixie authored
      You can now set an offset that will be used for the hit testing for
      drops. (It doesn't move the feedback by default; use a Transform for
      that.) I also made the default feedback not be Opacity 0.5 always.
      894a1ca0
  15. 01 Oct, 2015 3 commits
  16. 30 Sep, 2015 3 commits
  17. 29 Sep, 2015 1 commit
    • Hans Muller's avatar
      SnapOffsets for fling Scrolling · 7385641f
      Hans Muller authored
      Initial snap offset support for ScrollableWidgetList (and ScrollableList<T>) and ScrollableMixedWidgetList. If a ```toSnapOffset(scrollOffset)``` function is provided, fling Scrolls will coast to the returned value. If ```alignmentOffset``` is specified then fling scrolls conclude when toSnapOffset's value lines up with the Scrollable widget's origin + alignmentOffset. For example if the Scrollable widget's height was 200.0, and alignmentOffset:100.0 was specified, then fling scrolls would end with the value returned by toSnapOffset() lined up with the center of the Scrollable.
      
      This approach to Scrollable snapping assumes that the layout of whatever the Scrollable contains is known at the outset. This is often true however a ScrollableMixedWidgetList may not know its items' sizes until they've been reached by scrolling.
      
      This is a first cut at snapping support. Among the things that remain to be done:
      - Scrolling limits trump snapping. Snapping should probably trump scrolling limits.
      - Drag scrolls aren't snapped. This may be desirable so perhaps the feature should be controlled with a flag.
      - Specifying alignmentOffset as a percentage would probably be more convenient.
      - It would be nice if one could wrap items in a SnapOffset value like: ```new SnapOffset(0.5, child: myItem)``` to snap to the center of the item.
      
      Updated the CardCollection example: snapping and fixed size items can be turned on/off with Drawer checkboxes.
      7385641f
  18. 26 Sep, 2015 1 commit