blob: e80c5ce7279e5e49e02e8ea5c4e5ff6b07382871 [file] [log] [blame]
// 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';
import 'demo/chip_demo.dart';
import 'demo/date_picker_demo.dart';
import 'demo/drop_down_demo.dart';
import 'demo/selection_controls_demo.dart';
import 'demo/slider_demo.dart';
import 'demo/tabs_demo.dart';
import 'demo/time_picker_demo.dart';
import 'demo/widget_demo.dart';
import 'gallery_page.dart';
final List<WidgetDemo> _kDemos = <WidgetDemo>[
kChipDemo,
kSelectionControlsDemo,
kSliderDemo,
kDatePickerDemo,
kTabsDemo,
kTimePickerDemo,
kDropDownDemo,
];
class _MaterialGallery extends StatefulComponent {
_MaterialGalleryState createState() => new _MaterialGalleryState();
}
class _MaterialGalleryState extends State<_MaterialGallery> {
final Map<String, RouteBuilder> _routes = new Map<String, RouteBuilder>();
void initState() {
super.initState();
_routes['/'] = (_) => new GalleryPage(
demos: _kDemos,
onThemeChanged: _handleThemeChanged
);
for (WidgetDemo demo in _kDemos) {
_routes[demo.routeName] = (_) {
return new GalleryPage(
demos: _kDemos,
active: demo,
onThemeChanged: _handleThemeChanged
);
};
}
}
ThemeData _theme;
void _handleThemeChanged(ThemeData newTheme) {
setState(() {
_theme = newTheme;
});
}
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Material Gallery',
theme: _theme,
routes: _routes
);
}
}
void main() {
runApp(new _MaterialGallery());
}