2592 Commits

Author SHA1 Message Date
Hans Muller
d2d9ae134d The IgnorePointer class enables one to cut a widget subtree off from pointer events. This is useful when a sibling should not shield pointer events from overlapping siblings below it.
Added a ScrollListener listener to Scrollable. The ScrollListener runs each time the Scrollable's scrollOffset changes. This can be used to keep overlay widgets in sync with a Scrollable below them.

Removed the Scrollable ScrollClient API. It was no longer used and was clumsy to use as a ScrollListener.

Added global function findScrollableAncestor() to scrollable.dart.

Added examples/widgets/overlay_geometry.dart. The app's Scaffold is contained by a Stack. The Stack is used to display green overlay "Markers" at the corners of the most recently selected list item and where the corresponding tap occurred. The app uses widget.localToGlobal() to compute the global overlay positions of the markers. The ScrollListener is used to keep the markers' positions up to date.
2015-08-11 08:29:30 -07:00
Adam Barth
9f228349e9 Use ImageResource instead of Future<sky.Image>
Using ImageResource solves two problems:

1) Listeners can be notified synchronously when the sky.Image is already
   available. This change removes flash of 0x0 layout when moving an
   already-cached image around in the render tree.

2) In the future, when we support animated images, we can notify listeners
   multiple times whenever a new image is available.
2015-08-10 20:43:32 -07:00
Adam Barth
c59f418fd6 Merge pull request #530 from abarth/move_scale
Simplify SkPicture
2015-08-10 15:45:00 -07:00
Adam Barth
e3d9ea67da Simplify SkPicture
This patch simplifies the SkPicture we generate for Skia. Instead of drawing
everything into a nested SkPicture, we now draw everything into the top-level
picture, which requires us to apply the device scale factor in Dart.
2015-08-10 15:12:13 -07:00
Eric Seidel
01255a6417 Make it possible to save/load fitness measurements
This required me wrapping the new Activity APIs
as well as adding the missing pubspec.yaml

@abarth
2015-08-10 14:29:22 -07:00
mpcomplete
03403d082a Merge pull request #520 from mpcomplete/tabs.indicator
Fix tab indicator animation so it doesn't snap to the previous tab.
2015-08-10 16:57:03 -04:00
Adam Barth
dd51bd5326 Add the ability to color filter background images 2015-08-10 13:30:52 -07:00
Matt Perry
cf71fecf9d Fix tab indicator animation so it doesn't snap to the previous tab.
If you tap multiple tabs in a row, the tab animation used to snap to the
last selected tab when starting a new animation. Fix that.

Also use the BuilderTransition so we don't have to rebuild the tab bar
every frame.
2015-08-10 16:22:57 -04:00
Adam Barth
3e85649cfd Merge pull request #519 from abarth/optimize_clips
Optimize circular clips slightly
2015-08-10 12:10:44 -07:00
Adam Barth
ec0bccfb5d Optimize circular clips slightly
This patch avoids creating weak references on every paint call by caching the
Path object between paints.
2015-08-10 11:18:44 -07:00
Matt Perry
de7d8efc47 Get rid of the Direction parameter for animation Forces.
Just infer it from the sign of the velocity. That's what odeon does.
2015-08-10 13:24:52 -04:00
Adam Barth
2b22c12128 Merge pull request #514 from apwilson/image_assert
Fix asserts related to image drawing.
2015-08-07 18:21:05 -07:00
Adam Barth
bcd0d8fe9b Remove the flicker from MimicOverlay
There were two problems:

1) When starting the mimic, we put up a bad frame because although we set the
   `begin` value of the animation, we were building using the current `value`,
   which hadn't been updated.

2) When stoping the mimic, we'd dirty a component during didUnmount, which
   wouldn't get cleaned until the next frame. Now we're sure to clean all the
   components before leaving flushBuild.
2015-08-07 17:06:41 -07:00
Andrew Wilson
440a63a5bb Fix assert's related to image drawing. 2015-08-07 17:00:56 -07:00
Adam Barth
68565eb317 Use localToGlobal and globalToLocal in MimicOverlay
Also, make RenderStack support negative positions with clipping so that we can
expand objects that are partially offscreen.
2015-08-07 14:47:06 -07:00
Ian Fischer
7d3065679f Rename build_path to build-path. 2015-08-07 14:27:23 -07:00
Hans Muller
585f3f6297 Widget coordinate transforms: localToGlobal(), globalToLocal() 2015-08-07 14:20:57 -07:00
Ian Fischer
27f5fc4fea Merge pull request #505 from iansf/sky_tool_build_path
Specify local build paths when using sky_tool.
2015-08-07 13:58:14 -07:00
Ian Fischer
31c8370eee Add the ability to specify a path to the build
directory to support using sky_tool with local
builds.
2015-08-07 13:53:32 -07:00
Adam Barth
162b851431 Remove spurious print statement 2015-08-07 13:53:00 -07:00
Adam Barth
66ec3424c6 Add a --checked argument to sky_tool start
The --checked argument runs SkyShell in checked mode, which turns on type
checking and asserts.
2015-08-07 13:18:38 -07:00
Adam Barth
5aafa65f3e Add a MimicOverlay widget
This widget lets you mimic one of its children in an overlay. The overlay
starts out as the same size of the child and then grows to fill the overlay. In
the future, the mimic will start at the same visual position as the child.
2015-08-07 11:07:19 -07:00
Adam Barth
b5e0b7c99a Unbreak text
Previously, no text was appearing because we weren't actually converting the
Dart objects into DOM.
2015-08-07 10:37:04 -07:00
Adam Barth
fb512aa604 Merge pull request #494 from abarth/integer_scrolling
RenderViewport should use integer device pixels
2015-08-07 09:52:14 -07:00
Adam Barth
7b678ff39f Merge pull request #495 from abarth/rationalize_text
Rationalize text
2015-08-07 09:52:07 -07:00
Adam Barth
2f3af49b0a Improve error messages for StyledText
Now they give you a hint as to what went wrong. Also, in checked mode, they now
throw during construction instead of during building.

