/*
* 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<CupertinoToolbarItem> items;
final Widget body;
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
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<Widget> _createButtons() {
final List<Widget> children = <Widget>[];
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;
}