134 Commits

Author SHA1 Message Date
Hixie
c3eccc8556 Remove Component.getRoot(), since we don't use it anymore.
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1174683005
2015-06-09 15:24:07 -07:00
Hixie
8198a29b67 Remove a bogus .ceilToDouble() call.
TBR=abarth

Review URL: https://codereview.chromium.org/1173783002
2015-06-09 14:12:28 -07:00
Adam Barth
a68b53ae91 Fix the Sky tests
Instead of triggering layout synchronously during AppView construction, we now
schedule the initial layout using a magic bootstrapping function.

TBR=ianh@google.com

Review URL: https://codereview.chromium.org/1172123003.
2015-06-09 14:07:17 -07:00
Adam Barth
4011ec97b8 SkyView should handle screen rotation
This CL implements a basic version of screen rotation where we just relayout at
the new size. In the future, we'll want a fancy version where we transition
between the two layouts.

R=ianh@google.com
BUG=

Review URL: https://codereview.chromium.org/1177563002.
2015-06-09 13:56:18 -07:00
Hixie
6495ef0710 Add asserts to prevent people from setting box.parentData.position or box.size except during layout.
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1176623002
2015-06-09 13:11:11 -07:00
Matt Perry
7cbe385e8f Add a shadow to the FloatingActionButton.
Also added a helper class to Sky framework for building shadow DrawLoopers.

R=abarth@chromium.org, eseidel@chromium.org, ianh@google.com

Review URL: https://codereview.chromium.org/1175683002.
2015-06-09 15:51:04 -04:00
Hixie
4c86f98a1b Rename the confusingly named "ContentNode" class to "TagNode".
Also considered "AnnotationNode", "LabelNode", "BadgeNode", but "TagNode" seemed simplest.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1169853008
2015-06-09 12:44:38 -07:00
Adam Barth
3e5993eeee Give the popup menu a 2px border radius
This matches the material design spec.

R=ianh@google.com, jackson@chromium.org

Review URL: https://codereview.chromium.org/1169873003.
2015-06-09 12:43:27 -07:00
Hixie
2fa798966e OneChildRenderObjectWrapper and Scaffold were ignoring the return value of syncChild().
This would cause them to forget what the most recent child they'd been given was, with disastrous effects later.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1173683003
2015-06-09 12:23:17 -07:00
Eric Seidel
9f337a62e6 Fix typo in fetch.dart
TBR=ianh@google.com

Review URL: https://codereview.chromium.org/1169253002.
2015-06-09 12:17:50 -07:00
Eric Seidel
8f975399e1 Move image loading out of C++ into Dart
We already know how to talk to the network_service from Dart
via fetch.dart.  Might as well use that for Image loading
as well insetad of having ImageLoader do it.

As part of this I've renamed *ImageLoader to *ImageDecoder
and moved all the image loading logic into Dart.  This required
me to teach the idl system about mojo handles so that I could
pass the resulting MojoHandle from fetch.dart up through to
ImageDecoder.

R=abarth@chromium.org, jackson@google.com, hansmuller@google.com

Review URL: https://codereview.chromium.org/1173703002.
2015-06-09 12:14:13 -07:00
Adam Barth
ff13e9ae9e Add material shadows to toolbar and drawer
Also, I've fixed the mask color on the drawer.

R=ianh@google.com

Review URL: https://codereview.chromium.org/1168203004.
2015-06-09 12:07:14 -07:00
Hans Muller
65926f65fb Added a key: parameter to ParentDataNode, ContentDataNode
The FlexExpandingChild flex parameter is now a keyword as
well, which adds a small readability benefit.

R=ianh@google.com

Review URL: https://codereview.chromium.org/1172503004.
2015-06-09 11:00:47 -07:00
Adam Barth
2368f9b985 Add boxShadow to BoxDecoration#toString
TBR=ianh@google.com

Review URL: https://codereview.chromium.org/1174623002.
2015-06-09 10:39:52 -07:00
Adam Barth
7a930b8352 Add a proper material shadow the popup menu
R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1172723002.
2015-06-09 10:31:39 -07:00
Adam Barth
f183f6a173 Position the popup menu in stocks2 correctly
This CL pulled an implementation of position: absolute in RenderStackContainer.

R=eseidel@chromium.org, ianh@google.com

Review URL: https://codereview.chromium.org/1166363002.
2015-06-09 09:22:50 -07:00
Benjamin Lerman
f054a99b83 Sky: Use the authenticated network service.
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1146813013
2015-06-09 09:46:18 +02:00
Adam Barth
e50d0e622b ShrinkWrap the Stocks menu
The popup menu in the stocks app is supposed to size its width to the max
intrinsic width of the menu. This CL teaches it how to do that.

It's a shame that we need to ceilToDouble the output of RenderParagraph. If we
don't do that, we run into floating point layout trouble and the menu triggers
a line break. The correct fix is to do layout in fixed point.

R=ianh@google.com

Review URL: https://codereview.chromium.org/1168113005
2015-06-08 16:20:11 -07:00
Eric Seidel
92fd88b73f Fix RenderParagraph to respect text color.
I don't think this is the final API we're going to use.

