1591 Commits

Author SHA1 Message Date
Adam Barth
0a09212fe5 Add a simple_render_tree example
This example shows how to draw a circle using subclasses of RenderNode.

R=ianh@google.com

Review URL: https://codereview.chromium.org/1144193004
2015-05-20 13:49:29 -07:00
Hixie
66dd961fa5 [Effen] Try to catch more misuse of fn by asserting that UINode nodes are only built when we're updatin the tree.
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1148253002
2015-05-20 12:47:52 -07:00
Hixie
edacf2a362 Layout API prototype, for discussion
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1093633002
2015-05-20 10:52:36 -07:00
Hixie
179d1b2969 [Effen] Now that we have RenderNode.parent again, we can have mid-tree sync() work properly again.
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1145623003
2015-05-20 09:43:49 -07:00
Hixie
5c864ec91c [Specs] Ideas for linkability in Sky apps.
TBR=abarth

Review URL: https://codereview.chromium.org/1148123002
2015-05-20 09:32:50 -07:00
Adam Barth
67109ce3e1 Plumb input events into SkyView
Clients can now register a callback that gets called whenever we have an event
for the view. We'll need to update the Event class at some point, but this is a
start.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1129333005
2015-05-19 16:50:28 -07:00
Hixie
f31e6ec087 [Specs] Remove all the obsolete specs.
TBR=abarth

Review URL: https://codereview.chromium.org/1142853006
2015-05-19 16:39:32 -07:00
Hixie
c20a7f9c28 [Effen] Rename Action Bar to Tool Bar.
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1133353008
2015-05-19 15:52:12 -07:00
Adam Barth
3acb930b0a Attempt to fix bad dependency in Sky build
Several people have run into trouble building Sky because of a missing
dependency in the build. From inspection, it looks like this might fix the
issue, but it's hard to be sure without being able to reproduce the issue
locally.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1130353013
2015-05-19 15:44:36 -07:00
Hixie
552f236bb4 More concrete Scheduler API proposal
Review URL: https://codereview.chromium.org/1139573005
2015-05-19 15:20:01 -07:00
Adam Barth
0906da7f0f Plumb display metrics into SkyView
This CL teaches SkyView the width, height, and device pixel ratio of the
display. In the future, we'll want some sort of notification system for when
these values change.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1139823010
2015-05-19 14:54:08 -07:00
Adam Barth
aec042c97d Fix build
TBR=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1138443005
2015-05-19 14:32:57 -07:00
John McCutchan
2f87b093cf Have shelldb and skydb automatically download assets for you if they don't exist.
BUG=
R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1131373005
2015-05-19 14:22:55 -07:00
Adam Barth
9f8b9bb96d Teach SkyView path to draw a circle
This CL adds a global view object that can receive a Picture and be signaled to
draw. When using SkyView, this Picture shows up on screen.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1134913003
2015-05-19 14:20:04 -07:00
Hixie
1e29959ad6 [Effen] add an assert that you don't try to re-add a defunct node
R=abarth@chromium.org, eseidel@chromium.org

Review URL: https://codereview.chromium.org/1149533002
2015-05-19 14:19:49 -07:00
Hixie
cf4733f24a [Effen] Add a "parent" pointer to Node.
Per discussion about https://codereview.chromium.org/1093633002 it
appears that we don't have a way around having a parent pointer after
all, so this exposes it.

It also renames setAsChild() to adoptChild() for better readability.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1134593007
2015-05-19 14:14:59 -07:00
John McCutchan
b8b22315ee Fix domokit.github.io site deployment script
R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1145843002
2015-05-19 14:03:13 -07:00
Adam Barth
1b45682ba9 Teach SkyView code path to print hello, world
This CL makes the SkyView codepath smart enough to print "hello, world" to the
console. The code path is off by default but can be enabled by changing one
line of code.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1131673011
2015-05-19 13:51:12 -07:00
Matt Perry
c69bcc245c Sky: Add a CustomDart attribute to the IDL compiler, and use that with Canvas
to provide a better Dart API.

When the attribute is present on an IDL interface, the generate Dart code will be a private interface that can extended by custom dart code.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1135283005
2015-05-19 13:59:05 -04:00
Adam Barth
9a4feca976 Teach SkyView how to load the main script
This CL implements SkyView::Load to start executing Sky content directly from
Dart's main(). This code isn't currently wired up to anything, so it's not yet
tested.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1130353009
2015-05-19 10:55:07 -07:00
John McCutchan
0a0975bf9e Fix skydb workflow
BUG=
R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1132723010
2015-05-19 10:44:47 -07:00
John McCutchan
afbae48f73 Suppress unnamed library analyzer spam in shelldb
Revert "Add library names to many sky libraries"

This reverts commit 1337e0a803a54ee92d6dce7f8c4a6335f7cbb9fa.

