1620 Commits

Author SHA1 Message Date
Adam Barth
d4b1519cef Port dimissable_test.dart to fn3 2015-09-30 15:03:32 -07:00
Ian Hickson
1d0573fdf2 Merge pull request #1413 from Hixie/performance
Simplify AnimationPerformance
2015-09-30 14:47:19 -07:00
Adam Barth
e312c6be79 Merge pull request #1410 from abarth/flutter_dev
s/sky-dev/flutter-dev/
2015-09-30 14:35:05 -07:00
Hixie
3b62185f8a Simplify AnimationPerformance
AnimationPerformance had some logic for supporting multiple variables
that was hardly ever used. ValueAnimation, a subclass, has logic for
handling a single variable. I've removed the logic for handling
variables from AnimationPerformance in favour of most call sites instead
using ValueAnimation.
2015-09-30 13:51:20 -07:00
Adam Barth
abb836d19e s/sky-dev/flutter-dev/ 2015-09-30 13:20:43 -07:00
Adam Barth
347bd25cb4 Remove BuildContext argument to initState
This argument isn't needed anymore now that State has a getter for context.
2015-09-30 13:15:46 -07:00
Adam Barth
01f7c8460f Rev pub package 2015-09-30 12:10:12 -07:00
Adam Barth
215e6ae25c Merge pull request #1408 from abarth/widgets_next
Add widgets_next.dart to help folks transition to fn3
2015-09-30 11:29:09 -07:00
Adam Barth
37ee4b25f5 Add widgets_next.dart to help folks transition to fn3
Also, fix analyzer warning in fn2.
2015-09-30 11:22:05 -07:00
Ian Hickson
8f91be5a02 Merge pull request #1405 from Hixie/dynamic-routes
Dynamic named routes
2015-09-30 09:54:27 -07:00
Hixie
f2b7dd6201 Dynamic named routes
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.
2015-09-30 09:03:58 -07:00
mdakin
32558478b1 Fix alignment of mine counts, simplfy code a bit. 2015-09-30 15:11:42 +02:00
Ian Hickson
1203b08b73 Merge pull request #1402 from Hixie/overflow
Change OverflowBox API to allow min and max values
2015-09-29 22:32:26 -07:00
Ian Hickson
9cb9eaf54f Merge pull request #1403 from Hixie/clickable-stocks
Make Stocks demo list rows clickable
2015-09-29 22:32:00 -07:00
Adam Barth
84f2b5a5b0 Merge pull request #1397 from jason-simmons/editable_text_unused_import_sky
Fix a couple of analyzer warnings
2015-09-29 19:42:43 -07:00
Hixie
a91dd07cb3 Draggable
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.
2015-09-29 18:00:40 -07:00
Hixie
f43591b3c4 Make Stocks demo list rows clickable
Not having them clickable was making it hard to notice InkSplash bugs.
Also, this paves the way to having a stock page.
2015-09-29 17:55:27 -07:00
Ian Hickson
4150615e26 Merge pull request #1401 from Hixie/lists
Make hit testing work in horizontal scrolling list
2015-09-29 17:10:01 -07:00
Ian Hickson
156ff2beec Merge pull request #1386 from Hixie/toString
fn3: toString() and toStringDeep() debugging aids
2015-09-29 17:09:54 -07:00
Ian Hickson
8621892f73 Merge pull request #1377 from Hixie/rebuild
Require giving a GlobalKey to UniqueComponent
2015-09-29 17:09:34 -07:00
Ian Hickson
8b6bd844cf Merge pull request #1376 from Hixie/toggleable
Make the checkbox in the stocks popup menu work.
2015-09-29 17:08:36 -07:00
Hixie
eec9833f9a Change OverflowBox API to allow min and max values
Previously OverflowBox was only useful to set a tight constraint on the
child. Now it can be used to set any constraint, it just overrides any
constraint from the parent that is not set to null on the
RenderOverflowBox object when giving the constraints to the child.
2015-09-29 17:06:36 -07:00
Hixie
f103d397d6 Make hit testing work in horizontal scrolling list
Previously, hitTestChildren in RenderBlockViewport just didn't support
horizontal scrolling, due to an oversight.
2015-09-29 16:30:18 -07:00
Hans Muller
a3ecdc308a Merge pull request #1400 from HansMuller/land_snap_scrolling_unit_test
Land snap_scrolling_test.dart
2015-09-29 16:00:33 -07:00
Andrew Wilson
6bd9229df9 Fix stop mimic assert bug. 2015-09-29 15:28:54 -07:00
Hans Muller
9b6590890a Land snap_scrolling_test.dart 2015-09-29 15:28:42 -07:00
Ian Hickson
2ed1b60808 Merge pull request #1371 from Hixie/fab-snack
Make the FAB move up when a Snack Bar slides in.
2015-09-29 15:23:49 -07:00
Hans Muller
a656d57d0f Merge pull request #1398 from HansMuller/fix_analayzer_warning
Fix _scrollOffsetIsInBounds analayzer warning
2015-09-29 14:41:48 -07:00
Hans Muller
02152f65fb Fix _scrollOffsetIsInBounds analayzer warning 2015-09-29 14:21:57 -07:00
Hans Muller
42f48b0f0e Fix _scrollOffsetIsInBounds analayzer warning 2015-09-29 14:17:23 -07:00
Jason Simmons
571c7dd9ff Fix a couple of analyzer warnings
* Unused import in editable_text.dart
* Type mismatch in append_child_test.dart
2015-09-29 14:04:47 -07:00
Jason Simmons
02c2e79b64 Merge pull request #1361 from jason-simmons/edit_text_scrollable_fn3
Allow the Input/EditableText widget to scroll horizontally
2015-09-29 13:20:58 -07:00
Collin Jackson
1d66184285 Merge pull request #1393 from collinjackson/back_button
pressing back button should close app if there is no previous route
2015-09-29 12:32:04 -07:00
Collin Jackson
c569758a9a pressing back button should close app if there is no previous route 2015-09-29 12:28:28 -07:00
Hans Muller
e24b4e33e3 -straggler- Rename Scrollbehavior release() to createFlingScrollSimulation() 2015-09-29 12:14:19 -07:00
Hans Muller
c3510b7d94 Rename Scrollbehavior release() to createFlingScrollSimulation() 2015-09-29 11:45:18 -07:00
Hans Muller
7385641f6d SnapOffsets for fling Scrolling
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.
2015-09-29 11:09:59 -07:00
Jason Simmons
a6f41c8a10 Allow the Input/EditableText widget to scroll horizontally
EditableText is now rendered using a custom RenderObject
(RenderEditableParagraph).  RenderEditableParagraph draws the cursor,
handles scroll offsets, and provides feedback about the size of the text for
use by the scroll behavior.
2015-09-29 10:40:37 -07:00
Hixie
4620b63226 fn3: toString() and toStringDeep() debugging aids 2015-09-28 17:09:26 -07:00
Devon Carew
ebd7fa3e36 Merge pull request #1375 from devoncarew/customize_dartdoc
customize the generated dartdoc to look like flutter.io
2015-09-28 12:01:54 -07:00
Hixie
5487b95472 Require giving a GlobalKey to UniqueComponent
Having UniqueComponent automatically generate its own key is a trap. If
anyone ever creates a UniqueComponent in a build function (rather than
ahead of time) and forgets to pass a key, then that entire subtree is
going to be rebuilt, including layout, every time it's updated. Since
there's basically no way for us to catch this, we should at least force
the author to see the explicit "new GlobalKey()" call in their code.
2015-09-28 11:53:03 -07:00
Hixie
066768f096 Make the checkbox in the stocks popup menu work.
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.
2015-09-28 11:15:05 -07:00
Hixie
56d4033423 Make the FAB move up when a Snack Bar slides in.
This changes how SnackBar works so you can use it anywhere, not just on
the bottom edge of the screen (it used to rely on overflowing its bounds
and having negative offsets... I'm not really sure how hit testing
worked on it before!).

