
Also add operator==, hashCode, toString, and some basic Color constants to Color. R=abarth@chromium.org, ianh@google.com Review URL: https://codereview.chromium.org/1162023004
66 lines
2.3 KiB
Dart
66 lines
2.3 KiB
Dart
// 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 'dart:sky';
|
|
import 'package:sky/framework/app.dart';
|
|
import 'package:sky/framework/rendering/box.dart';
|
|
import 'package:sky/framework/rendering/node.dart';
|
|
import 'package:sky/framework/rendering/flex.dart';
|
|
import 'package:sky/framework/rendering/paragraph.dart';
|
|
|
|
class RenderSolidColor extends RenderDecoratedBox {
|
|
final Size desiredSize;
|
|
final Color backgroundColor;
|
|
|
|
RenderSolidColor(Color backgroundColor, { this.desiredSize: const Size.infinite() })
|
|
: backgroundColor = backgroundColor,
|
|
super(decoration: new BoxDecoration(backgroundColor: backgroundColor));
|
|
|
|
Size getIntrinsicDimensions(BoxConstraints constraints) {
|
|
return constraints.constrain(desiredSize);
|
|
}
|
|
|
|
void performLayout() {
|
|
size = constraints.constrain(desiredSize);
|
|
}
|
|
|
|
void handlePointer(PointerEvent event) {
|
|
if (event.type == 'pointerdown')
|
|
decoration = new BoxDecoration(backgroundColor: const Color(0xFFFF0000));
|
|
else if (event.type == 'pointerup')
|
|
decoration = new BoxDecoration(backgroundColor: backgroundColor);
|
|
}
|
|
}
|
|
|
|
AppView app;
|
|
|
|
void main() {
|
|
RenderFlex flexRoot = new RenderFlex(direction: FlexDirection.Vertical);
|
|
|
|
RenderNode root = new RenderDecoratedBox(
|
|
decoration: new BoxDecoration(backgroundColor: const Color(0xFF606060)),
|
|
child: flexRoot
|
|
);
|
|
|
|
RenderNode child = new RenderSolidColor(const Color(0xFFFFFF00));
|
|
flexRoot.add(child);
|
|
child.parentData.flex = 2;
|
|
|
|
// The internet is a beautiful place. https://baconipsum.com/
|
|
String meatyString = """Bacon ipsum dolor amet ham fatback tri-tip, prosciutto
|
|
porchetta bacon kevin meatball meatloaf pig beef ribs chicken. Brisket ribeye
|
|
andouille leberkas capicola meatloaf. Chicken pig ball tip pork picanha bresaola
|
|
alcatra. Pork pork belly alcatra, flank chuck drumstick biltong doner jowl.
|
|
Pancetta meatball tongue tenderloin rump tail jowl boudin.""";
|
|
|
|
child = new RenderDecoratedBox(
|
|
decoration: new BoxDecoration(backgroundColor: const Color(0xFFFFFFFF)),
|
|
child: new RenderParagraph(text: meatyString, color: const Color(0xFF009900))
|
|
);
|
|
flexRoot.add(child);
|
|
child.parentData.flex = 1;
|
|
|
|
app = new AppView(root);
|
|
}
|