Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(393)

Unified Diff: sky/sdk/lib/widgets/basic.dart

Issue 1194693002: Adds StyledText (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Changes per review feedback, merge Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sky/examples/widgets/styled_text.dart ('k') | sky/tests/examples/styled_text.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/sdk/lib/widgets/basic.dart
diff --git a/sky/sdk/lib/widgets/basic.dart b/sky/sdk/lib/widgets/basic.dart
index 038fec516c3f39cb998fb6221e66ed9396ac4d7b..41be7998f7dcf786dcf6ed36039c163da6e62fb5 100644
--- a/sky/sdk/lib/widgets/basic.dart
+++ b/sky/sdk/lib/widgets/basic.dart
@@ -380,6 +380,29 @@ class Inline extends LeafRenderObjectWrapper {
}
+class StyledText extends Component {
+ // elements ::= "string" | [<text-style> <elements>*]
Hixie 2015/06/18 22:32:24 I think it'd be better to have this only support T
+ // Where "string" is text to display and text-style is an instance of
+ // TextStyle. The text-style applies to all of the elements that follow.
+ StyledText({ this.elements, String key }) : super(key: key);
+
+ final dynamic elements;
+
+ InlineBase _toInline(dynamic element) {
+ if (element is String) {
+ return new InlineText(element);
+ }
+ if (element is Iterable && element.first is TextStyle) {
+ return new InlineStyle(element.first, element.skip(1).map(_toInline).toList());
+ }
+ throw new ArgumentError("invalid elements");
+ }
+
+ Widget build() {
+ return new Inline(text: _toInline(elements));
+ }
+}
+
class Text extends Component {
Text(this.data, { String key, TextStyle this.style }) : super(key: key);
final String data;
« no previous file with comments | « sky/examples/widgets/styled_text.dart ('k') | sky/tests/examples/styled_text.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698