提交 d59f88b8 编写于 作者: A Adam Barth

Port sky_home to the new SkyView world

R=ianh@google.com, eseidel@chromium.org

Review URL: https://codereview.chromium.org/1178293004.
上级 17e68492
......@@ -22,7 +22,7 @@ public class SkyDemoActivity extends SkyActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String url = "https://domokit.github.io/sky_home";
String url = "https://domokit.github.io/home.dart";
Intent intent = getIntent();
if (Intent.ACTION_VIEW.equals(intent.getAction())) {
Uri skyUri = intent.getData();
......
......@@ -19,5 +19,5 @@ void allLoaded(ImageMap loader) {
// Create a new app with the sprite box that contains our game world
//app = new AppView(new GameBox(new GameWorld(loader)));
//print("hello");
app = new AppView((new GameTestsBox(new GameTests(loader), SpriteBoxTransformMode.nativePoints)));
app = new AppView(root: (new GameTestsBox(new GameTests(loader), SpriteBoxTransformMode.nativePoints)));
}
......@@ -77,5 +77,5 @@ void main() {
)
),
]);
app = new AppView(root);
app = new AppView(root: root);
}
......@@ -90,6 +90,6 @@ Pancetta meatball tongue tenderloin rump tail jowl boudin.""";
child: row
);
app = new AppView(root);
app = new AppView(root: root);
view.setEventCallback(handleEvent);
}
......@@ -42,5 +42,5 @@ void main() {
child: new RenderPadding(child: table, padding: new EdgeDims.symmetric(vertical: 50.0))
);
app = new AppView(root);
app = new AppView(root: root);
}
......@@ -38,5 +38,5 @@ Pancetta meatball tongue tenderloin rump tail jowl boudin.""";
flexRoot.add(child);
child.parentData.flex = 1;
app = new AppView(root);
app = new AppView(root: root);
}
......@@ -502,5 +502,5 @@ void main() {
rootCircle.add(stack);
var root = new RenderBoxToRenderSectorAdapter(innerRadius: 50.0, child: rootCircle);
app = new AppView(root);
app = new AppView(root: root);
}
......@@ -22,7 +22,7 @@ void main() {
var paddedBox = new RenderPadding(
padding: const EdgeDims.all(50.0),
child: coloredBox);
app = new AppView(new RenderDecoratedBox(
app = new AppView(root: new RenderDecoratedBox(
decoration: const BoxDecoration(
backgroundColor: const Color(0xFFFFFFFF)
),
......
......@@ -32,7 +32,7 @@ void main() {
RenderPadding root = new RenderPadding(padding: new EdgeDims.all(20.0), child: transformBox);
app = new AppView(root);
app = new AppView(root: root);
addPersistentFrameCallback(rotate);
}
......
......@@ -88,5 +88,5 @@ void main() {
// Make the paragraph not fill the whole screen so it doesn't eat events.
para.parentData..top = 40.0
..left = 20.0;
app = new AppView(stack);
app = new AppView(root: stack);
}
......@@ -23,5 +23,5 @@ void main() {
RenderFlex flex = new RenderFlex();
flex.add(spin);
app = new AppView(flex);
app = new AppView(root: flex);
}
// 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/framework/theme2/colors.dart' as colors;
import 'package:sky/framework/theme2/edges.dart';
import 'package:sky/framework/theme2/typography.dart' as typography;
import 'package:sky/framework/widgets/material.dart';
import 'package:sky/framework/widgets/raised_button.dart';
import 'package:sky/framework/widgets/scaffold.dart';
import 'package:sky/framework/widgets/tool_bar.dart';
import 'package:sky/framework/widgets/wrappers.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();
}
......@@ -23,14 +23,14 @@ class ToolBar extends Component {
final Color backgroundColor;
UINode build() {
List<UINode> children = [
left,
new FlexExpandingChild(
new Padding(
child: center,
padding: new EdgeDims.only(left: 24.0)
))
];
List<UINode> children = new List<UINode>();
if (left != null)
children.add(left);
if (center != null) {
children.add(new FlexExpandingChild(
new Padding(child: center, padding: new EdgeDims.only(left: 24.0))));
}
if (right != null)
children.addAll(right);
......
......@@ -10,7 +10,7 @@ import '../rendering/stack.dart';
import 'ui_node.dart';
export '../rendering/box.dart' show BoxConstraints, BoxDecoration, Border, BorderSide, EdgeDims;
export '../rendering/flex.dart' show FlexDirection;
export '../rendering/flex.dart' show FlexDirection, FlexJustifyContent, FlexAlignItems;
export '../rendering/object.dart' show Point, Size, Rect, Color, Paint, Path;
export 'ui_node.dart' show UINode, Component, App, EventListenerNode, ParentDataNode;
......
......@@ -53,7 +53,7 @@
Sky Load URL
-->
<key>com.google.sky.load_url</key>
<string>https://domokit.github.io/sky_home</string>
<string>https://domokit.github.io/home.dart</string>
<!--
FIXME(csg): Xcode, as part of its build process, adds the following
......
#!mojo mojo:sky_viewer
<sky>
<script>
import 'sky_home.dart';
void main() {
new SkyHome();
}
</script>
</sky>
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('Box2D Game', 'examples/game/main.dart'),
new SkyLink('Interactive Flex', 'examples/rendering/interactive_flex.dart'),
new SkyLink('Sector Layout', 'examples/rendering/sector_layout.dart'),
new SkyLink('Touch Demo', 'examples/rendering/touch_demo.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)
);
}
}
\ No newline at end of file
......@@ -26,7 +26,7 @@ SRC_ROOT = os.path.dirname(SKY_ROOT)
GDB_PORT = 8888
SKY_SERVER_PORT = 9888
OBSERVATORY_PORT = 8181
DEFAULT_URL = "sky://domokit.github.io/sky_home"
DEFAULT_URL = "sky://domokit.github.io/home.dart"
APK_NAME = 'SkyDemo.apk'
ADB_PATH = os.path.join(SRC_ROOT,
'third_party/android_tools/sdk/platform-tools/adb')
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册