I suspect we'll add a TextStyle struct to hold
color and size, etc. which back-ends into CSS like
this does today.

Currently no one uses this color even though it exists.

This is one step towards fixing:
https://github.com/domokit/mojo/issues/213

R=ianh@google.com

Review URL: https://codereview.chromium.org/1162573007
2015-06-08 15:22:18 -07:00
Adam Barth
903ef07abb Split getIntrinsicDimensions into four pieces
This CL splits getIntrinsicDimensions into getMinIntrinsicWidth,
getMaxIntrinsicWidth, getMinIntrinsicHeight, and getMaxIntrinsicHeight so that
we can properly shrink-wrap the stocks app menu. This CL just contains the
refactoring. The use in stocks app will come in a later CL.

R=ianh@google.com

Review URL: https://codereview.chromium.org/1167293003
2015-06-08 14:40:34 -07:00
Hixie
c4b64d74f3 Rename Container's desiredSize argument to width and height arguments.
Also change SizedBox.

This makes the code that uses Container() and SizedBox() much more readable.

The underlying RenderSizedBox is not affected by this change.

R=abarth@chromium.org, eseidel@chromium.org

Review URL: https://codereview.chromium.org/1166203002
2015-06-08 14:36:19 -07:00
Collin Jackson
d4ef9dcb26 Sky support for flexbox justify content
R=abarth@chromium.org, abarth

Review URL: https://codereview.chromium.org/1164363002
2015-06-08 14:14:02 -07:00
Adam Barth
5a14f03f7b Add Point.origin for new Point(0.0, 0.0)
R=eseidel@chromium.org, ianh@google.com

Review URL: https://codereview.chromium.org/1166183002
2015-06-08 13:36:52 -07:00
Adam Barth
b311e286f3 Add a basic popup menu implementation to stocks2
The popup menu is displayed in the wrong location with the wrong width, but it
does draw. I've also removed the checkbox because the flex container was
causing me trouble.  I'll add it back in a later CL.

R=ianh@google.com

Review URL: https://codereview.chromium.org/1166153002
2015-06-08 12:52:15 -07:00
Hixie
5588221364 Add some commentary to node.dart to explain AbstractNode a bit better.
TBR=abarth

Review URL: https://codereview.chromium.org/1170783002
2015-06-08 12:36:55 -07:00
Adam Barth
c0d900414f Add |constraints| to Container for PopupMenuItem
This CL is the first step towards getting PopupMenuItem working in fn2. We
introduce the ability to add a minWidth to a Container by creating a
RenderConstrainedBox class to apply the new constraints.

R=ianh@google.com

Review URL: https://codereview.chromium.org/1155683011
2015-06-08 12:22:52 -07:00
Hixie
5703762fc1 Port DrawerHeader to fn2 world.
This includes making SizedBox default to infinite size, and making
Container default to containing one infinite-sized SizedBox. That way,
you can use an empty Container as a spacer in a flex box.

The rendering doesn't quite work, because of a bug in flex whereby it
doesn't shrink-wrap its contents in the cross-direction, it fills the
parent. Collin is on that.

R=jackson@google.com

Review URL: https://codereview.chromium.org/1163633003
2015-06-08 11:00:05 -07:00
Adam Barth
2384779263 Introduce sky.Sky.zero
And deploy it in a few places.

R=ianh@google.com

Review URL: https://codereview.chromium.org/1164303002
2015-06-08 10:09:03 -07:00
Hixie
878c984d39 Fix syntax error that resulted from badly converting a .forEach() to a for-in.
TBR=abarth

Review URL: https://codereview.chromium.org/1169543009
2015-06-08 10:05:08 -07:00
Hixie
76310148a0 Handle UINodes being moved around the Effen tree.
Changes:
- Remove all the old tracing logic since that was a lot of code for
  just random printf debugging and nobody seems to use it
- Convert "defunct", a permanent state transition, to "mounted", a
  state that can be entered and exitted arbitrarily
- Coallesce mount/unmount notifications so there's only one per frame
- Remove handleRemoved() since we don't use it
- Rename a local variable 'parent' to 'ancestor' to avoid shadowing
  the field
- Replace uses of forEach() with for-in

Effects:
- Reusing a node provided to a constructor in a new place in a tree
  (especially at a different depth) no longer fails (it used to fail
  because the node would be marked defunct then remounted later, at
  which point it would fail)

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1169673002
2015-06-08 09:59:25 -07:00
Collin Jackson
668e1e37ab Implement a simple checkbox in Sky’s fn2 components library
R=abarth@chromium.org, abarth

Review URL: https://codereview.chromium.org/1161813005
2015-06-05 14:51:37 -07:00
Eric Seidel
9af8d548e5 Make Text size to its content instead of always 100% width
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1156383006
2015-06-05 14:20:16 -07:00
Adam Barth
e6ad96e3e1 Don't crash when removing a radio button
We were hitting an assert in RenderCustomPaint that the callback wasn't null.

R=eseidel@chromium.org, jackson@chromium.org

