2022-10-29 11:01:15 +00:00
|
|
|
import 'package:flutter/material.dart';
|
2023-01-29 16:57:47 +00:00
|
|
|
import 'package:lightmeter/data/models/ev_source_type.dart';
|
2022-10-29 11:01:15 +00:00
|
|
|
import 'package:lightmeter/res/dimens.dart';
|
2023-01-29 16:57:47 +00:00
|
|
|
import 'package:provider/provider.dart';
|
2022-10-29 11:01:15 +00:00
|
|
|
|
2023-01-29 17:02:18 +00:00
|
|
|
import 'components/measure_button/widget_button_measure.dart';
|
|
|
|
import 'components/secondary_button/widget_button_secondary.dart';
|
2022-10-29 11:01:15 +00:00
|
|
|
|
|
|
|
class MeteringBottomControls extends StatelessWidget {
|
2023-01-29 16:57:47 +00:00
|
|
|
final VoidCallback? onSwitchEvSourceType;
|
2022-10-29 11:01:15 +00:00
|
|
|
final VoidCallback onMeasure;
|
|
|
|
final VoidCallback onSettings;
|
|
|
|
|
|
|
|
const MeteringBottomControls({
|
2023-01-29 16:57:47 +00:00
|
|
|
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: [
|
2023-01-29 16:57:47 +00:00
|
|
|
if (onSwitchEvSourceType != null)
|
|
|
|
Expanded(
|
|
|
|
child: MeteringSecondaryButton(
|
|
|
|
onPressed: onSwitchEvSourceType!,
|
|
|
|
icon: context.watch<EvSourceType>() != EvSourceType.camera
|
|
|
|
? Icons.camera_rear
|
|
|
|
: Icons.wb_incandescent,
|
|
|
|
),
|
|
|
|
)
|
|
|
|
else
|
|
|
|
const Spacer(),
|
2022-10-29 11:06:39 +00:00
|
|
|
MeteringMeasureButton(
|
|
|
|
onTap: onMeasure,
|
|
|
|
),
|
2023-01-20 20:39:01 +00:00
|
|
|
Expanded(
|
|
|
|
child: MeteringSecondaryButton(
|
|
|
|
onPressed: onSettings,
|
|
|
|
icon: Icons.settings,
|
|
|
|
),
|
2022-10-29 11:06:39 +00:00
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
2022-10-29 11:01:15 +00:00
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|