81 lines
2.7 KiB
Dart
81 lines
2.7 KiB
Dart
// OpenLP Mobile Remote
|
|
// ---------------------------------------------------------------------------
|
|
// Copyright (c) 2008-2019 OpenLP Developers
|
|
// ---------------------------------------------------------------------------
|
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
// copy of this software and associated documentation files (the "Software"),
|
|
// to deal in the Software without restriction, including without limitation
|
|
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
// and/or sell copies of the Software, and to permit persons to whom the
|
|
// Software is furnished to do so, subject to the following conditions:
|
|
//
|
|
// The above copyright notice and this permission notice shall be included in
|
|
// all copies or substantial portions of the Software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
// DEALINGS IN THE SOFTWARE.
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import '../configurations/app_localizations.dart';
|
|
|
|
import 'display_options_dialog.dart';
|
|
import 'show_alert_dialog.dart';
|
|
|
|
class _Action {
|
|
IconData icon;
|
|
String title;
|
|
VoidCallback callback;
|
|
_Action(this.icon, this.title, this.callback);
|
|
}
|
|
|
|
class AppBottomNavigationBar extends StatelessWidget {
|
|
final GlobalKey<ScaffoldState> _scaffoldKey;
|
|
|
|
AppBottomNavigationBar(this._scaffoldKey);
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final List<_Action> _actions = [
|
|
_Action(
|
|
Icons.add_alert,
|
|
AppLocalizations.of(context).translate('alert'),
|
|
() {
|
|
showDialog(
|
|
context: context,
|
|
builder: (context) => ShowAlertDialog(),
|
|
);
|
|
},
|
|
),
|
|
_Action(
|
|
Icons.personal_video,
|
|
AppLocalizations.of(context).translate('display'),
|
|
() {
|
|
showDialog(
|
|
context: context,
|
|
builder: (context) => DisplayOptionsDialog(_scaffoldKey),
|
|
);
|
|
},
|
|
),
|
|
];
|
|
return BottomAppBar(
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: _actions
|
|
.map((action) => IconButton(
|
|
icon: Icon(action.icon),
|
|
onPressed: action.callback,
|
|
tooltip: action.title,
|
|
color: Theme.of(context).accentColor,
|
|
))
|
|
.toList(),
|
|
),
|
|
);
|
|
}
|
|
}
|