mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

Similar to widgets.dart, rendering.dart exports the entire rendering layer. Also, update the examples to use rendering.dart and widgets.dart. Also clean up some exports so that the examples have more sensible imports.
77 lines
2.3 KiB
Dart
77 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' as sky;
|
|
|
|
import 'package:sky/rendering.dart';
|
|
|
|
RenderBox getBox(double lh) {
|
|
RenderParagraph paragraph = new RenderParagraph(
|
|
new StyledTextSpan(
|
|
new TextStyle(
|
|
color: const Color(0xFF0000A0)
|
|
),
|
|
[
|
|
new PlainTextSpan('test'),
|
|
new StyledTextSpan(
|
|
new TextStyle(
|
|
fontFamily: 'serif',
|
|
fontSize: 50.0,
|
|
height: lh
|
|
),
|
|
[new PlainTextSpan('مرحبا 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 RenderFlex(children: [
|
|
new RenderConstrainedBox(
|
|
additionalConstraints: new BoxConstraints.tightFor(height: 50.0)
|
|
),
|
|
getBox(1.0),
|
|
getBox(null),
|
|
],
|
|
direction: FlexDirection.vertical,
|
|
alignItems: FlexAlignItems.stretch
|
|
);
|
|
new SkyBinding(root: root);
|
|
}
|