app.dart 1.73 KB
Newer Older
1 2 3 4 5
// 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 'package:flutter/material.dart';
6
import 'package:flutter/scheduler.dart' show timeDilation;
7

8
import 'item.dart';
9 10
import 'home.dart';

11 12 13 14 15
final Map<String, WidgetBuilder> _kRoutes = new Map<String, WidgetBuilder>.fromIterable(
  kAllGalleryItems,
  key: (GalleryItem item) => item.routeName,
  value: (GalleryItem item) => item.buildRoute
);
16

17
final ThemeData _kGalleryLightTheme = new ThemeData(
18
  brightness: Brightness.light,
19
  primarySwatch: Colors.lightBlue,
20 21 22
);

final ThemeData _kGalleryDarkTheme = new ThemeData(
23
  brightness: Brightness.dark,
24
  primarySwatch: Colors.lightBlue
25 26
);

27
class GalleryApp extends StatefulWidget {
28 29
  GalleryApp({ Key key }) : super(key: key);

30
  @override
31 32 33 34
  GalleryAppState createState() => new GalleryAppState();
}

class GalleryAppState extends State<GalleryApp> {
35
  bool _useLightTheme = true;
Eric Seidel's avatar
Eric Seidel committed
36
  bool _showPerformanceOverlay = false;
37

38
  @override
39 40
  Widget build(BuildContext context) {
    return new MaterialApp(
41
      title: 'Flutter Gallery',
42
      theme: _useLightTheme ? _kGalleryLightTheme : _kGalleryDarkTheme,
Eric Seidel's avatar
Eric Seidel committed
43
      showPerformanceOverlay: _showPerformanceOverlay,
44
      routes: _kRoutes,
45 46 47 48 49 50 51 52
      home: new GalleryHome(
        useLightTheme: _useLightTheme,
        onThemeChanged: (bool value) { setState(() { _useLightTheme = value; }); },
        showPerformanceOverlay: _showPerformanceOverlay,
        onShowPerformanceOverlayChanged: (bool value) { setState(() { _showPerformanceOverlay = value; }); },
        timeDilation: timeDilation,
        onTimeDilationChanged: (double value) { setState(() { timeDilation = value; }); }
      )
53 54 55
    );
  }
}