| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'package:flutter/rendering.dart'; |
| |
| const List<BoxShadow> shadow = const <BoxShadow>[ |
| const BoxShadow(offset: const Offset(0.0, 3.0), blurRadius: 1.0, spreadRadius: -2.0, color: const Color(0x33000000)), |
| const BoxShadow(offset: const Offset(0.0, 2.0), blurRadius: 2.0, spreadRadius: 0.0, color: const Color(0x24000000)), |
| const BoxShadow(offset: const Offset(0.0, 1.0), blurRadius: 5.0, spreadRadius: 0.0, color: const Color(0x1F000000)), |
| ]; |
| |
| void main() { |
| RenderDecoratedBox box1, box2, box3; |
| new RenderingFlutterBinding(root: new RenderPadding( |
| padding: const EdgeDims.all(40.0), |
| child: new RenderViewport( |
| child: new RenderDecoratedBox( |
| decoration: const BoxDecoration( |
| backgroundColor: const Color(0xFFFFFFFF) |
| ), |
| child: new RenderBlock( |
| children: <RenderBox>[ |
| new RenderPadding( |
| padding: const EdgeDims.all(40.0), |
| child: new RenderPointerListener( |
| behavior: HitTestBehavior.opaque, |
| onPointerDown: (PointerDownEvent event) { |
| box1.decoration = const BoxDecoration( |
| gradient: const RadialGradient( |
| center: Point.origin, radius: 500.0, |
| colors: const <Color>[const Color(0x20F0D0B0), const Color(0xD0C0FFFF)] |
| ), |
| borderRadius: 20.0 |
| ); |
| RenderPadding innerBox1 = box1.child; |
| innerBox1.padding *= 1.5; |
| innerBox1.child = new RenderParagraph( |
| const StyledTextSpan( |
| const TextStyle( |
| color: const Color(0xFF000000), |
| fontSize: 20.0, |
| fontWeight: FontWeight.w900, |
| textAlign: TextAlign.center |
| ), |
| const <TextSpan>[ const PlainTextSpan('Hello World!') ] |
| ) |
| ); |
| RenderBlock block = box3.parent.parent; |
| block.remove(box3.parent); |
| RenderPadding innerBox2 = box2.child; |
| innerBox2.child = box3.parent; |
| RenderPointerListener listener = box1.parent; |
| listener.onPointerDown = null; |
| }, |
| child: box1 = new RenderDecoratedBox( |
| decoration: const BoxDecoration( |
| backgroundColor: const Color(0xFFFFFF00), |
| boxShadow: shadow |
| ), |
| child: new RenderPadding( |
| padding: const EdgeDims.all(40.0) |
| ) |
| ) |
| ) |
| ), |
| new RenderPadding( |
| padding: const EdgeDims.all(40.0), |
| child: box2 = new RenderDecoratedBox( |
| decoration: const BoxDecoration( |
| backgroundColor: const Color(0xFF00FFFF), |
| boxShadow: shadow |
| ), |
| child: new RenderPadding( |
| padding: const EdgeDims.all(40.0) |
| ) |
| ) |
| ), |
| new RenderPadding( |
| padding: const EdgeDims.all(40.0), |
| child: box3 = new RenderDecoratedBox( |
| decoration: const BoxDecoration( |
| backgroundColor: const Color(0xFF33FF33), |
| boxShadow: shadow |
| ), |
| child: new RenderPadding( |
| padding: const EdgeDims.all(40.0) |
| ) |
| ) |
| ), |
| ] |
| ) |
| ) |
| ) |
| )); |
| } |