blob: a4ce45b172f61c832440ed36c97712da065b94a6 [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';
import 'package:mojom/intents/intents.mojom.dart';
import 'package:sky/framework/shell.dart' as shell;
import 'package:sky/theme2/colors.dart' as colors;
import 'package:sky/theme2/edges.dart';
import 'package:sky/theme2/typography.dart' as typography;
import 'package:sky/widgets/material.dart';
import 'package:sky/widgets/raised_button.dart';
import 'package:sky/widgets/scaffold.dart';
import 'package:sky/widgets/tool_bar.dart';
import 'package:sky/widgets/basic.dart';
void launch(String relativeUrl) {
Uri url = Uri.base.resolve(relativeUrl);
url = url.replace(scheme: 'sky');
ActivityManagerProxy activityManager = new ActivityManagerProxy.unbound();
Intent intent = new Intent()
..action = 'android.intent.action.VIEW'
..url = url.toString();
shell.requestService(null, activityManager);
activityManager.ptr.startActivity(intent);
}
class SkyDemo extends Component {
String text;
String href;
SkyDemo(String text, this.href) : this.text = text, super(key: text);
void _handlePress() {
launch(href);
}
UINode build() {
return new RaisedButton(
child: new Text(text),
onPressed: _handlePress
);
}
}
class SkyHome extends App {
UINode build() {
List<UINode> children = [
new SkyDemo('Stocks2 App', 'examples/stocks2/lib/stock_app.dart'),
new SkyDemo('Box2D Game', 'examples/game/main.dart'),
new SkyDemo('Interactive Flex', 'examples/rendering/interactive_flex.dart'),
new SkyDemo('Sector Layout', 'examples/rendering/sector_layout.dart'),
new SkyDemo('Touch Demo', 'examples/rendering/touch_demo.dart'),
// TODO(eseidel): We could use to separate these groups?
new SkyDemo('Stocks App (Old)', 'examples/stocks/main.sky'),
new SkyDemo('Touch Demo (Old)', 'examples/raw/touch-demo.sky'),
new SkyDemo('Spinning Square (Old)', 'examples/raw/spinning-square.sky'),
new SkyDemo('Licences (Old)', 'LICENSES.sky'),
];
return new Scaffold(
toolbar: new ToolBar(
center: new Text('Sky Demos', style: typography.white.title),
backgroundColor: colors.Blue[500]),
body: new Material(
edge: MaterialEdge.canvas,
child: new Flex(
children,
direction: FlexDirection.vertical,
justifyContent: FlexJustifyContent.spaceAround
)
)
);
}
}
void main() {
new SkyHome();
}