BUG=
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1142893007
2015-05-19 10:25:43 -07:00
John McCutchan
3c584b59a2 Add library names to many sky libraries
- Analyzer complains about libraries not having names. This adds names to many libraries.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1150433002
2015-05-19 10:19:11 -07:00
John McCutchan
0742438056 Fix shelldb workflow
- Add a real internals.dart entry point.
- Don't run deploy_sdk from shelldb.
- Suppress native functions error from analyzer output.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1145823002
2015-05-19 10:12:41 -07:00
Adam Barth
67b59fadb9 Make android directory for Android-specific bits of SkyShell
This CL prepares us to create an iOS version of SkyShell by moving the
Android-specific bits into an android directory.

R=chinmaygarde@google.com

Review URL: https://codereview.chromium.org/1139873004
2015-05-19 09:41:44 -07:00
Eric Seidel
cd069f2a21 Add Canvas.drawPicture
I wrote another copy of paint_element_into_displaylist
using this new technology.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1129353010
2015-05-18 15:13:15 -07:00
Eric Seidel
d0613374d0 Make it possible to Paint elements into a display list.
Currently said elements need to be in the DOM and have
already been laid out for this to work, but follow-up patches
will remove these restrictions.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1144673002
2015-05-18 14:49:59 -07:00
Adam Barth
d78476524d Sketch new SkyView interface to the engine
The SkyView interface will replace WebView as the interface to the SkyEngine.
The SkyView interface won't have a root level Document or Frame object but
instead will implement the base layers of the framework.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1135013006
2015-05-18 14:48:27 -07:00
John McCutchan
b017dfd995 Rationalize Dart mojo and sky package structure.
NOTE: This CL appears far larger than it actually is for two reasons:

1) Many files were moved around to use the Dart package directory structure.
2) Many .dart files had to have import paths updated.

- Organize mojo/public/dart so that it uses standard Dart package layout
- Organize mojo/dart/apptest so that it uses a standard Dart package layout
- Organize sky/sdk so that it uses a standard Dart package layout
- Create a mojo/testing package (used by unittests)
- Introduce the 'dart_pkg' gn rule which populates gen/Config/dart-pkg
- All internally vended Dart packages must have a corresponding dart_pkg rule
- It is now possible to use dependency_overrides: in pubspec.yaml to mix internal and external package dependencies (enables analyzer, editor, webstorm usage for internal developers).
- Package root for dart content handler ends with "packages/"
- Imports of mojo package uris no longer need the "public/dart"
- mojo/public/tools/dart_package.py is a clone of mojo/public/tools/gn/zip.py
- Sky tests no longer run 'deploy_sdk' script.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1132063007
2015-05-18 14:41:39 -07:00
Hixie
1adc12d781 [Effen] Rationalise RenderNodeWrapper and OneChildListRenderNodeWrapper.
The style syncing logic that was in OneChildListRenderNodeWrapper is now in RenderNodeWrapper.
TextFragment and Image now just inherit directly from RenderNodeWrapper.
OneChildListRenderNodeWrapper now only deals with syncing children.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1142123004
2015-05-18 14:40:57 -07:00
Hixie
183184bab7 [Effen] Move EventListenerNode up so that all the ContentNode subclasses are together in fn.dart.
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1128803007
2015-05-18 14:11:48 -07:00
Hixie
0ba562ef98 [Effen] Rename SkyNodeWrapper and SkyElementWrapper to match their current actual roles, RenderNodeWrapper and OneChildListRenderNodeWrapper.
This lays the groundwork for supporting RenderNode classes that have more complicated child setups.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1134303006
2015-05-18 13:57:41 -07:00
Adam Barth
dd74567382 public org.domokit.sky.shell.SkyMain.ensureInitialized()
It's useful to be able to call org.domokit.sky.shell.SkyMain.ensureInitialized() when implementing custom Android Activities. This commit makes ensureInitialized() public for this purpose.

Unrelated changes:
Added curly braces to pass PRESUBMIT check.
Add Lex Berezhny <lex@damoti.com> to AUTHORS file in order to be able to commit fixes (and pass PRESUBMIT check).

Patch by Lex Berezhny <lex@damoti.com>.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1135953004
2015-05-16 13:57:23 -07:00
Hixie
3ceb5dc0df [Effen] Start removing 'position'.
This creates a new RenderNode class that does positioning.
It then creates an fn Container class that uses it just to position things at 0,0 at the full extent of the container.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1128103009
2015-05-15 16:39:26 -07:00
Hixie
e97a10ed74 [Layout] Put in some guards to prevent us from reintroducing 'display' properties into the CSS.
R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1132983007
2015-05-15 15:16:25 -07:00
Hixie
9466cbbcb4 [Effen] remove the last traces of the 'display' property from the effen component library.
Previously, the fn "Text" class rendered as a single block of text.
Now, there's a "Paragraph" class that contains "TextFragment"s, and "Text" is just a component that places a single TextFragment into a single Paragraph.
This allows other components, notably the Input component, to build more complicated paragraphs of styled text, without using 'display'.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1139123007
2015-05-14 15:21:29 -07:00
Hixie
68624e8042 [Effen] fix the stock README to be better markdown.
TBR=eseidel

