m3_lightmeter/lib/screens/metering/components/bottom_controls/widget_bottom_controls.dart

78 lines
2.4 KiB
Dart
Raw Normal View History

2022-10-29 11:01:15 +00:00
import 'package:flutter/material.dart';
import 'package:lightmeter/data/models/ev_source_type.dart';
2022-10-29 11:01:15 +00:00
import 'package:lightmeter/res/dimens.dart';
import 'package:lightmeter/screens/metering/components/bottom_controls/components/measure_button/widget_button_measure.dart';
import 'package:lightmeter/utils/inherited_generics.dart';
2022-10-29 11:01:15 +00:00
class MeteringBottomControls extends StatelessWidget {
final double? ev;
final bool isMetering;
final bool hasError;
final VoidCallback? onSwitchEvSourceType;
2022-10-29 11:01:15 +00:00
final VoidCallback onMeasure;
final VoidCallback onSettings;
const MeteringBottomControls({
required this.ev,
required this.isMetering,
required this.hasError,
required this.onSwitchEvSourceType,
2022-10-29 11:01:15 +00:00
required this.onMeasure,
required this.onSettings,
super.key,
});
@override
Widget build(BuildContext context) {
2022-10-29 11:06:39 +00:00
return ClipRRect(
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(Dimens.borderRadiusL),
topRight: Radius.circular(Dimens.borderRadiusL),
),
child: ColoredBox(
color: Theme.of(context).colorScheme.surface,
child: SafeArea(
top: false,
child: Padding(
2022-12-11 16:19:38 +00:00
padding: const EdgeInsets.symmetric(vertical: Dimens.paddingL),
2022-10-29 11:06:39 +00:00
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
if (onSwitchEvSourceType != null)
Expanded(
child: Center(
child: IconButton(
onPressed: onSwitchEvSourceType,
icon: Icon(
context.listen<EvSourceType>() != EvSourceType.camera
? Icons.camera_rear
: Icons.wb_incandescent,
),
),
),
)
else
const Spacer(),
MeteringMeasureButton(
ev: ev,
isMetering: isMetering,
hasError: hasError,
onTap: onMeasure,
),
2023-01-20 20:39:01 +00:00
Expanded(
child: Center(
child: IconButton(
onPressed: onSettings,
icon: const Icon(Icons.settings),
),
2023-01-20 20:39:01 +00:00
),
2022-10-29 11:06:39 +00:00
),
],
),
2022-10-29 11:01:15 +00:00
),
),
),
);
}
}