1. 12 May, 2016 1 commit
  2. 15 Apr, 2016 1 commit
    • Ian Hickson's avatar
      Material Data Tables (#3337) · a91bc0ba
      Ian Hickson authored
      + Add new demo to gallery to show data tables. (This currently doesn't
      use a Card; I'll create a Card version in a subsequent patch.)
      
      + Fix checkbox alignment. It now centers in its box regardless.
      
      + Add Colors.black54.
      
      + Some minor fixes to dartdocs.
      
      + DataTable, DataColumn, DataRow, DataCell
      
      + RowInkWell
      
      + Augment dartdocs of materia/debug.dart.
      
      + DropDownButtonHideUnderline to hide the underline in a drop-down when
        used in a DataTable.
      
      + Add new capabilities to InkResponse to support RowInkWell.
      
      + Augment dartdocs of materia/material.dart.
      
      + Add an assert to catch nested Blocks.
      
      + Fix a crash in RenderBox when you remove an object and an ancestor
        used its baseline. (https://github.com/flutter/flutter/issues/2874)
      
      + Fix (and redocument) RenderBaseline/Baseline.
      
      + Add flex support to IntrinsicColumnWidth.
      
      + Document more stuff on the RenderTable side.
      
      + Fix a bug with parentData handling on RenderTable children.
      
      + Completely rewrite the column width computations. The old logic made
        no sense at all.
      
      + Add dartdocs to widgets/debug.dart.
      
      + Add a toString for TableRow.
      a91bc0ba
  3. 13 Apr, 2016 1 commit
  4. 11 Apr, 2016 1 commit
    • Ian Hickson's avatar
      Add even more careful checks around BoxConstraints (#3243) · 47f5c6f2
      Ian Hickson authored
      I ran into a case where I was setting minHeight=∞ and then calling
      layout() with that constraint, which is all kinds of bad. To try to
      catch this earlier, this patch now provides a way to catch constraints
      that are requiring infinite values.
      
      We don't _always_ check this because there are valid uses for
      BoxConstraints.biggest, e.g. as an additionalConstraint.
      47f5c6f2
  5. 09 Apr, 2016 1 commit
  6. 07 Apr, 2016 1 commit
    • Adam Barth's avatar
      Remove RenderBlockViewport · 1e207c01
      Adam Barth authored
      Previously this was used by MixedViewport, but now we don't need it because
      
      LazyBlockViewport has replaced MixedViewport.
      
      
      
      I've also taken this opportunity to modernize RenderBlock.
      1e207c01
  7. 05 Apr, 2016 1 commit
    • Adam Barth's avatar
      Adds a first draft of LazyBlock · 618e7e49
      Adam Barth authored
      LazyBlock is intended as a replacement for MixedViewport. Rather than
      
      maintaining a table of all the observed child sizes (like
      
      MixedViewport), LazyBlock works by dead reckoning the location of the
      
      children based on the existing viewport. This approach makes it easier
      
      to resize children because LazyBlock doesn't cache any additional
      
      information that would need to be invalidated.
      
      
      
      This patch contains a first draft of LazyBlock that works in a simple
      
      usage scenario. Subsequent patches will replace
      
      ScrollableMixedWidgetList with LazyBlock and port the existing
      
      ScrollableMixedWidgetList tests over to LazyBlock.
      
      
      
      Related to #3075
      618e7e49
  8. 24 Mar, 2016 1 commit
  9. 14 Mar, 2016 1 commit
  10. 12 Mar, 2016 2 commits
  11. 08 Mar, 2016 1 commit
    • Adam Barth's avatar
      Remove bogus intrinsic size assert · 501b948e
      Adam Barth authored
      This patch tweaks the definition of max intrinsic size to give implementations
      more wiggle room to compute there intrinsic sizes more efficiently.
      Specifically, implementations can now ignore the incomming constraint in the
      cross axis if they prefer.
      
      This patch removes an assert that is no longer valid w.r.t. the new definition
      of intrinsic sizing.
      
      Fixes #2099
      501b948e
  12. 27 Feb, 2016 1 commit
  13. 14 Feb, 2016 1 commit
  14. 10 Feb, 2016 1 commit
    • Hixie's avatar
      More BoxConstraints asserts · 29654016
      Hixie authored
      The asserting will continue until morale improves!
      
      * Convert all assert(*.isNormalized) checks to use the new
        debugAssertIsNormalized technology.
      * Convert CustomMultiChildLayout to use the new RenderingError
        technology to greatly improve the detail in errors you get when
        writing CustomMultiChildLayout delegates.
      * Add BoxConstraints.copyWith().
      * Indent the descendants in the rendering exception data dump so that
        when you have multiple children it's clearer what's going on.
      29654016
  15. 06 Feb, 2016 1 commit
  16. 05 Feb, 2016 1 commit
    • Hixie's avatar
      Improve exceptions and asserts for rendering lib. · 1a0484cc
      Hixie authored
      * Use actual exceptions rather than assertions containing code
        containing strings when trying to give messages to authors.
      * Introduce RenderingError which is an AssertionError that takes a
        string argument, to support the above.
      * Provide a BoxDimensions.hasBoundedWidth/hasBoundedHeight API.
      * Document BoxDimensions.isNormalized.
      * Provide more useful information when we assert isNormalized and find
        that it is false.
      * When finding the size is infinite, crawl the tree to figure out which
        render box is likely responsible for the infinite constraints.
      * Provide more information when size doesn't match the constraints.
      * Provide more information when intrinsic dimension methods violate the
        constraints.
      * Only spam a huge amount of information for the first exception from
        the rendering library. I've noticed a lot of people looking at the
        last exception printed rather than the first and that's very
        misleading -- after the rendering library hits an exception, all bets
        are off regarding what'll happen in the future. All kinds of asserts
        might fire.
      * Improve docs around the debug methods and flags for the above.
      * Make Block default to have no children. Previously, giving no children
        crashed with a confusing message about a null deref in an assert.
      1a0484cc
  17. 27 Jan, 2016 1 commit
  18. 18 Jan, 2016 1 commit
    • Ian Hickson's avatar
      Fix some intrinsic constraints contract violations. · 60d9ab7e
      Ian Hickson authored
      RenderBlock wasn't constraining the results.
      RenderPadding wasn't constraining the results (which matters
      especially when the constraints can't fit the padding in the first
      place).
      RenderViewport wasn't constraining the results.
      
      Add a test for the block case.
      
      To catch this kind of thing in the future, add some asserts to
      debugDoesMeetConstraints() that all four intrinsic functions return
      values that are within the constraints.
      
      RenderBlockViewport doesn't support returning intrinsics, so turn off
      the "no intrinsic support" asserts (and return zero) when we're doing
      this new assert.
      
      This new assert screwed up the custom layout classes' tests, so adjust
      those tests to ignore the callbacks invoked from these asserts.
      
      Add to the _debugReportException() method a short summary of the
      descendants of this node. It's important to have this information when
      debugging errors like these intrinsic constraints contract violations
      because often nodes just pass the values through to their child so you
      have to go several steps down to find the actual problem.
      
      Fixes https://github.com/flutter/flutter/issues/1210
      60d9ab7e
  19. 11 Jan, 2016 2 commits
  20. 07 Jan, 2016 2 commits
  21. 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
  22. 05 Jan, 2016 1 commit
    • Adam Barth's avatar
      Complete features of ScrollableList2 · 37106ea6
      Adam Barth authored
      This patch implements the remaining missing features of ScrollableList2.
      It should now be nearly a drop-in replacement for ScrollableList. The
      next patch will switch callers over to the new machinery.
      37106ea6
  23. 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
  24. 02 Jan, 2016 2 commits
  25. 11 Dec, 2015 1 commit
    • Ian Hickson's avatar
      applyPaintTransform() improvements · d1364643
      Ian Hickson authored
      Previously, applyPaintTransform() had to know how it was positioned in
      its parent, even though that's really the parent's responsibility.
      
      Now, applyPaintTransform() is given a child and applies the transform
      that it would give the child during paint.
      
      This makes it possible for applyPaintTransform() to work across
      coordinate system boundaries (e.g. box to sector, or view to box --
      previously, view to box only worked because we explicitly skipped that
      step -- since view doesn't actually apply a transform, it doesn't
      really matter).
      d1364643
  26. 10 Dec, 2015 1 commit
  27. 09 Dec, 2015 1 commit
    • Ian Hickson's avatar
      Catch un-normalized BoxConstraints · 1a049c14
      Ian Hickson authored
      Add BoxConstraints.isNormalized feature.
      
      Use this feature in asserts in all the intrinsic dimension methods, in
      various relevant BoxConstraints methods, and in layout().
      
      Wrap the _DebugSize logic in BoxConstraints.constrain() in an assert
      block to avoid a branch in release mode.
      
      Remove the logic in BoxConstraints.isSatisfiedBy() that dealt with
      non-normalized values.
      
      Add BoxConstraints.normalize().
      
      Make RenderCustomOneChildLayoutBox.performLayout() only set
      parentUsesSize on the child if the constraints aren't tight.
      1a049c14
  28. 20 Nov, 2015 1 commit
  29. 19 Nov, 2015 1 commit
  30. 05 Nov, 2015 1 commit
    • Adam Barth's avatar
      Improve hit testing · 9bc64540
      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
      9bc64540
  31. 04 Nov, 2015 1 commit
    • Hixie's avatar
      Get more debug info into the rendering layer · 6d389722
      Hixie authored
      - change how we expose settings at the RenderObject layer so that it's
        easier to maintain.
      - expose the Widget owner chain in the RenderObject layer debug output
      - add debug info to RenderOpacity, RenderIgnorePointer, RenderListener
      - make the output for text nodes prettier
      6d389722
  32. 14 Oct, 2015 1 commit
    • 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
  33. 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
  34. 09 Oct, 2015 1 commit
    • Hixie's avatar
      Relative paths in internal flutter libraries · 37bda251
      Hixie authored
      Now that you import a top-level file for each layer of the Flutter
      framework, within the framework we can use relative paths without being
      worried about the copy/pasta problem we used to have.
      37bda251
  35. 01 Oct, 2015 1 commit
  36. 29 Sep, 2015 1 commit