126 Commits

Author SHA1 Message Date
James Robinson
267404d456 Merge pull request #436 from jamesr/event_disposition
Teach event system about disposition and make 'consumed' disposition …
2015-08-03 17:54:55 -07:00
James Robinson
53163f8b99 Teach event system about disposition and make 'consumed' disposition terminal
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.
2015-08-03 17:31:30 -07:00
Viktor Lidholt
198b62425d Refactors the sprite matrix handling to do most calculations in Dart, minimizes the number of calls down to Skia 2015-08-03 17:31:13 -07:00
Viktor Lidholt
d2115a9168 Merge pull request #437 from vlidholt/master
Refactors matrix handling in sprites
2015-08-03 16:10:20 -07:00
Viktor Lidholt
ed81aa6bd4 Refactors matrix handling in sprites 2015-08-03 16:04:27 -07:00
Adam Barth
e7bd46b9e9 Add a widgets.dart uber library
Now you can import 'package:sky/widgets.dart' to get all the widgets.
2015-08-03 15:09:49 -07:00
Adam Barth
14c0b18745 Support borders with borderRadius
Currently we support only borders with uniform color and width.
2015-07-31 16:03:09 -07:00
Viktor Lidholt
c9284dff77 Merge pull request #402 from vlidholt/master
Fixes anchor points for particles in particle systems
2015-07-30 16:10:50 -07:00
Viktor Lidholt
f39dcbb4cd Fixes anchor points for particles in particle systems 2015-07-30 16:04:57 -07:00
Chinmay Garde
1868222770 Allow loading SkyX files on Mac desktop 2015-07-30 15:07:35 -07:00
James Robinson
5ba11ed66e Merge pull request #376 from jamesr/render_switch
Make Switch a standalone class with a custom RenderObject
2015-07-30 15:00:13 -07:00
James Robinson
445f4ee8cd Make Switch a standalone class with a custom RenderObject
This changes Switch from being a subclass of the Toggleable widget to
being a standalone Component with a custom RenderObject. This is to
enable adding Switch-specific radial reaction animations in a
subsequent patch. The CustomPaint logic that Toggleable was using does
not provide a nice way for a class and its subclass to both participate
in deciding to repaint.
2015-07-30 14:53:28 -07:00
Adam Barth
1387bd7533 Merge pull request #394 from abarth/merge_scrollable
Combine all the scrollable classes into scrollable.dart
2015-07-30 14:51:25 -07:00
Adam Barth
a740dbd734 Combine all the scrollable classes into scrollable.dart
We ended up with a bunch of different scrollable widgets and it was confusing.
This CL moves them all into one library to make them easier to find.
2015-07-30 14:44:14 -07:00
Eric Seidel
6beeede1ca Merge pull request #390 from abarth/fix_analyzer
Fix Dart analyzer warnings
2015-07-30 14:28:57 -07:00
Adam Barth
ed4afafaa3 Fix Dart analyzer warnings 2015-07-30 14:26:53 -07:00
John McCutchan
3e7eeb4760 Fix imports 2015-07-30 14:19:10 -07:00
Eric Seidel
7a231905f1 Bump APK version in prep for release
@abarth
2015-07-30 12:41:27 -07:00
Chinmay Garde
6b1c12d190 Specify a default launch screen for iOS Asteroids 2015-07-29 15:05:00 -07:00
Viktor Lidholt
a17662e6f6 Adds delay between game over and return to main screen in demo game 2015-07-29 13:54:30 -07:00
Viktor Lidholt
6aa8e4bb3f Refactors setting of last score in demo game to use callback 2015-07-29 13:33:17 -07:00
Viktor Lidholt
430c08f3e6 Adds display of last score to demo game 2015-07-29 13:33:17 -07:00
Chinmay Garde
f99fd192df Add launcher icons and update display name for Asteroids on iOS 2015-07-29 13:11:48 -07:00
Viktor Lidholt
4b3b5eb4f4 Fixes analyzer warnings in SpriteBox 2015-07-29 12:31:02 -07:00
Viktor Lidholt
122add4344 Merge pull request #346 from vlidholt/master
Adds star field to game start screen
2015-07-29 07:34:53 -07:00
Viktor Lidholt
de105aa013 Adds star field to game start screen 2015-07-28 17:34:39 -07:00
Viktor Lidholt
6dc4bc32ff Merge pull request #345 from vlidholt/master
Fixes analyzer warnings in sprites
2015-07-28 17:34:02 -07:00
Viktor Lidholt
fbb645bb92 Fixes compilation error in demo game and adds auto scrolling star field 2015-07-28 17:21:06 -07:00
Viktor Lidholt
8b4d02018e Fixes compilation errors in sprites 2015-07-28 17:19:56 -07:00
Adam Barth
947d505cba Merge pull request #343 from abarth/fix_analyzer
Fix analyzer warnings
2015-07-28 17:06:11 -07:00
Adam Barth
b9a820f2b7 Fix analyzer warnings 2015-07-28 17:05:30 -07:00
Hans Muller
7af3a32eed Animated selected tab indicator 2015-07-28 17:01:15 -07:00
Matt Perry
3b4093e14e Merge remote-tracking branch 'upstream/master' into performance 2015-07-28 17:23:42 -04:00
Matt Perry
09dc392945 Add an AnimationStatus to AnimationPerformance, and use that in Drawer,
SnackBar, and PopupMenu instead of custom statuses.
2015-07-28 17:23:27 -04:00
Chinmay Garde
2ed083d265 Move the game Info.plist to the packages directory 2015-07-28 13:32:53 -07:00
Chinmay Garde
cada9213c0 Load SkyX files on iOS where available 2015-07-28 13:27:46 -07:00
Viktor Lidholt
01ac0095e8 Updates startled in game demo to use drawAtlas 2015-07-28 12:49:36 -07:00
Viktor Lidholt
b71d0dfbaf Optimizes sprite performance by minimizing the number of calls to action controllers 2015-07-28 10:16:16 -07:00
Viktor Lidholt
bc49645960 Optimizes sprite performance by reusing Paint objects 2015-07-28 10:16:15 -07:00
Viktor Lidholt
0041182dc8 Optimizes sprites by replacing save/restore by caching the total matrix 2015-07-28 10:16:14 -07:00
Adam Barth
54803998a8 Move sky package into sky/packages/sky
This patch makes the sky package match the structure we've adopted for the
other Dart packages we produce from this repo.
2015-07-28 08:42:57 -07:00
Viktor Lidholt
09cfb05908 Merge pull request #300 from vlidholt/master
Optimizations for Particle Systems
2015-07-27 15:42:50 -07:00
Viktor Lidholt
59b0e328e7 Refactors randomizations of color sequences and optimizes particle systems (uses single Paint instance, doesn't compute accelerations unless used, reduces number of created objects, faster color calculations)
Fixes indentation
Optimizes lookup in fast version of atan2 (toInt is faster than floor)
Removes frame rate printout and adds assert
2015-07-27 15:41:08 -07:00
Hans Muller
65caad4703 Enable fling scrolling in TabBar 2015-07-27 11:13:37 -07:00
Hixie
60177a71ab 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?).
2015-07-24 18:18:04 -07:00
Hixie
df7fdb5b12 pushDialog(navigator, (navigator) => new Dialog(...)).then((result) => process(result)); 2015-07-24 17:40:41 -07:00
Collin Jackson
82f5f14b98 Move dialog into its own class 2015-07-24 15:16:40 -07:00
Ian Hickson
051655fa6d Merge pull request #278 from Hixie/nav-dialogs
Use the navigator to stack dialogs.
2015-07-24 15:02:20 -07:00
Hixie
db63850e42 Fix test breakage (stocks test imports stocks app differently than a recent checkin expected). 2015-07-24 14:54:56 -07:00
Hixie
ac6342ab8a Use the navigator to stack dialogs.
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.
2015-07-24 14:33:09 -07:00