Gallery Demos: button, dialog, snack bar
Added button, dialog, and snack bar gallery demos.
Split gallery main.dart into files in the lib/gallery subdirectory.
Enable TabBarSelectionState to deal with the PageStorage saved selected value no longer equalling any value.
Changed the color of Dialog text to match the theme's caption color.
Also: uppercased tab labels per #1617
The "leaf merge" feature was getting confused when we reset the
SemanticsNode. We now separately track whether the node itself is marked
as being merged vs whether we inherited that state, and we don't reset
the inherited state until you're reattached or reserialised. In the
latter case, we do a "just in time" clearing of the flag just like we
previously did a "just in time" setting of the flag, except now the flag
we're setting or clearing is the inherited flag not the actual flag.
There are no clients anymore. We added it for the Drawer a while ago,
which is a use case that's now better covered by AnimatedModalBarrier,
complete with semantics.
* Use actual exceptions rather than assertions containing code
containing strings when trying to give messages to authors.
* Introduce RenderingError which is an AssertionError that takes a
string argument, to support the above.
* Provide a BoxDimensions.hasBoundedWidth/hasBoundedHeight API.
* Document BoxDimensions.isNormalized.
* Provide more useful information when we assert isNormalized and find
that it is false.
* When finding the size is infinite, crawl the tree to figure out which
render box is likely responsible for the infinite constraints.
* Provide more information when size doesn't match the constraints.
* Provide more information when intrinsic dimension methods violate the
constraints.
* Only spam a huge amount of information for the first exception from
the rendering library. I've noticed a lot of people looking at the
last exception printed rather than the first and that's very
misleading -- after the rendering library hits an exception, all bets
are off regarding what'll happen in the future. All kinds of asserts
might fire.
* Improve docs around the debug methods and flags for the above.
* Make Block default to have no children. Previously, giving no children
crashed with a confusing message about a null deref in an assert.
This patch sketches out the basic widgets for creating Mozart child
views. We're still missing some of the machinery, so we can't quite
create child views yet, but once we supply the ViewHost and teach the
compositor how to actually display the child scenes, we'll have
something that works.
We were getting confused about our layer tree offsets, which caused us
to set an incorrect cull rect for the recording inside a viewport.
This patch does away with layer tree offsets almost entirely. We now use
them only at repaint boundaries, which is where we want the layer tree
to be mutable.
Fixes#1460