Fixes #418
2015-08-06 22:42:13 -07:00
Adam Barth
4a70cfed5f Rename various text-related classes
- Inline -> Pargraph. This class is actually a box, not an inline. It's really
   a wrapper for RenderParagraph, so Paragraph is the normal name.

 - InlineBase -> RenderInline. The name we used in C++ for the base class of
   all inlines was RenderInline, which removes the ugly "Base" suffix.

 - InlineText -> RenderText. Aligns this name with C++.

 - InlineStyle -> RenderStyled. Matches the foregoing pattern.
2015-08-06 22:26:02 -07:00
Adam Barth
888bdd7a87 Update README.md 2015-08-06 22:25:00 -07:00
Adam Barth
75da2a9f98 RenderViewport should use integer device pixels
When painting a scroll offset, RenderViewport should use integer device pixels
to prevent "shimmering" effects on images.

Fixes #486
2015-08-06 22:09:51 -07:00
Adam Barth
89268a4a44 Update README.md 2015-08-06 21:55:25 -07:00
Eric Seidel
a0c9ebc0b2 Teach the fitness app how to request a numeric keyboard
Unforutnately since Input won't show text if it doesn't start
with a letter, this actually makes the experiance slightly
worse, but this is definitely the right direction.

@abarth
2015-08-06 17:09:06 -07:00
Adam Barth
be75ee726d Merge pull request #485 from abarth/mimic
Add widgets for reparenting widgets
2015-08-06 16:23:58 -07:00
Adam Barth
9bed37b52c Add widgets for reparenting widgets
Wrap widgets you want to reparent in a Mimicable widget and assign the
Mimicable widget a global key. Then, given the same global key to a Mimic
widget to make it appear elsewhere in the view hierarchy.
2015-08-06 16:22:37 -07:00
Eric Seidel
93cfdf2553 Merge pull request #489 from eseidelGoogle/roll_mojo
Roll mojo to 35de44e361
2015-08-06 16:22:15 -07:00
Eric Seidel
e913580832 Fix the build after the mojo roll
@abarth
2015-08-06 16:18:16 -07:00
Matt Perry
211426601d Adjust the SpringForce tolerance, used by Drawer and Dismissable.
They settle much faster after you fling them now.
2015-08-06 15:40:15 -04:00
Matt Perry
a7b9656484 Change several onStatusChanged callbacks to onDismissed.
We only use them for the transition to dismissed.
2015-08-06 14:15:03 -04:00
mpcomplete
2051703c54 Merge pull request #463 from mpcomplete/popup.menu
Push PopupMenu's animation code into its build function and use trans…
2015-08-06 13:43:23 -04:00
Matt Perry
d89fb14628 Push PopupMenu's animation code into its build function and use transitions.
Also add intervals and curves to AnimationPerformance, which affect all
variables used by the performance.
2015-08-06 13:42:50 -04:00
Adam Barth
fd68741fb3 Add operator+ and operator- to EdgeDims
... and use them to improve the horizontal_scrolling example.
2015-08-06 09:41:22 -07:00
Adam Barth
870376dab1 Teach ScrollableBlock how to scroll horizontally
Now ScrollableBlock can combine a horizontally scrolling viewport with a
horizontal block.

Also rename ViewportScrollDirection to just ScrollDirection for less verbosity.
2015-08-05 18:10:03 -07:00
Adam Barth
6f2a3e406d Merge pull request #476 from abarth/horizontal_block
Teach Block how to layout horizontally
2015-08-05 17:36:31 -07:00
Adam Barth
f6c9ab8050 Teach Block how to layout horizontally
We'll need this for horizontally scrolling lists.
2015-08-05 17:20:13 -07:00
Adam Barth
2a4209553f Support horizontal scrolling in ScrollableViewport 2015-08-05 16:18:15 -07:00
Hans Muller
e4d9e320b0 Prevent double-dismissing of Dismissables, center card_collection under-text 2015-08-05 13:40:28 -07:00
Eric Seidel
9c4ed3f82d Merge pull request #457 from eseidelGoogle/docs
Add a few bits of documentation to package:sky
2015-08-05 13:32:44 -07:00
Ian Fischer
50e2713ef3 Add a —poke flag to the sky_tool start command so that it is possible to
restart Sky apps on Android without having to restart SkyShell.
2015-08-05 10:27:47 -07:00
Adam Barth
07afda506a Add a basic radial reaction to the switch
We still need to tune the various parameters, but this patch is a start.
2015-08-05 09:50:33 -07:00
Eric Seidel
7be732fe87 Add a few bits of documentation to package:sky
I can't really make further progress until at least:
https://github.com/dart-lang/dartdoc/issues/766
is resolved, ideally also:
https://github.com/dart-lang/dartdoc/issues/763

@abarth
2015-08-04 17:38:46 -07:00
Adam Barth
8bb1bb9e6c Merge pull request #451 from abarth/fix_hit_testing
Fix RenderViewport's hit testing
2015-08-04 16:03:49 -07:00