Index: sky/sky_home.dart |
diff --git a/sky/sky_home.dart b/sky/sky_home.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7e4224b3b993f2510fb7571a7fea4031cc746983 |
--- /dev/null |
+++ b/sky/sky_home.dart |
@@ -0,0 +1,56 @@ |
+import 'dart:sky'; |
+import 'package:sky/framework/fn.dart'; |
+import 'package:sky/framework/components/button.dart'; |
+import 'package:sky/framework/components/scaffold.dart'; |
+import 'package:sky/framework/components/tool_bar.dart'; |
+import 'package:sky/framework/theme/colors.dart'; |
+import 'package:sky/framework/theme/typography.dart' as typography; |
+ |
+class SkyLink extends Component { |
+ String text; |
+ String href; |
+ |
+ SkyLink(String text, this.href) : this.text = text, super(key: text); |
+ |
+ UINode build() { |
+ return new EventListenerNode( |
+ new Button(key: text, content: new Text(text), level: 1), |
+ onPointerUp: (_) => window.location.href = href |
+ ); |
+ } |
+} |
+ |
+class SkyHome extends App { |
+ static final Style _actionBarStyle = new Style(''' |
+ background-color: ${Green[500]};'''); |
+ |
+ static final Style _titleStyle = new Style(''' |
+ ${typography.white.title};'''); |
+ |
+ UINode build() { |
+ List<UINode> children = [ |
+ new SkyLink('Stocks2 App', '/examples/stocks2/lib/stock_app.dart'), |
+ new SkyLink('Interactive Flex', '/examples/raw/interactive_flex.dart'), |
+ new SkyLink('Ink Well', '/examples/raw/ink_well.dart'), |
+ new SkyLink('Box2D Game', '/examples/game/main.dart'), |
+ new SkyLink('Sector Layout', '/examples/raw/sector_layout.dart'), |
+ |
+ // TODO(eseidel): We could use to separate these groups? |
+ new SkyLink('Stocks App (Old)', '/examples/stocks/main.sky'), |
+ new SkyLink('Touch Demo (Old)', '/examples/raw/touch-demo.sky'), |
+ new SkyLink('Spinning Square (Old)', '/examples/raw/spinning-square.sky'), |
+ |
+ new SkyLink('Licences (Old)', '/LICENSES.sky'), |
+ ]; |
+ |
+ return new Scaffold( |
+ // FIXME: ActionBar should have a better default style than transparent. |
+ header: new StyleNode( |
+ // FIXME: left should be optional, but currently crashes when null. |
+ new ToolBar(left: new Text(''), |
+ center: new Container(children: [new Text('Sky Demos')], style: _titleStyle)), |
+ _actionBarStyle), |
+ content: new Container(children: children) |
+ ); |
+ } |
+} |