3924 Commits

Author SHA1 Message Date
Chinmay Garde
d8d07a31dd Add tests edit constraints 2015-06-25 17:28:00 -07:00
Hixie
12b21997ca Let's hide double.INFINITY a bit more, by providing cleaner APIs for the cases where we're currently trying to use it.
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1209233002.
2015-06-25 17:27:43 -07:00
Chinmay Garde
97cd09d2a1 Avoid adding implicit constraints for edit variables at required priority 2015-06-25 17:27:42 -07:00
Hixie
aef18a90ab Add asserts to catch potential misuses of the rendering framework.
New asserts:
- verify that after layout, the size fits the constraints
- verify that after layout, the size isn't infinite
- verify that you don't set the size in performLayout() if you have
  sizedByParent set
- verify that nobody reads your size during layout except you, or your
  parent if they said parentUsesSize:true

Fixes some bugs found by those asserts:
- RenderBlock, RenderStack, and RenderScaffold were not always setting
  parentUsesSize correctly
- RenderScaffold was setting its slot entries to null rather than
  removing them when the slot went away, which led to null derefs in
  certain circumstances

Also, rename a local variable in RenderStack.performLayout() because
it was shadowing a variable on the object itself, which was really
confusing when I first tried to debug this function...

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1213473003.
2015-06-25 17:08:06 -07:00
Chinmay Garde
49d14caa69 Make the midpoints test pass. Fixes incorrect Row.reverseSign 2015-06-25 17:07:15 -07:00
Chinmay Garde
20908034d5 Make constraint priority setup more expressive 2015-06-25 16:24:21 -07:00
Chinmay Garde
2f3e5aa70b Add toString() overrides to internal solver members 2015-06-25 14:30:37 -07:00
Hans Muller
ab246ebcef Version 0 of TabLabel, Tab, and TabBar components
There's is no support for animating the selected tab indicator, there isn't a TabNavigator container yet, overflow layout (tabs don't fit) isn't supported yet, etc.

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

Review URL: https://codereview.chromium.org/1205953002.
2015-06-25 14:25:33 -07:00
Viktor Lidholt
2e32c6721d Adds support for rotated textures
Adds documentation to Texture and SpriteSheet

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1212073002.
2015-06-25 13:13:33 -07:00
Chinmay Garde
9d075adabb Minor: Add tests to check for addition of multiple constraints 2015-06-25 12:20:10 -07:00
Chinmay Garde
a029c93ed1 Remove the << overload on solver. Operator precendence rules made it awkward to use anyway 2015-06-25 12:11:00 -07:00
Chinmay Garde
882a17f75b Minor: Add more tests 2015-06-25 11:45:47 -07:00
Chinmay Garde
8be3c640cc Minor: Refactor -> Rename internal private methods in the solver 2015-06-25 10:25:33 -07:00
Chinmay Garde
7dcd8115c3 Avoid exposing internal classes from the cassowary library 2015-06-24 18:18:58 -07:00
Carlos Pizano
45ccc2e812 fix minedigger win bug
Win was not being detected.

BUG=none
R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1209823002.
2015-06-24 18:14:51 -07:00
Chinmay Garde
891085b74b Allow updating external variables from the solver 2015-06-24 18:03:21 -07:00
Chinmay Garde
d4a67499e9 Implement Solver.suggestValue 2015-06-24 17:53:41 -07:00
Hixie
3df2427540 Use the baseline information exposed by C++ to pipe baseline data through RenderBox.
This also fixes the C++ side to give the right baseline information.
Previously it was giving the baseline distance for the font, but not
for the actual laid-out text.

I considered also providing a "defaultBaseline" accessor that returns
the distance for the actual dominant baseline, but it turns out right
now we never decide the baseline is ideographic. We always use the
alphabetic baseline. We should probably fix that...

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1200233002.
2015-06-24 17:01:14 -07:00
Chinmay Garde
436f272a09 Avoid using variables as equation members 2015-06-24 16:48:02 -07:00
Chinmay Garde
9ea8abd5af Allow constraint creation from multiplication and division when at least one argument is a constant expression 2015-06-24 14:52:46 -07:00
Hixie
a7f7e1e564 Add support for line-height in TextStyle.
Also, some minor cleanup in TextStyle to make it more readable.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1203253002.
2015-06-24 13:25:17 -07:00
Chinmay Garde
5137e03c9d Add support for updating edits 2015-06-24 13:23:31 -07:00
Chinmay Garde
8187c6852b Allow removal of constraints from the solver 2015-06-24 12:41:54 -07:00
Hixie
09c9d5b5ce Fix baseline example (missed merge with Ian's new graphics APIs).
TBR=iansf

Review URL: https://codereview.chromium.org/1201383005.
2015-06-24 11:33:54 -07:00
Hixie
8a465ac6d9 Expose baseline information in the Sky API.
R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1208483002.
2015-06-24 11:24:45 -07:00
Ian Fischer
82d1eb2fdb Decouple Canvas from DisplayList and map Picture and PictureRecorder more directly to their Skia counterparts.
Also changes the framework dart code to use the
refactored APIs and fixes the various examples and
tests.

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

Review URL: https://codereview.chromium.org/1190123003.
2015-06-24 10:21:45 -07:00
Chinmay Garde
9beb286180 Account for the result of optimization when adding constraints 2015-06-23 18:07:56 -07:00
Chinmay Garde
b78b35d723 Implement addition of constraints to the solver 2015-06-23 18:01:17 -07:00
Viktor Lidholt
9b1985c237 Adds basic sprite sheet support to sprites
Adds drawImageRect to Canvas bindings

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1204783003.
2015-06-23 16:38:28 -07:00
Eric Seidel
edda0bb855 Use new Widgets in mine_digger.
I'm not sure I made it look better.  But it uses Widgets
instead of rolling its own Flex, etc.

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

Review URL: https://codereview.chromium.org/1201293003.
2015-06-23 15:20:44 -07:00
Collin Jackson
efe36a6829 Add a confirmation dialog to stock app Settings page and style it by default
R=ianh@google.com, abarth, hixie

Review URL: https://codereview.chromium.org/1201273002.
2015-06-23 14:19:00 -07:00
Chinmay Garde
af67d08746 Minor: Add result types for known failure cases 2015-06-23 13:58:44 -07:00
Chinmay Garde
530700a8c1 Implement row.dart and some other minor utility methods 2015-06-23 13:22:48 -07:00
Carlos Pizano
6a858a9486 Add minedigger example
A very basic minesweeper clone. Currently only tested in linux.

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

Review URL: https://codereview.chromium.org/1196213012.
2015-06-23 11:19:35 -07:00
Eric Seidel
7044a9dc75 Fix game to depend on Sky
Also updated the version range on stocks2.

https://github.com/domokit/mojo/issues/262

R=ianh@google.com

Review URL: https://codereview.chromium.org/1195933004.
2015-06-23 09:55:45 -07:00
Hixie
4ce1eff3ca Make the checkbox in settings control the radio buttons in the drawer, to demonstrate how to link state in different places in an app.
R=jackson@google.com

Review URL: https://codereview.chromium.org/1197333002.
2015-06-23 09:54:19 -07:00
Chinmay Garde
306c795c21 Minor: Add stubs for the symbol and solver 2015-06-23 09:50:52 -07:00
Hixie
ed010499b5 Prettier arrows in the stock app.
This returns us to a more stocks1-like arrow style.
Also it uses math rather than transforms to rotate the arrow, since transforms are expensive.
It also removes the save/restore calls, which are _really_ expensive.

Also some minor style fixes.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1203443007.
2015-06-22 17:32:25 -07:00
Collin Jackson
3616adbab3 Add Material light and dark themes to Sky widgets
R=ianh@google.com, hixie

Review URL: https://codereview.chromium.org/1204523002.
2015-06-22 17:14:27 -07:00
Hixie
e352ec9fc4 Short-circuit the relayoutSubtreeRoot when the child couldn't change dimensions anyway because the parent constrained it.
The relayout subtree root concept is intended to handle the case where
a node, when it lays itself out for a second time, changes its opinion
about what dimensions it should be. In such a situation, the parent,
if it based its own opinion about what size _it_ should be on the
child's dimensions, would also need to lay itself out again. Thus,
when this scenario is possible, the child remembers the parent, and
when it would be told to relayout, we actually start the layout with
the parent.

In practice, this chains, and we end up with nodes that point to
ancestors ten or more steps up the tree such that when the inner most
child re-lays-out, the whole app ends up relaying out.

This patch tries to short-circuit this for the case where the
constraints being applied to the child are such that actually, the
child has no choice about its dimensions. In that case, the parent
can't change dimensions when the child re-lays-out.

This makes a huge difference on the stocks demo app. Without this, on
the third rendered frame, there are 72 relayoutSubtreeRoot links, the
deepest chain is 8 deep, and 9 of the chains are only 1 level deep.
With it, there are 63 relayoutSubtreeRoot links, the deepest chain is
only 4 deep, and 38 of the chains are only 1 level deep.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1196553004.
2015-06-22 16:51:25 -07:00
Chinmay Garde
e788fe538f Minor: Match style guide 2015-06-22 15:07:02 -07:00
Chinmay Garde
7eb8322315 Dry up multiplication and division of equation members 2015-06-22 15:02:31 -07:00
Chinmay Garde
5288d466ab Dry up incremental expression construction from constants, variable, terms and other expressions 2015-06-22 14:39:55 -07:00
Chinmay Garde
a8e6ea0698 Constraints can be setup directly from non-expression via operator overrides 2015-06-22 14:31:46 -07:00
Eric Seidel
14e9b5d564 Remove home.sky, update home.dart
TBR=ianh@google.com

Review URL: https://codereview.chromium.org/1204483002.
2015-06-22 13:13:27 -07:00
Chinmay Garde
2152de9a51 Minor: Add support for priority updates on constraints 2015-06-22 12:29:33 -07:00
Collin Jackson
6c38fc1b40 Add a new Theme widget to control color and text color of apps
R=abarth@chromium.org, abarth, hixie

Review URL: https://codereview.chromium.org/1194743003.
2015-06-22 12:10:30 -07:00
Chinmay Garde
f6a323620e Initial Commit 2015-06-22 10:49:09 -07:00
Viktor Lidholt
639e47bd7f Adds API documentation, improves the API names, and cleans up code.
R=ianh@google.com

Review URL: https://codereview.chromium.org/1201983004.
2015-06-22 10:13:23 -07:00
Hixie
5b594b7c7c Turn on wavy underlines. The waves aren't very pretty yet (they are too short somehow), I'll fix that in a subsequent CL.
I abstracted out the wavy underline code so that it doesn't duplicate the code for horizontal and vertical lines.

R=abarth@chromium.org

Review URL: https://codereview.chromium.org/1201503003.
2015-06-19 16:11:18 -07:00