Commit df1c158e authored by Hans Muller's avatar Hans Muller

Updated calculator demo (#4363)

parent 60e7535b
...@@ -121,6 +121,7 @@ class _CalculatorState extends State<Calculator> { ...@@ -121,6 +121,7 @@ class _CalculatorState extends State<Calculator> {
children: <Widget>[ children: <Widget>[
// Give the key-pad 3/5 of the vertical space and the display 2/5. // Give the key-pad 3/5 of the vertical space and the display 2/5.
new CalcDisplay(2, _expression.toString()), new CalcDisplay(2, _expression.toString()),
new Divider(height: 1.0),
new KeyPad(3, calcState: this) new KeyPad(3, calcState: this)
] ]
) )
...@@ -141,7 +142,7 @@ class CalcDisplay extends StatelessWidget { ...@@ -141,7 +142,7 @@ class CalcDisplay extends StatelessWidget {
child: new Center( child: new Center(
child: new Text( child: new Text(
_contents, _contents,
style: const TextStyle(color: Colors.black, fontSize: 24.0) style: const TextStyle(fontSize: 24.0)
) )
) )
); );
...@@ -156,13 +157,21 @@ class KeyPad extends StatelessWidget { ...@@ -156,13 +157,21 @@ class KeyPad extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return new Flexible( return new Theme(
flex: _flex, data: new ThemeData(
child: new Row( primarySwatch: Colors.purple,
children: <Widget>[ brightness: ThemeBrightness.dark
new MainKeyPad(calcState: calcState), ),
new OpKeyPad(calcState: calcState), child: new Flexible(
] flex: _flex,
child: new Material(
child: new Row(
children: <Widget>[
new MainKeyPad(calcState: calcState),
new OpKeyPad(calcState: calcState),
]
)
)
) )
); );
} }
...@@ -180,33 +189,29 @@ class MainKeyPad extends StatelessWidget { ...@@ -180,33 +189,29 @@ class MainKeyPad extends StatelessWidget {
// and the op keypad have sizes proportional to their number of // and the op keypad have sizes proportional to their number of
// columns. // columns.
flex: 3, flex: 3,
child: new Material( child: new Column(
elevation: 12, children: <Widget>[
color: Colors.grey[800], new KeyRow(<Widget>[
child: new Column( new NumberKey(7, calcState),
children: <Widget>[ new NumberKey(8, calcState),
new KeyRow(<Widget>[ new NumberKey(9, calcState)
new NumberKey(7, calcState), ]),
new NumberKey(8, calcState), new KeyRow(<Widget>[
new NumberKey(9, calcState) new NumberKey(4, calcState),
]), new NumberKey(5, calcState),
new KeyRow(<Widget>[ new NumberKey(6, calcState)
new NumberKey(4, calcState), ]),
new NumberKey(5, calcState), new KeyRow(<Widget>[
new NumberKey(6, calcState) new NumberKey(1, calcState),
]), new NumberKey(2, calcState),
new KeyRow(<Widget>[ new NumberKey(3, calcState)
new NumberKey(1, calcState), ]),
new NumberKey(2, calcState), new KeyRow(<Widget>[
new NumberKey(3, calcState) new CalcKey('.', calcState.handlePointTap),
]), new NumberKey(0, calcState),
new KeyRow(<Widget>[ new CalcKey('=', calcState.handleEqualsTap),
new CalcKey('.', calcState.handlePointTap), ])
new NumberKey(0, calcState), ]
new CalcKey('=', calcState.handleEqualsTap),
])
]
)
) )
); );
} }
...@@ -219,10 +224,10 @@ class OpKeyPad extends StatelessWidget { ...@@ -219,10 +224,10 @@ class OpKeyPad extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final ThemeData themeData = Theme.of(context);
return new Flexible( return new Flexible(
child: new Material( child: new Material(
elevation: 24, color: themeData.backgroundColor,
color: Colors.grey[700],
child: new Column( child: new Column(
children: <Widget>[ children: <Widget>[
new CalcKey('\u232B', calcState.handleDelTap), new CalcKey('\u232B', calcState.handleDelTap),
...@@ -260,18 +265,19 @@ class CalcKey extends StatelessWidget { ...@@ -260,18 +265,19 @@ class CalcKey extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final Orientation orientation = MediaQuery.of(context).orientation;
return new Flexible( return new Flexible(
// child: new Container( child: new InkResponse(
child: new InkResponse( onTap: this.onTap,
onTap: this.onTap, child: new Center(
child: new Center( child: new Text(
child: new Text( this.text,
this.text, style: new TextStyle(
style: const TextStyle(color: Colors.white, fontSize: 32.0) fontSize: (orientation == Orientation.portrait) ? 32.0 : 24.0
) )
) )
) )
// ) )
); );
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment