1. 25 Aug, 2015 5 commits
  2. 24 Aug, 2015 6 commits
    • Hixie's avatar
      Track the last component to build · 670f3cd7
      Hixie authored
      ...rather than the stack trace at the time the RenderObjectWrapper updates the RenderObject.
      
      Also, hide some of the debug-only fields behind "debug" prefixes and assert()s.
      670f3cd7
    • Hixie's avatar
      Better exception handling for rendering library. · d99641dd
      Hixie authored
      - Catch exceptions closer to the source.
      - Factor out exception printing code.
      - Have widget library hand the rendering library some context when syncing RenderObjectWrappers to aid with debugging.
      - Fix a bug in flex.dart whereby _overflow was compared when null.
      d99641dd
    • Adam Barth's avatar
      Mimic should track Mimicable more completely · 7077b1b3
      Adam Barth authored
      We now have Mimic tracking Mimicable through tree structure changes and while
      moving around the screen.
      
      Fixes #751 and #756
      7077b1b3
    • Collin Jackson's avatar
    • Hans Muller's avatar
      Support ScrollableLists that wrap · c21fcf62
      Hans Muller authored
      Adds itemsWrap:bool (default false) to ScrollableList and PageableList. If itemsWrap is true then scrolling past the last item wraps around to the first. Similarly, scrolling before the first item wraps around to the last.
      
      Added abstract ExtentScrollBehavior of ScrollBehavior. Renamed fields called contentsExtents to contentExtent, containerExtents to containerExtent, contentSize to contentExtent, etc.
      
      BoundedBehavior is now a subclass of ExtentScrollBehavior.
      
      Added UnboundedBehavior subclass of ExtentScrollBehvaior; contentExtent and maxScrollOffset are double.INFINITY, minScrollExtent is double.NEGATIVE_INFINITY.
      c21fcf62
    • Adam Barth's avatar
      Add GlobalKey.registerSyncListener · 16328cc8
      Adam Barth authored
      This lets clients listen for when a widget with a given global key goes through
      a sync operation. We'll need this for mimic to track its mimicable when it
      moves around the tree.
      16328cc8
  3. 22 Aug, 2015 3 commits
  4. 21 Aug, 2015 5 commits
  5. 20 Aug, 2015 9 commits
    • Hixie's avatar
      Fix compile error on trunk. · cf03afcd
      Hixie authored
      cf03afcd
    • Hixie's avatar
      Rewrite the MultiChildRenderObjectWrapper syncing algorithm. · 79a9e670
      Hixie authored
      This also changes the way we insert nodes into a
      MultiChildRenderObjectWrapper's renderObject, which fixes issue #626.
      Now, instead of the slot being a renderObject, it's the Widget that
      currently uses that renderObject. That way when the Widget changes
      which renderObject to use, the siblings of that Widget in the same
      child list don't have to be notified of the change.
      
      I tested performance of the new algorithm vs the old algorithm using
      the stocks demo at idle and the stocks demo scrolling steadily. The
      data suggests the algorithms are roughly equivalent in performance.
      79a9e670
    • Adam Barth's avatar
      Rename Component._built to Component._child · 5de9b52b
      Adam Barth authored
      Rationalizes this name with walkChildren.
      5de9b52b
    • Adam Barth's avatar
      Remove Widget.removeChild · 2db1f59c
      Adam Barth authored
      This function just calls remove(). Also, have Widget do the recursive remove
      walk by calling walkChildren.
      2db1f59c
    • Hans Muller's avatar
      Workaround for Drawer.initState() fails · 4fdb9982
      Hans Muller authored
      4fdb9982
    • Adam Barth's avatar
      Key should be const · eb1b0333
      Adam Barth authored
      For great constness.
      
      Fixes #693
      eb1b0333
    • Adam Barth's avatar
      Rename vestiges of `root` · a2e75eae
      Adam Barth authored
      We now use the term `renderObject`.
      
      Fixes #708
      a2e75eae
    • Hans Muller's avatar
      Handle changes to scrollDirection in ScrollableList et al · d662f7e6
      Hans Muller authored
      Changed the pageable_list.dart example: tapping on the toolbar changes
      the scroll direction. This exposed some problems:
      
      - Scrollable.syncFields() didn't update scrollDirection
      - Viewport updated its RenderObject fields in the wrong order
      - FixedHeightScrollable scrollDirection changes didn't update the scrollBehavior
      
      There may be similar problems with VariableHeightList and ScrollableViewport.
      I will fix those in a separate CL.
      d662f7e6
    • Adam Barth's avatar
      Fix padding on infinite scrolling list · 72807ef8
      Adam Barth authored
      Rather than using a Padding widget to provide padding along the scrolling axis,
      we now just figure the padding into where we draw the items. This patch fixes
      an issue where we would remove the first topmost item in a scrollable list too
      early because we thought it was already off screen.
      
      Fixes #697
      72807ef8
  6. 19 Aug, 2015 11 commits
    • Hixie's avatar
      RenderObjectWrapper cleanup and new asserts. · 87adaf3f
      Hixie authored
      - Clarify comment about RenderObjectWrapper.
      - Assert that we never sync a RenderObjectWrapper with an instance of a different type.
      - Assert that MultiChildRenderObjectWrapper subclasses always have multi-child RenderObjects.
      - Assert that renderObject doesn't change identity when syncing.
      - Make searchForOldNode() return void since the return value is ignored.
      - Remove code that handled renderObject changing during sync.
      87adaf3f
    • Hixie's avatar
      The ScrollDirection argument needs a default all the way through. · a9643aea
      Hixie authored
      Fixes the Stocks crash on startup.
      a9643aea
    • Adam Barth's avatar
      Give default scroll directions · bc7256da
      Adam Barth authored
      Fixes tests.
      bc7256da
    • Adam Barth's avatar
      Add a default BoxDecorationPosition · 2e3cb06f
      Adam Barth authored
      Fixes the tests because previously we wouldn't draw any box decorations.
      2e3cb06f
    • Hans Muller's avatar
    • Hans Muller's avatar
      Adds PageableList, other scrolling related changes and fixes · 7782a115
      Hans Muller authored
      - PageableList extends ScrollableList
      One fixed width or height item is visible and centered at a
      time. Fling and drag gestures scroll to the next/previous item.
      
      - Scrollable.scrollTo(), Scrollable.scrollBy(), ensureWidgetIsVisible() API changed
      The named animation parameter for these methods was replaced by
      duration and curve. All of the methods now return a Future. The Future
      completes when the scroll does.
      
      This change eliminates the need for Scrollable to temporarily take ownership
      of a ValueAnimation object (see #645).
      
      - Using Future.then() instead of an AnimationPerformance status listener
      In ensure_visible.dart _handleTap() uses ensureWidgetIsVisible() to
      center the card roughly as before and then. When the implicit scroll
      animation is complete, it changes the centered card's label font. The
      change is made when the Future returned by ensureWidgetIsVisible()
      completes.
      
      - FixedHeightScrollable's itemHeight parameter is now itemExtent
      If scrollDirection is ScrollDirection.vertical (the default) then itemExtent should
      be the height of each item; otherwise it should be the width of each item.
      
      Replaced _velocityForFlingGesture() in scrollable.dart with Scrollable._eventVelocity()
      The original version clamped pixels/ms against pixels/sec constants. The new version
      also deals with scrollDirection.
      
      - Plumbed scrollDirection though FixedHeightScrollable and ScrollableList
      
      Both classes should now support horizontal scrolling.
      7782a115
    • Adam Barth's avatar
      Add the ability to draw a foreground box decoration · 8f0efd54
      Adam Barth authored
      This feature lets you create effects similar to the "outline" property in CSS.
      8f0efd54
    • Ian Hickson's avatar
      Update README.md · 8f4db366
      Ian Hickson authored
      8f4db366
    • Adam Barth's avatar
      Add package:sky/rendering.dart · dea3a092
      Adam Barth authored
      Similar to widgets.dart, rendering.dart exports the entire rendering layer.
      Also, update the examples to use rendering.dart and widgets.dart. Also clean up
      some exports so that the examples have more sensible imports.
      dea3a092
    • Adam Barth's avatar
      Split box.dart into many files · 50bfdedb
      Adam Barth authored
      Sadly, box.dart has grown much longer than 1000 lines. This patch splits it up
      into several files based on the class hierarchy. Fortunately, many of these
      classes are loosely coupled to each other.
      50bfdedb
    • Adam Barth's avatar
      RenderImage should handle the case of a null image · 5b40e031
      Adam Barth authored
      When given a null image, RenderImage should be as small as possible (isntead of
      being NaNxNaN).
      
      Also, plumb ImageFit and ImageRepeat through the various image widgets.
      5b40e031
  7. 18 Aug, 2015 1 commit