home.dart 6.54 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
// 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';
import 'package:flutter/widgets.dart';

import 'demo.dart';
import 'drawer.dart';
import 'section.dart';

import '../demo/buttons_demo.dart';
Hans Muller's avatar
Hans Muller committed
13
import '../demo/cards_demo.dart';
Hans Muller's avatar
Hans Muller committed
14
import '../demo/colors_demo.dart';
15 16 17 18
import '../demo/chip_demo.dart';
import '../demo/date_picker_demo.dart';
import '../demo/dialog_demo.dart';
import '../demo/drop_down_demo.dart';
Hans Muller's avatar
Hans Muller committed
19
import '../demo/fitness_demo.dart';
20
import '../demo/grid_list_demo.dart';
Hans Muller's avatar
Hans Muller committed
21
import '../demo/icons_demo.dart';
22
import '../demo/leave_behind_demo.dart';
Hans Muller's avatar
Hans Muller committed
23
import '../demo/list_demo.dart';
24
import '../demo/modal_bottom_sheet_demo.dart';
Hans Muller's avatar
Hans Muller committed
25
import '../demo/menu_demo.dart';
26 27 28 29 30 31 32 33 34
import '../demo/page_selector_demo.dart';
import '../demo/persistent_bottom_sheet_demo.dart';
import '../demo/progress_indicator_demo.dart';
import '../demo/toggle_controls_demo.dart';
import '../demo/scrolling_techniques_demo.dart';
import '../demo/slider_demo.dart';
import '../demo/snack_bar_demo.dart';
import '../demo/tabs_demo.dart';
import '../demo/tabs_fab_demo.dart';
35
import '../demo/text_field_demo.dart';
36
import '../demo/time_picker_demo.dart';
Hans Muller's avatar
Hans Muller committed
37
import '../demo/tooltip_demo.dart';
38
import '../demo/two_level_list_demo.dart';
Hans Muller's avatar
Hans Muller committed
39
import '../demo/typography_demo.dart';
Viktor Lidholt's avatar
Viktor Lidholt committed
40
import '../demo/weather_demo.dart';
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

class GalleryHome extends StatefulComponent {
  GalleryHome({ Key key }) : super(key: key);

  GalleryHomeState createState() => new GalleryHomeState();
}

class GalleryHomeState extends State<GalleryHome> {
  Widget build(BuildContext context) {
    return new Scaffold(
      appBarHeight: 128.0,
      drawer: new GalleryDrawer(),
      toolBar: new ToolBar(
        flexibleSpace: (BuildContext context) {
          return new Container(
            padding: const EdgeDims.only(left: 16.0, bottom: 24.0),
            height: 128.0,
            child: new Align(
              alignment: const FractionalOffset(0.0, 1.0),
              child: new Text('Flutter Gallery', style: Typography.white.headline)
            )
          );
        }
      ),
65
      body: new Block(
66
        padding: const EdgeDims.all(4.0),
67 68 69 70 71 72 73 74
        children: <Widget>[
          new Row(
            children: <Widget>[
              new GallerySection(
                title: 'Animation',
                image: 'assets/section_animation.png',
                colors: Colors.purple,
                demos: <GalleryDemo>[
Viktor Lidholt's avatar
Viktor Lidholt committed
75
                  new GalleryDemo(title: 'Weather', builder: () => new WeatherDemo()),
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
                  new GalleryDemo(title: 'Fitness', builder: () => new FitnessDemo())
                ]
              ),
              new GallerySection(
                title: 'Style',
                image: 'assets/section_style.png',
                colors: Colors.green,
                demos: <GalleryDemo>[
                  new GalleryDemo(title: 'Colors', builder: () => new ColorsDemo()),
                  new GalleryDemo(title: 'Typography', builder: () => new TypographyDemo())
                ]
              )
            ]
          ),
          new Row(
            children: <Widget>[
              new GallerySection(
                title: 'Layout',
                image: 'assets/section_layout.png',
                colors: Colors.pink
              ),
              new GallerySection(
                title: 'Components',
                image: 'assets/section_components.png',
                colors: Colors.amber,
                demos: <GalleryDemo>[
                  new GalleryDemo(title: 'Buttons', builder: () => new ButtonsDemo()),
103
                  new GalleryDemo(title: 'Buttons: Floating Action Button', builder: () => new TabsFabDemo()),
104 105 106 107 108
                  new GalleryDemo(title: 'Cards', builder: () => new CardsDemo()),
                  new GalleryDemo(title: 'Chips', builder: () => new ChipDemo()),
                  new GalleryDemo(title: 'Date Picker', builder: () => new DatePickerDemo()),
                  new GalleryDemo(title: 'Dialog', builder: () => new DialogDemo()),
                  new GalleryDemo(title: 'Dropdown Button', builder: () => new DropDownDemo()),
Hans Muller's avatar
Hans Muller committed
109
                  new GalleryDemo(title: 'Expand/Collapse List Control', builder: () => new TwoLevelListDemo()),
110 111
                  new GalleryDemo(title: 'Grid', builder: () => new GridListDemo()),
                  new GalleryDemo(title: 'Icons', builder: () => new IconsDemo()),
112
                  new GalleryDemo(title: 'Leave-behind List Items', builder: () => new LeaveBehindDemo()),
113 114
                  new GalleryDemo(title: 'List', builder: () => new ListDemo()),
                  new GalleryDemo(title: 'Modal Bottom Sheet', builder: () => new ModalBottomSheetDemo()),
Hans Muller's avatar
Hans Muller committed
115
                  new GalleryDemo(title: 'Menus', builder: () => new MenuDemo()),
116 117 118 119 120 121 122
                  new GalleryDemo(title: 'Page Selector', builder: () => new PageSelectorDemo()),
                  new GalleryDemo(title: 'Persistent Bottom Sheet', builder: () => new PersistentBottomSheetDemo()),
                  new GalleryDemo(title: 'Progress Indicators', builder: () => new ProgressIndicatorDemo()),
                  new GalleryDemo(title: 'Selection Controls', builder: () => new ToggleControlsDemo()),
                  new GalleryDemo(title: 'Sliders', builder: () => new SliderDemo()),
                  new GalleryDemo(title: 'SnackBar', builder: () => new SnackBarDemo()),
                  new GalleryDemo(title: 'Tabs', builder: () => new TabsDemo()),
123
                  new GalleryDemo(title: 'Text Fields', builder: () => new TextFieldDemo()),
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
                  new GalleryDemo(title: 'Time Picker', builder: () => new TimePickerDemo()),
                  new GalleryDemo(title: 'Tooltips', builder: () => new TooltipDemo())
                ]
              )
            ]
          ),
          new Row(
            children: <Widget>[
              new GallerySection(
                title: 'Patterns',
                image: 'assets/section_patterns.png',
                colors: Colors.cyan,
                demos: <GalleryDemo>[
                  new GalleryDemo(title: 'Scrolling Techniques', builder: () => new ScrollingTechniquesDemo())
                ]
              ),
              new GallerySection(
                title: 'Usability',
                image: 'assets/section_usability.png',
                colors: Colors.lightGreen,
                demos: <GalleryDemo>[
                  new GalleryDemo(title: 'Tooltips', builder: () => new TooltipDemo())
                ]
              )
            ]
          )
        ]
151 152 153 154
      )
    );
  }
}