1. 02 Sep, 2015 1 commit
    • Adam Barth's avatar
      Move widgets and rendering inside src · 693ddcd8
      Adam Barth authored
      Code outside of package:sky should import this code using
      
      package:sky/rendering.dart
      package:sky/widgets.dart
      
      Moving this code into the "src" directory is a convention that signifies that
      and it cleans up the generated dartdoc because the libraries in the src
      directory aren't included in the generated documentation. Instead, the classes
      are documented in the widgets.dart and rendering.dart libraries.
      693ddcd8
  2. 28 Aug, 2015 2 commits
  3. 22 Aug, 2015 1 commit
  4. 21 Aug, 2015 1 commit
  5. 11 Aug, 2015 1 commit
    • Matt Perry's avatar
      Scaffold: animate the FloatingActionButton with the SnackBar. · 3d9f5231
      Matt Perry authored
      This introduces the concept of an Anchor, which you can use to link
      transitions together. I've used this in the Fitness and Stocks apps to
      link the FAB and SnackBar to animate together by sharing the
      SlideTransition.
      
      I also fixed the Scaffold hit testing code to apply sub-widget
      transforms, so it works with Transformed nodes.
      3d9f5231
  6. 04 Aug, 2015 1 commit
  7. 03 Aug, 2015 1 commit
    • Matt Perry's avatar
      Rename some animation classes. · 99c0edd6
      Matt Perry authored
      * Intentions => Behaviors
      * SlideIn => SlideTransition
      * FadeIn => FadeTransition
      * removed unused AnimatedContainer intentions
      99c0edd6
  8. 02 Aug, 2015 1 commit
  9. 31 Jul, 2015 1 commit
  10. 30 Jul, 2015 1 commit
  11. 28 Jul, 2015 2 commits
  12. 25 Jul, 2015 2 commits
    • Hixie's avatar
      Scoped focus, so you can have a dialog with input controls and not lose your... · 60177a71
      Hixie authored
      Scoped focus, so you can have a dialog with input controls and not lose your focus in the background.
      
      This introduces a GlobalKey registry so that you can tell when a key
      has gone away (so you can unfocus dead dialogs).
      
      Also I added an assert that you're not calling setState() during a
      build. It turns out that doing so means you have a bug, because since
      you're dirty already (you're building), you won't get rebuilt.
      
      The focus code itself is gnarly. It uses a Component and an internal
      Inherited TagNode to manage the focus state, and does crazy things
      like updating its state during build to pretend retroactively that it
      was built with some other state, once someone asks for focus the first
      time (i.e. the first time it's examined, so you can't tell that it was
      in a different state before). It does this so that it can autofocus
      controls which otherwise wouldn't be focused.
      
      This moves all the focus management into Navigator and showDialog(),
      so the complexity is all buried deep and not visible to apps,
      hopefully.
      
      To do something like two tabs that each have an Input widget that
      needs to be focused when you switch panes, you'd need to have two
      Focus objects, one in each tab, and you need to set their autofocus to
      true (maybe that should be the default?).
      60177a71
    • Hixie's avatar
  13. 24 Jul, 2015 1 commit
    • Hixie's avatar
      Use the navigator to stack dialogs. · ac6342ab
      Hixie authored
      This removes the need to manually include the dialog builder in the main window's build() function.
      It also removes the need to track if a dialog is visible.
      
      Other changes:
      - I made dialog.dart a bit more readable.
      - I renamed transitionFinished to fullyOpaque since that's what actually matters.
      - I made Routes track if they're opaque. Eventually this should probably be more configurable when creating the route.
      
      Directions for Future Research:
      - Use this for focus management somehow.
      - The popup menu should use something like this.
      - We should factor the following out into a showDialog() function that returns a future for the dialog's exit result:
          navigator.push(new DialogRoute(builder: (navigator, route) { ... }));
      - Maybe navigator.pop() should take a value to return to that Future.
      ac6342ab
  14. 22 Jul, 2015 1 commit
    • Hixie's avatar
      Introduce an explicit Key type. · 74575775
      Hixie authored
      This fixes some theoretical bugs whereby we were using hashCode to try
      to get unique keys for objects, but really we wanted object identity.
      It also lays the groundwork for a new GlobalKey concept.
      
      I tried to keep the impact on the code minimal, which is why the "Key"
      constructor is actually a factory that returns a StringKey. The code
      has this class hierarchy:
      
      ```
         KeyBase
          |
         Key--------------+---------------+
          |               |               |
         StringKey    ObjectKey       UniqueKey
      ```
      
      ...where the constructors are Key and Key.stringify (StringKey),
      Key.fromObjectIdentity (ObjectKey), and Key.unique (UniqueKey).
      
      We could instead of factory methods use regular constructors with the
      following hierarchy:
      
      ```
         KeyBase
          |
         LocalKey---------+---------------+
          |               |               |
         Key      ObjectIdentityKey   UniqueKey
      ```
      
      ...with constructors Key, Key.stringify, ObjectIdentityKey, and
      UniqueKey, but I felt that that was maybe a more confusing hierarchy.
      I don't have a strong opinion on this.
      74575775
  15. 21 Jul, 2015 2 commits
    • Hixie's avatar
      Rationalise usage of keys in navigator.dart. · 9da399b0
      Hixie authored
      Route (named routes) no longer have a key, and have their own storage for their names.
      RouseState no longer has a key, and uses an owner field pointing to a StatefulComponent instead.
      As such, RouteBase no longer has a key.
      
      HistoryEntry no longer uses a global int to ensure uniqueness.
      
      Propagated this to stocks app.
      9da399b0
    • Matt Perry's avatar
      Renamed AnimatedType to AnimatedValue · 0fd3302e
      Matt Perry authored
      0fd3302e
  16. 17 Jul, 2015 6 commits
  17. 16 Jul, 2015 1 commit