Review URL: https://codereview.chromium.org/1162023010
2015-06-05 12:17:21 -07:00
Hixie
12aa568fc4 Export Point, Size, Rect, Color, Paint, Path, BoxDecoration, Border, BorderSide, EdgeDims, and FlexDirection from fn2.dart
That way most of our libraries don't have to use sky.Foo all over the place, and we can reduce the number of imports in most Dart components.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1161323004
2015-06-05 10:18:50 -07:00
Collin Jackson
18ab61e1ee Use an enum for Dart bindings for Skia Paint style
R=abarth@chromium.org, abarth

Review URL: https://codereview.chromium.org/1171543002
2015-06-05 10:12:45 -07:00
Adam Barth
247344193d Add the floating action button to stocks2
The + isn't quite centered properly, but the button is a circle in the right
place.

R=eseidel@chromium.org, ianh@google.com

Review URL: https://codereview.chromium.org/1156383004
2015-06-05 10:07:51 -07:00
Hixie
3cf7368d97 Silence a bunch of annoying bogus dartanalyzer warnings.
- several places where we use a getter knowing that it will return a
   subclass of its declared type, even asserting that it does, but
   where the analyzer is worried that the getter might start returning
   a new value unexpectedly, solved by having a temporary local
   variable shadow the getter and asserting that it doesn't change
   value
 - many many places where we do this with parentData specifically,
   solved by type-erasing parentData.
 - a place where a mixin wants to be subclassing another class, and
   uses its methods, solved by saying that the mixin is abstract but
   implements the superclass

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1160923008
2015-06-05 09:44:09 -07:00
Adam Barth
9ea7ac504c Expose _remove from fn2
Turns out Scaffold needs to hook _remove, so we need to rename it to remove to
expose it outside fn2.dart.

R=ianh@google.com

Review URL: https://codereview.chromium.org/1160013007
2015-06-05 09:03:23 -07:00
Collin Jackson
45cbbc0fae Implement radio button for Sky’s fn2
R=abarth@chromium.org, eseidel@chromium.org, abarth

Review URL: https://codereview.chromium.org/1157573012
2015-06-04 17:24:38 -07:00
Eric Seidel
a2ae29cb40 Various fixes in preparation for deploying
Fixed the mojo deploy script to no longer deploy mojo.
mojo now uses a more sophisticated CDN, etc.

Fixed old fn.dart to work again. :)  Looks like it was
victim of a mass rename.

Fixed engine.cc to be able to handle navigating from
WebView content to SkyView content.  We can't handle
the other direction yet, but we don't need to.
/sky_home is written in the .sky system but all of our
new examples are .dart (and thus SkyView).

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1165003006
2015-06-04 16:48:09 -07:00
Hixie
96aadc99b4 Rename "BorderSide.None" to "BorderSide.none", since it's a constant, and change the sky.Size.infinite() constructor to a constant.
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1158263005
2015-06-04 16:17:20 -07:00
Hixie
10cda2fe28 Include DETACHED, NEEDS-LAYOUT, and relayoutSubtreeRoot info in the debug output for the render tree
R=chinmaygarde@google.com

Review URL: https://codereview.chromium.org/1149083011
2015-06-04 15:58:43 -07:00
Adam Barth
c5c3f31a17 Make the StockList actually work in stocks2
RenderScaffold needs to attach and detach its children when asked.

R=eseidel@chromium.org, ianh@google.com

Review URL: https://codereview.chromium.org/1149893025
2015-06-04 15:50:07 -07:00
Hixie
9b0cb975cb Improve the RenderObject.toString() logic so that there's not blank lines everywhere and to generally be better.
Adds sizes, positions, transforms, improves RenderParagraph's output.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1160233004
2015-06-04 15:45:44 -07:00
Eric Seidel
ca3b643ca9 Start making input work
Does not work yet.

R=ianh@google.com

Review URL: https://codereview.chromium.org/1163973005
2015-06-04 15:18:09 -07:00
Adam Barth
bd7af16cf5 Make fetch work in the DOM-less world
R=eseidel@chromium.org, ianh@google.com

Review URL: https://codereview.chromium.org/1166953005
2015-06-04 15:00:08 -07:00
Adam Barth
b3a9abd09b Fix bogus asserts in searchForOldNode
We should be asserting that old.root is a ContainerRenderObjectMixin because
we're able to manipulate its child list.

R=ianh@google.com

Review URL: https://codereview.chromium.org/1169593002
2015-06-04 14:59:46 -07:00
Eric Seidel
54d01bc005 Attempt to write a RenderShadowedBox
The goal of this is to have a Renderer-layer abstraction
around the Sky Engine c++ apis for drawing a shadow.

R=mpcomplete@chromium.org

Review URL: https://codereview.chromium.org/1146893004
2015-06-04 14:49:24 -07:00
Hixie
67d883c506 We don't necessarily have a child, so debugDescribeChildren() needs to check for null.
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1151533006
2015-06-04 14:30:17 -07:00
Hixie
77ef219796 Fix some minor warnings from the analyzer in the framework.
R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1162623011
2015-06-04 14:11:02 -07:00