import 'package:fis_common/env/env.dart'; import 'package:fis_measure/interfaces/process/player/play_controller.dart'; import 'package:fis_vid/processors/index.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import '../controller.dart'; import '../events.dart'; part 'play_btn.dart'; part 'prev_btn.dart'; part 'next_btn.dart'; part 'progress_bar.dart'; part 'tone_bar.dart'; class VidPlayerControlBoard extends StatelessWidget { const VidPlayerControlBoard(this.controller, {Key? key}) : super(key: key); final VidPlayerController controller; @override Widget build(BuildContext context) { return _SharedWidget( controller: controller, child: Container( padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ if (!FPlatform.isPureWeb) ...[ _BrightnessToneBar(), _ContrastToneBar(), ], _buildPlayStatusBar(), ], ), ), ); } Widget _buildPlayStatusBar() { return Center( child: Row( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.center, children: [ _PlayButton(), const SizedBox(width: 12), _PrevButton(), const SizedBox(width: 2), Expanded(child: _ProgressBar()), const SizedBox(width: 2), _NextButton(), ], ), ); } } class _SharedWidget extends InheritedWidget { const _SharedWidget({ required Widget child, required this.controller, }) : super(child: child); final VidPlayerController controller; static _SharedWidget? of(BuildContext context) { try { final data = context.dependOnInheritedWidgetOfExactType<_SharedWidget>(); return data; } catch (e) { // } return null; } @override bool updateShouldNotify(covariant InheritedWidget oldWidget) => false; }