Review URL: https://codereview.chromium.org/1141013003
2015-05-14 14:41:17 -07:00
Hixie
8ddd37ffc2 [Effen] Add a README.txt file that describes how to test Effen using the stock app.
Also includes a link to all the know bugs that affect the stock app.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1145523003
2015-05-14 14:34:45 -07:00
Hixie
80318f6e81 [Effen] Remove 'display' from drawer_header.dart.
This moves DrawerHeader to using FlexContainer instead of Container and 'display', in the continuing quest to remove our dependency on CSS.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1139123005
2015-05-14 14:08:30 -07:00
Hixie
8b19459c9e [Effen] remove more CSS
This continues my attempt to remove our dependency on CSS.
It adds support for column-based flex to FlexContainer.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1132113007
2015-05-14 13:20:11 -07:00
Hixie
17aeeb1c51 [Effen] Make the stock app use the radio button widget so that it's being tested.
Changes:
- adds a couple of radio buttons to the drawer menu list.
- makes menu items support being tapped and reporting the tap.
- hooks up the checkbox to actually support being checked.
- changes the drawer menu items to make more sense in a stock app.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1137373004
2015-05-14 13:16:35 -07:00
Hixie
636d169c7f [Effen] remove some redundant styles
Some of the styles we have aren't really needed, so remove them to make it clearer what we weed to actually support to keep the stocks app running.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1128173007
2015-05-14 10:21:55 -07:00
Hixie
878336e8a2 [Effen] Make the drawer not be included in the build output when the drawer is not shown.
This is a prerequisite to dropping 'display:none'.
Included in this CL is making AnimatedValue able to animate more than one field.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1126333006
2015-05-14 09:44:22 -07:00
Eric Seidel
bd6319898b Bump versionCode of SkyDemo.apk to avoid downgrade warning.
Also teach both skydb and shelldb to ignore version downgrades
I did not change sky_tool since maybe the warning makes sense
there?

R=abarth@chromium.org, chinmaygarde@google.com

Review URL: https://codereview.chromium.org/1138343002
2015-05-13 17:34:09 -07:00
Matt Perry
6729917a2d Flesh out the Painting API a bit.
This exposes most methods from Skia's C canvas API to Dart. For now, SkRect and
SkMatrix are represented simply as an array of floats, which requires a
conversion at the bindings layer. More complex types like SkPath are still TODO.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1144483002
2015-05-13 17:17:26 -04:00
Eric Seidel
1eb17996fb Make it possible to custom-paint without an Element.
This adds a new abstract 'Canvas' which is similar to SkCanvas.
PaintContext implements Canvas while still having its
own commit() method to cause the paint actions to apply to
the Element for the next frame.
This adds a new PictureRecorder which also implements Canvas
and has an endRecording() method which returns a Picture
(another new interface) which can be held from Dart.

There is also now a rootPicture setter on Document which takes
a Picture and will then make the Document draw that Picture
until changed.

This piggybacks on the existing custom painting system
which adds the painting at background-and-borders paint
time so technically if you both set rootPicture as well as
construct a DOM you will draw the DOM on top of your picture. :)

R=mpcomplete@chromium.org

Review URL: https://codereview.chromium.org/1122423009
2015-05-13 13:16:47 -07:00
Colin Blundell
2772b9e4d8 Create wrapper script around mojom's generate.dart in the Sky package.
This CL does the following:
- Moves mojom's generate.dart from bin/ to lib/ to make it available for use
  by a wrapper scripts in the Sky package, thus avoiding all consumers of Sky
  needing to directly depend on mojom to be able to call
  "pub run mojom:generate".
- Adds a sky->mojom pub dependency and creates a wrapper script around mojom's
  generate.dart in the Sky package.
- Augments the Sky README to explain the usage of this script.

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

Review URL: https://codereview.chromium.org/1136503002
2015-05-13 11:48:47 +02:00
Hixie
396a04df4a [Effen] Use the checkbox widget in the stocks app.
- add a checkbox to the stock app, so that we're testing the checkbox widget
  (it's not currently wired up to anything, that can come later)
- make InkSplash use FlexContainer so that we can use flex in the popup menu items
- make effen's Text be more similar to Image and Container, so that it can be styled
- make layout.dart's RenderCSSText correctly support being styled
- also fixes a bug with the stock list where we were rendering one too few a row when scrolling
- check in the code to dump the DOM so I don't have to keep remembering how to do this

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1134163003
2015-05-12 14:39:43 -07:00
Hixie
02045e37a4 [Effen] Move 'flex' out of CSS also. (mark II)
This introduces a new kind of ContentNode similar to Style but which
instead of changing the styles that apply to the node, provides new
settings to apply to the "parentData" structure.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1122413006
2015-05-12 10:40:43 -07:00
Benjamin Lerman
42fc77f4b4 Revert "[Effen] Move 'flex' out of CSS also."
This reverts commit 1a4db2e964de8a2eba7c76c0904027150cc0c387.

This broke the bots.

TBR=github.com@spam.hixie.ch

Review URL: https://codereview.chromium.org/1137153002
2015-05-12 14:25:34 +02:00