// Copyright 2016 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 'package:flutter/material.dart'; class GalleryDrawer extends StatelessWidget { GalleryDrawer({ Key key, this.useLightTheme, this.onThemeChanged, this.timeDilation, this.onTimeDilationChanged, this.showPerformanceOverlay, this.onShowPerformanceOverlayChanged }) : super(key: key) { assert(onThemeChanged != null); assert(onTimeDilationChanged != null); } final bool useLightTheme; final ValueChanged<bool> onThemeChanged; final double timeDilation; final ValueChanged<double> onTimeDilationChanged; final bool showPerformanceOverlay; final ValueChanged<bool> onShowPerformanceOverlayChanged; @override Widget build(BuildContext context) { return new Drawer( child: new Block( children: <Widget>[ new DrawerHeader(child: new Text('Flutter Gallery')), new DrawerItem( icon: Icons.brightness_5, onPressed: () { onThemeChanged(true); }, selected: useLightTheme, child: new Row( children: <Widget>[ new Flexible(child: new Text('Light')), new Radio<bool>( value: true, groupValue: useLightTheme, onChanged: onThemeChanged ) ] ) ), new DrawerItem( icon: Icons.brightness_7, onPressed: () { onThemeChanged(false); }, selected: useLightTheme, child: new Row( children: <Widget>[ new Flexible(child: new Text('Dark')), new Radio<bool>( value: false, groupValue: useLightTheme, onChanged: onThemeChanged ) ] ) ), new Divider(), new DrawerItem( icon: Icons.hourglass_empty, selected: timeDilation != 1.0, onPressed: () { onTimeDilationChanged(timeDilation != 1.0 ? 1.0 : 20.0); }, child: new Row( children: <Widget>[ new Flexible(child: new Text('Animate Slowly')), new Checkbox( value: timeDilation != 1.0, onChanged: (bool value) { onTimeDilationChanged(value ? 20.0 : 1.0); } ) ] ) ), new DrawerItem( icon: Icons.assessment, onPressed: () { onShowPerformanceOverlayChanged(!showPerformanceOverlay); }, selected: showPerformanceOverlay, child: new Row( children: <Widget>[ new Flexible(child: new Text('Performance Overlay')), new Checkbox( value: showPerformanceOverlay, onChanged: (bool value) { onShowPerformanceOverlayChanged(!showPerformanceOverlay); } ) ] ) ), ] ) ); } }