blob: da95ce43e1706aa6e7ae23e481a3eb47f57d4e16 [file] [log] [blame]
// 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 'box.dart';
import 'node.dart';
class RenderInline extends RenderNode {
String data;
RenderInline(this.data);
}
class RenderParagraph extends RenderBox {
RenderParagraph({
String text,
int color
}) : _color = color {
_layoutRoot.rootElement = _document.createElement('p');
this.text = text;
}
final sky.Document _document = new sky.Document();
final sky.LayoutRoot _layoutRoot = new sky.LayoutRoot();
String get text => (_layoutRoot.rootElement.firstChild as sky.Text).data;
void set text (String value) {
_layoutRoot.rootElement.setChild(_document.createText(value));
markNeedsLayout();
}
int _color = 0xFF000000;
int get color => _color;
void set color (int value) {
if (_color != value) {
_color = value;
markNeedsPaint();
}
}
sky.Size getIntrinsicDimensions(BoxConstraints constraints) {
assert(false);
return null;
// we don't currently support this for RenderParagraph
}
void performLayout() {
_layoutRoot.maxWidth = constraints.maxWidth;
_layoutRoot.minWidth = constraints.minWidth;
_layoutRoot.minHeight = constraints.minHeight;
_layoutRoot.maxHeight = constraints.maxHeight;
_layoutRoot.layout();
size = constraints.constrain(new sky.Size(_layoutRoot.rootElement.width, _layoutRoot.rootElement.height));
}
void paint(RenderNodeDisplayList canvas) {
// _layoutRoot.rootElement.style['color'] = 'rgba(' + ...color... + ')';
_layoutRoot.paint(canvas);
}
// we should probably expose a way to do precise (inter-glpyh) hit testing
}