1. 22 Oct, 2015 1 commit
    • Adam Barth's avatar
      Add Navigator.of · de395582
      Adam Barth authored
      Now you don't need to pass the navigator around everywhere.
      de395582
  2. 15 Oct, 2015 1 commit
    • Hixie's avatar
      Improve debugging output · 1f40d96f
      Hixie authored
      Teach dumpRenderTree() to draw actual trees.
      Make the TextStyle output terser so it doesn't overflow the output.
      Make debugDumpApp() say what mode we're in (checked vs release).
      Hide lifecycle state from release mode dumps (since it's checked-only state).
      1f40d96f
  3. 10 Oct, 2015 3 commits
  4. 09 Oct, 2015 2 commits
  5. 06 Oct, 2015 1 commit
  6. 05 Oct, 2015 1 commit
    • 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
  7. 01 Oct, 2015 1 commit
  8. 30 Sep, 2015 3 commits
    • 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
    • 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
  9. 26 Sep, 2015 1 commit
  10. 18 Sep, 2015 2 commits
    • Hixie's avatar
      Introduce a showPopupMenu() function · a3ae46b9
      Hixie authored
      Instead of having to manage the popup menu from your app's build
      function, you now just call showPopupMenu() with the menu's position and
      it takes care of everything for you.
      
      This solves the problem that the popup menu was trying to mutate the
      state of the navigator from within its own initState() function.
      
      Also, remove the "route" argument to RouteBase.build() since it equals
      "this" by definition...
      
      Also, remove ModalOverlay, and instead put that logic in the navigator.
      a3ae46b9
    • Adam Barth's avatar
      Move theme into material.dart · 4467a268
      Adam Barth authored
      Also, introduce Colors and Typography to hold the material colors and the
      typography declarations. Previously we expected clients of these libraries to
      import them into a namespace, but that doesn't play nice with re-exporting them
      from material.dart.
      4467a268
  11. 08 Sep, 2015 1 commit
    • Adam Barth's avatar
      Introduce package:sky/animation.dart · b356d146
      Adam Barth authored
      Move the animation libraries into src/animation and change importers to use
      package:sky/animation.dart. Also, move scheduler.dart into the animation
      library so that the animation library can be self-contained.
      b356d146
  12. 07 Sep, 2015 1 commit
  13. 21 Aug, 2015 1 commit
  14. 19 Aug, 2015 2 commits
    • 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
  15. 08 Aug, 2015 1 commit
  16. 03 Aug, 2015 1 commit
  17. 30 Jul, 2015 1 commit
  18. 28 Jul, 2015 2 commits
  19. 25 Jul, 2015 1 commit
    • 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
  20. 24 Jul, 2015 2 commits
  21. 16 Jul, 2015 1 commit