| Index: sky/examples/rendering/baseline.dart
|
| diff --git a/sky/examples/rendering/baseline.dart b/sky/examples/rendering/baseline.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2c52239597d987870f5f552bae8128530659c818
|
| --- /dev/null
|
| +++ b/sky/examples/rendering/baseline.dart
|
| @@ -0,0 +1,78 @@
|
| +// 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' as sky;
|
| +
|
| +import 'package:sky/painting/text_style.dart';
|
| +import 'package:sky/rendering/block.dart';
|
| +import 'package:sky/rendering/box.dart';
|
| +import 'package:sky/rendering/object.dart';
|
| +import 'package:sky/rendering/paragraph.dart';
|
| +import 'package:sky/rendering/sky_binding.dart';
|
| +
|
| +RenderBox getBox(double lh) {
|
| + RenderParagraph paragraph = new RenderParagraph(
|
| + new InlineStyle(
|
| + new TextStyle(),
|
| + [
|
| + new InlineText('test'),
|
| + new InlineStyle(
|
| + new TextStyle(
|
| + color: const Color(0xFF0000A0),
|
| + fontFamily: 'serif',
|
| + fontSize: 50.0,
|
| + height: lh
|
| + ),
|
| + [new InlineText('مرحبا Hello')]
|
| + )
|
| + ]
|
| + )
|
| + );
|
| + return new RenderPadding(
|
| + padding: new EdgeDims.all(10.0),
|
| + child: new RenderConstrainedBox(
|
| + additionalConstraints: new BoxConstraints.tightFor(height: 200.0),
|
| + child: new RenderDecoratedBox(
|
| + decoration: new BoxDecoration(
|
| + backgroundColor: const Color(0xFFFFFFFF)
|
| + ),
|
| + child: new RenderPadding(
|
| + padding: new EdgeDims.all(10.0),
|
| + child: new RenderCustomPaint(
|
| + child: paragraph,
|
| + callback: (canvas, size) {
|
| + double baseline = paragraph.getDistanceToBaseline(TextBaseline.alphabetic);
|
| + double w = paragraph.getMaxIntrinsicWidth(new BoxConstraints.loose(size));
|
| + double h = paragraph.getMaxIntrinsicHeight(new BoxConstraints.loose(size));
|
| + Path path = new Path();
|
| + path.moveTo(0.0, 0.0);
|
| + path.lineTo(w, 0.0);
|
| + path.moveTo(0.0, baseline);
|
| + path.lineTo(w, baseline);
|
| + path.moveTo(0.0, h);
|
| + path.lineTo(w, h);
|
| + Paint paint = new Paint();
|
| + paint.color = const Color(0xFFFF9000);
|
| + paint.setStyle(sky.PaintingStyle.stroke);
|
| + paint.strokeWidth = 3.0;
|
| + canvas.drawPath(path, paint);
|
| + }
|
| + )
|
| + )
|
| + )
|
| + )
|
| + );
|
| +}
|
| +
|
| +void main() {
|
| + RenderBox root = new RenderBlock(children: [
|
| + new RenderConstrainedBox(
|
| + additionalConstraints: new BoxConstraints.tightFor(height: 50.0)
|
| + ),
|
| + getBox(1.0),
|
| + getBox(null),
|
| + ]);
|
| + var b = new SkyBinding(root: root);
|
| + // b.onFrame = b.debugDumpRenderTree;
|
| +}
|
|
|