Index: sky/sdk/lib/framework/widgets/raised_button.dart |
diff --git a/sky/sdk/lib/framework/widgets/raised_button.dart b/sky/sdk/lib/framework/widgets/raised_button.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2373e74b841557102201273f1544199385fe420d |
--- /dev/null |
+++ b/sky/sdk/lib/framework/widgets/raised_button.dart |
@@ -0,0 +1,55 @@ |
+// 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 '../theme2/edges.dart'; |
+import '../theme2/colors.dart'; |
+import '../rendering/flex.dart'; |
+import 'button_base.dart'; |
+import 'ink_well.dart'; |
+import 'material.dart'; |
+import 'wrappers.dart'; |
+ |
+enum RaisedButtonTheme { light, dark } |
+ |
+class RaisedButton extends ButtonBase { |
+ |
+ RaisedButton({ Object key, this.child, this.onPressed, this.theme: RaisedButtonTheme.light }) : super(key: key); |
+ |
+ UINode child; |
+ int level; |
+ Function onPressed; |
+ RaisedButtonTheme theme; |
+ |
+ void syncFields(RaisedButton source) { |
+ child = source.child; |
+ level = source.level; |
+ onPressed = source.onPressed; |
+ super.syncFields(source); |
+ } |
+ |
+ UINode buildContent() { |
+ return new EventListenerNode( |
+ new Container( |
+ height: 36.0, |
+ constraints: new BoxConstraints(minWidth: 88.0), |
+ margin: new EdgeDims.all(4.0), |
+ child: new Material( |
+ edge: MaterialEdge.card, |
+ child: new InkWell( |
+ child: new Container( |
+ padding: new EdgeDims.symmetric(horizontal: 8.0), |
+ child: new Center(child: child) |
+ ) |
+ ), |
+ level: highlight ? 2 : 1, |
+ color: theme == RaisedButtonTheme.light |
+ ? (highlight ? Grey[350] : Grey[300]) |
+ : (highlight ? Blue[700] : Blue[600]) |
+ ) |
+ ), |
+ onGestureTap: (_) { if (onPressed != null) onPressed(); } |
+ ); |
+ } |
+ |
+} |