1. 27 Sep, 2016 1 commit
  2. 21 Jun, 2016 1 commit
    • Ian Hickson's avatar
      ImageIcon (#4649) · e502e9c8
      Ian Hickson authored
      Anywhere that accepted IconData now accepts either an Icon or an
      ImageIcon.
      
      Places that used to take an IconData in an `icon` argument, notably
      IconButton and DrawerItem, now take a Widget in that slot. You can wrap
      the value that used to be passed in in an Icon constructor to get the
      same result.
      
      Icon itself now takes the icon as a positional argument, for brevity.
      
      ThemeData now has an iconTheme as well as a primaryIconTheme, the same
      way it has had a textTheme and primaryTextTheme for a while.
      
      IconTheme.of() always returns a value now (though that value itself may
      have nulls in it). It defaults to the ThemeData.iconTheme.
      
      IconThemeData.fallback() is a new method that returns an icon theme data
      structure with all fields filled in.
      
      IconTheme.merge() is a new constructor that takes a context and creates
      a widget that mixes in the new values with the inherited values.
      
      Most places that introduced an IconTheme widget now use IconTheme.merge.
      
      IconThemeData.merge and IconThemeData.copyWith act in a way analogous to
      the similarly-named members of TextStyle.
      
      ImageIcon is introduced. It acts like Icon but takes an ImageProvider
      instead of an IconData.
      
      Also: Fix the analyzer to actually check the stocks app.
      e502e9c8
  3. 14 Mar, 2016 1 commit
  4. 13 Mar, 2016 1 commit
    • Adam Barth's avatar
      [rename fixit] ToolBar -> AppBar · ede5dfce
      Adam Barth authored
      * left -> leading (Removes an LTR bias)
      * center -> title (Widget was actually centered)
      * right -> actions (Removes an LTR bias, asymmetric with leading)
      
      Fixes #2348
      ede5dfce
  5. 12 Mar, 2016 2 commits
  6. 02 Mar, 2016 1 commit
    • Adam Barth's avatar
      Switch Material Design icons to using the iconfont · 870894fc
      Adam Barth authored
      Rather than managing all the Material Design icons manually, we now
      manage them using an icon font. The icon font contains glyphs for each
      icon in an efficient vector format.
      
      This patch updates the FLX tooling to include the MaterialIcons font and
      updates the Icon widget to use the font instead of asset images.
      
      Fixes #2313
      Fixes #2218
      Fixes #2009
      Fixes #994
      870894fc
  7. 12 Feb, 2016 1 commit
  8. 11 Feb, 2016 1 commit
    • Ian Hickson's avatar
      Clean up imports and exports. · a94999ba
      Ian Hickson authored
      Each layer is supposed to reexport the parts of the previous layer
      that are part of its API.
      
      - In painting.dart, export from dart:ui all the Canvas-related APIs
        that make sense to be used at higher levels, e.g. PaintingStyle.
      
      - Delete painting/shadows.dart. It was dead code.
      
      - In rendering/object.dart, export all of painting.dart.
      
      - In widgets/basic.dart, export all of painting.dart and
        animation.dart. Some classes in animation/ are renamed to make this
        less disruptive and confusing to the namespace.
      
      - Split out Stocks back into an import model rather than a part model,
        so that it's easier to manage its dependencies on a per-file basis.
      
      - Move Ticker to scheduler library.
      
      - Remove as many redundant imports as possible now.
      
      - Some minor nit picking cleanup in various files.
      a94999ba
  9. 27 Jan, 2016 1 commit
  10. 22 Jan, 2016 1 commit
  11. 11 Jan, 2016 3 commits
    • Adam Barth's avatar
      Use a named argument for Widget children · 05676641
      Adam Barth authored
      Previously we used a positional argument for widgets that had multiple
      children. Now we use a named argument that defaults to an empty list.
      
      Fixes #241
      05676641
    • Ian Hickson's avatar
      88c43c3f
    • Ian Hickson's avatar
      Add more debugging options to the stocks app. · 48e1350e
      Ian Hickson authored
      - Add an option to enable debugPaintSizeEnabled.
      - Add an option to enable the StatisticsOverlay.
      - Add support for the StatisticsOverlay in MaterialApp.
      - Change the layout behaviour of RenderStatisticsBox:
         - Give it a zero intrinsic width.
         - Give it an accurate intrinsic height that depends on the flags
           set. (Also, move the enum to the rendering/ layer from the
           widgets/ layer to enable this.)
         - Make the box automatically size itself full-width and the correct
           height, so that you can actually embed it (though most of the
           time you'd just put it in a Stack so this doesn't matter as
           much, really).
      - Some style nit fixes in statistics_box.dart.
      48e1350e
  12. 10 Jan, 2016 1 commit
  13. 08 Jan, 2016 1 commit
  14. 04 Dec, 2015 1 commit
  15. 30 Nov, 2015 1 commit
    • Hixie's avatar
      NavigatorTransaction · f9ea1ce8
      Hixie authored
      To make it easier to avoid pushing twice in one frame, provide a
      transaction mechanism for the navigator.
      f9ea1ce8
  16. 06 Nov, 2015 1 commit
    • Hixie's avatar
      Teach Block about padding. · 1f5844ea
      Hixie authored
      It's common to want a scrolling viewport but with padding around the
      contents. Teaching Block about this makes the places that do this
      substantially simpler and further buries ScrollableViewport and
      BlockBody (they're now only used in scrollable.dart).
      1f5844ea
  17. 02 Nov, 2015 1 commit
    • Adam Barth's avatar
      Routes shouldn't be interactive when animating out · 828775e9
      Adam Barth authored
      This patch introduces the notion of a ModalRoute that puts up a modal barrier
      and makes the route invisible to hit testing when its animating out. This patch
      also uses this mechanism in a number of places (including PageRoute). There are
      still a few more cases to convert, but that's work for a future patch.
      
      Fixes #1684
      828775e9
  18. 27 Oct, 2015 1 commit
    • Ian Hickson's avatar
      Track scroll position · 8a900f90
      Ian Hickson authored
      - Change RouteArguments to pass the route's BuildContext rather than
        the Navigator. This caused the bulk of the examples/ and .../test/
        changes (those are mostly mechanical changes). It also meant I could
        simplify Navigator.of().
      
      - Make initState() actually get called when the State's Element is in
        the tree, so you can use Foo.of() functions there. Added a test for
        this also.
      
      - Provide a RouteWidget so that routes have a position in the Widget
        tree. The bulk of the route logic is still in a longer-lived Route
        object for now.
      
      - Make Route.setState() only rebuild the actual route, not the whole
        navigator.
      
      - Provided a Route.of().
      
      - Provided a Route.writeState / Route.readState API that tries to
        identify the clients by their runtimeType, their key, and their
        ancestors keys, up to the nearest ancestor with a GlobalKey.
      
      - Made scrollables hook into this API to track state. Added a test to
        make sure this works.
      
      - Fix the debug output of GestureDetector and the hashCode of
        MixedViewport.
      
      - Fixed ScrollableWidgetListState<T> to handle infinite lists.
      8a900f90
  19. 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
  20. 19 Oct, 2015 1 commit
  21. 12 Oct, 2015 2 commits
    • 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
    • Adam Barth's avatar
      Change the default MaterialType to canvas · 09665c0d
      Adam Barth authored
      Canvas is by far the most popular type of material by call site (and makes for
      a faster default because it doesn't have a RRect clip).
      09665c0d
  22. 06 Oct, 2015 1 commit
    • Adam Barth's avatar
      Simplify Scaffold · 89a09822
      Adam Barth authored
      Rather than using a custom render object, we can just use a Stack.
      89a09822
  23. 26 Sep, 2015 1 commit
  24. 21 Sep, 2015 1 commit
    • Adam Barth's avatar
      Remove EventDisposition · 051354ae
      Adam Barth authored
      All the use cases for EventDisposition are now addressed by the gesture
      detection system.
      051354ae
  25. 26 Aug, 2015 1 commit
    • Hixie's avatar
      Replace Flex to Row and Column in tests and examples. · ce28a717
      Hixie authored
      This still leaves Flex and FlexDirection available. At some point once
      people have transitioned to Row/Column we should rename Flex to _Flex
      and stop reexporting FlexDirection from basic.dart.
      ce28a717
  26. 22 Aug, 2015 3 commits
  27. 21 Aug, 2015 1 commit
    • Adam Barth's avatar
      Rename all the scrollable classes · 010589be
      Adam Barth authored
      Block -> BlockBody
      ScrollableBlock -> Block
      FixedHeightScrollable -> ScrollableWidgetList
      VariableHeightScrollable -> ScrollableMixedWidgetList
      BlockViewport -> MixedViewport
      010589be
  28. 08 Aug, 2015 1 commit
  29. 04 Aug, 2015 2 commits
    • James Robinson's avatar
      Add RenderToggleable base and use in Switch and Checkbox · 56a4a8ad
      James Robinson authored
      This refactors Checkbox to own a RenderObject similar to how Switch was
      refactored in https://github.com/domokit/sky_engine/pull/376 and
      extracts common functionality for toggleable renderers into a base
      class.  Switch and Checkbox's render objects derive from this base
      class to add their own custom painting and theming logic.
      56a4a8ad
    • James Robinson's avatar
      Teach event system about disposition and make 'consumed' disposition terminal · 53163f8b
      James Robinson authored
      This introduces the notion of event disposition and allows event
      targets (widgets and render objects) to consume events that should not
      be processed further. This is needed by the Switch component in the
      Drawer in the stocks example. The Switch is embedded in a DrawerItem.
      The Switch handles the gesture tap event to toggle its state and should
      handle pointer events to allow swiping and draw its own radial
      reaction. The DrawerItem also handles gesture taps to allow toggling
      the switch value when tapping anywhere on the drawer and to draw its
      own ink splash. When tapping on the switch, both the switch's render
      object and the DrawerItem's listener are in the event dispatch path.
      The Switch needs to signal in some fashion that it consumed the event
      so the DrawerItem does not also try to toggle the switch's state.
      53163f8b
  30. 28 Jul, 2015 2 commits
  31. 25 Jul, 2015 1 commit
  32. 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