| Index: sky/sdk/lib/widgets/dialog.dart
|
| diff --git a/sky/sdk/lib/widgets/dialog.dart b/sky/sdk/lib/widgets/dialog.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..36a171aeb222a81421d997c060e414daaca3e462
|
| --- /dev/null
|
| +++ b/sky/sdk/lib/widgets/dialog.dart
|
| @@ -0,0 +1,53 @@
|
| +// 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 'basic.dart';
|
| +import 'material.dart';
|
| +
|
| +class Dialog extends Component {
|
| + Dialog({
|
| + String key,
|
| + this.title,
|
| + this.content,
|
| + this.actions,
|
| + this.onDismiss
|
| + }) : super(key: key);
|
| +
|
| + final Widget title;
|
| + final Widget content;
|
| + final Widget actions;
|
| + final Function onDismiss;
|
| +
|
| + Widget build() {
|
| + Container mask = new Container(
|
| + decoration: const BoxDecoration(
|
| + backgroundColor: const Color(0x7F000000)));
|
| +
|
| + List<Widget> children = new List<Widget>();
|
| +
|
| + if (title != null)
|
| + children.add(title);
|
| +
|
| + if (content != null)
|
| + children.add(content);
|
| +
|
| + if (actions != null)
|
| + children.add(content);
|
| +
|
| + return new Stack([
|
| + new EventListenerNode(mask, onGestureTap: (_) => onDismiss()),
|
| + new Center(
|
| + child: new ConstrainedBox(
|
| + constraints: new BoxConstraints(minWidth: 280.0),
|
| + child: new Material(
|
| + level: 4,
|
| + child: new ShrinkWrapWidth(
|
| + child: new Block(children)
|
| + )
|
| + )
|
| + )
|
| + )
|
| + ]);
|
| + }
|
| +}
|
|
|