1. 06 Oct, 2015 2 commits
  2. 05 Oct, 2015 6 commits
    • Hixie's avatar
      Fix Focus · fbf8174c
      Hixie authored
      Focus.at() and company should be on Focus, not FocusState.
      
      _notifyDescendants() was using the wrong runtimeType.
      
      Let InheritedWidget update the descendants during build.
      
      When you setState() during build, assert that you're not
      markNeedsBuild()ing someone who isn't a descendant.
      
      Typo in Widget.toString().
      fbf8174c
    • 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
    • Viktor Lidholt's avatar
    • 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
  3. 03 Oct, 2015 7 commits
    • Mehmet Akin's avatar
      Fix indent. · 8fdd8cb5
      Mehmet Akin authored
      8fdd8cb5
    • 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
    • Mehmet Akin's avatar
      5287d13b
    • 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
    • Adam Barth's avatar
      Clean up some style in GestureDetector · 426ce937
      Adam Barth authored
       * Rename GestureTapListener (and friends) To GestureTapCallback to match the
         other gesture callbacks.
       * Replace "ensureFoo" pattern with ??= operator.
      426ce937
    • 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
  4. 02 Oct, 2015 4 commits
  5. 01 Oct, 2015 11 commits
  6. 30 Sep, 2015 7 commits
    • mdakin's avatar
    • Hans Muller's avatar
      Snap scrolling: additional tests, cleanup · 4ac05235
      Hans Muller authored
      4ac05235
    • Adam Barth's avatar
      Remove BuildContext argument to initState · 347bd25c
      Adam Barth authored
      This argument isn't needed anymore now that State has a getter for context.
      347bd25c
    • Hixie's avatar
      Dynamic named routes · f2b7dd62
      Hixie authored
      Make it possible for named routes to be generated on the fly.
      
      To demonstrate this, you can now long-press a stock to open it.
      
      Next steps:
      
       - transitions between (named) states that follow full material logic,
         e.g. in the case of the stock row to stock page transition, expanding
         the row into a raised sheet of material and expanding it to fit the
         screen, leaving the toolbar in place but cross-fading the old
         contents to the new contents.
      
       - more information in the stock view.
      
      While I was here I also made Material have an opinion about default text
      style, so if you forget to set one, it just uses body1.
      
      Also, fixed bugs introduced recently that made RouteState and MenuRoute
      not work properly.
      f2b7dd62
    • mdakin's avatar
      32558478
    • Hixie's avatar
      Draggable · a91dd07c
      Hixie authored
      Introduce a Draggable class that wraps all the logic of dragging
      something and dropping it on a DragTarget.
      
      Update examples/widgets/drag_and_drop.dart accordingly.
      
      Make the performance/transition part of routes optional.
      a91dd07c
    • Hixie's avatar
      Make Stocks demo list rows clickable · f43591b3
      Hixie authored
      Not having them clickable was making it hard to notice InkSplash bugs.
      Also, this paves the way to having a stock page.
      f43591b3
  7. 29 Sep, 2015 2 commits
    • 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
    • Hixie's avatar
      fn3: toString() and toStringDeep() debugging aids · 4620b632
      Hixie authored
      4620b632
  8. 28 Sep, 2015 1 commit
    • Hixie's avatar
      Make the checkbox in the stocks popup menu work. · 066768f0
      Hixie authored
      Tapping on the menu item didn't animate the checkbox because the menu
      takes 300ms to animate entirely away while the checkbox takes 200ms to
      animate checked, and since the item with the checkbox was at the bottom,
      we were only seeing about 60ms of the entire checkbox animation, which
      isn't enough to notice it. So I moved it to the top of the menu.
      
      Tapping on the checkbox didn't animate because nothing caused the menu
      to rebuild when the callback was invoked. To trigger a rebuild, I now
      call navigator.setState() explicitly, after changing out local state.
      
      To make tapping the checkbox remove the menu, I also explicitly call
      navigator.pop() in the code that handles the check. (I still explicitly
      change the checkbox to show that that's possible. In principle one could
      just treat the checkbox as an inert widget that happens to trigger pop,
      and do all the checking/unchecking in the switch statement.)
      
      I also made some minor style tweaks to files I was looking at while
      dealing with this issue.
      066768f0