To do this I introduced a new RenderBox, RenderOverflowBox, that lets
you set your child's size independent of your own. I needed this so that
the snack bar could use a SquashTransition to change its size, while not
affecting the layout of its child. This is exposed as OverflowBox in
fn3. I'm not sure if it's the best API. It doesn't let you position the
child (which is an issue if the size you give is smaller), it doesn't
let you give a loose constraint (which maybe you might want?). But it
handles this use case, so for now it's probably ok.

Making the FAB get repositioned out of the way of the Snack Bar is now
done in the Scaffold, which is in charge of positioning both of those
and is the place that knows that both exist.
2015-09-28 10:19:22 -07:00
Adam Barth
64dfb8496c Actually notify GlobalKey listeners in fn3
This patch makes a number of changes:

1) buildDirtyComponents now prevents all calls to setState, not just those
   higher in the tree. This change is necessary for consistency with
   MixedViewport and HomogeneousViewport because those widgets already build
   subwidgets with that restriction. If the "normal" build didn't enforce that
   rule, then some widgets would break when put inside a mixed or homogeneous
   viewport.

2) We now notify global key listeners in a microtask after beginFrame. That
   means setState is legal in these callbacks and that we'll produce another
   frame if someone calls setState in such a callback.
2015-09-27 17:22:48 -07:00
Devon Carew
e7f726c240 customize the generated dartdoc like flutter.io 2015-09-26 23:19:25 -07:00
Adam Barth
f9b5b145f9 Address review comments from @hixie 2015-09-26 20:18:16 -07:00
Adam Barth
6ea83f11c8 Merge pull request #1367 from abarth/update_navigation_example
Update navigation example
2015-09-26 18:39:33 -07:00
Adam Barth
fb58141dc5 Port hello_world to fn3 2015-09-26 13:18:20 -07:00
Adam Barth
bb8e82d053 Port address_book to fn3 2015-09-26 13:16:33 -07:00
Adam Barth
1424f351d9 Update navigation example after Navigator changes
Now this example uses the App widget to drive the adventure game.
2015-09-26 13:07:46 -07:00