/* * cupertino_toolbar * Copyright (c) 2019 Christian Mengler. All rights reserved. * See LICENSE for distribution and usage details. */ import 'package:fluent_reader_lite/utils/colors.dart'; import 'package:fluent_reader_lite/utils/global.dart'; import 'package:flutter/cupertino.dart'; class CupertinoToolbar extends StatelessWidget { CupertinoToolbar({ Key? key, required this.items, required this.body }) : assert( items.every((CupertinoToolbarItem item) => true) == true, ), super(key: key); final List items; final Widget body; @override Widget build(BuildContext context) { return Column( children: [ Expanded( child: body ), Container( decoration: BoxDecoration( border: Border( top: BorderSide(color: MyColors.barDivider.resolveFrom(context), width: 0.0) ) ), child: SafeArea( top: false, child: SizedBox( height: Global.isTablet ? 50.0 : 44.0, child: Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: _createButtons() ) ) ) ) ] ); } List _createButtons() { final List children = []; for (int i = 0; i < items.length; i += 1) { children.add(CupertinoButton( padding: EdgeInsets.zero, child: Icon( items[i].icon, semanticLabel: items[i].semanticLabel, ), onPressed: items[i].onPressed )); } return children; } } class CupertinoToolbarItem { const CupertinoToolbarItem({ required this.icon, this.onPressed, this.semanticLabel }); final IconData icon; final VoidCallback? onPressed; final String? semanticLabel; }