operate_bar.dart 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. import 'package:fis_i18n/i18n.dart';
  2. import 'package:fis_measure/interfaces/process/workspace/measure_3d_view_controller.dart';
  3. import 'package:fis_measure/process/workspace/measure_3d_view_controller.dart';
  4. import 'package:fis_measure/process/workspace/measure_controller.dart';
  5. import 'package:fis_ui/index.dart';
  6. import 'package:flutter/material.dart';
  7. import '../controller.dart';
  8. import 'package:fis_measure/interfaces/process/player/play_controller.dart';
  9. import 'package:fis_measure/view/mobile_view/widgets/throttle.dart' as utils;
  10. import 'package:get/get.dart';
  11. import '../events.dart';
  12. part 'tone_bar.dart';
  13. part 'tone_bar_carotid.dart';
  14. class OperateBar extends StatefulWidget implements FWidget {
  15. const OperateBar({Key? key, this.ifShowResetBtn = true}) : super(key: key);
  16. final bool ifShowResetBtn;
  17. @override
  18. State<OperateBar> createState() => _VidPlayerControlBoardState();
  19. }
  20. class _VidPlayerControlBoardState extends State<OperateBar> {
  21. final measure3DViewController = Get.find<Measure3DViewController>();
  22. bool enableCarotidBar = false;
  23. double get devicePixelRatio => MediaQuery.of(context).devicePixelRatio;
  24. @override
  25. void initState() {
  26. measure3DViewController.updatePlayerMode.addListener(_onModeChanged);
  27. super.initState();
  28. }
  29. @override
  30. void dispose() {
  31. measure3DViewController.updatePlayerMode.removeListener(_onModeChanged);
  32. super.dispose();
  33. }
  34. /// 模式改变触发更新
  35. void _onModeChanged(Object s, MeasureMode mode) {
  36. switch (mode) {
  37. case MeasureMode.vidMode:
  38. setState(() {
  39. enableCarotidBar = false;
  40. });
  41. break;
  42. case MeasureMode.carotid2DMode:
  43. setState(() {
  44. enableCarotidBar = true;
  45. });
  46. break;
  47. case MeasureMode.carotid3DMode:
  48. setState(() {
  49. enableCarotidBar = true;
  50. });
  51. break;
  52. }
  53. }
  54. @override
  55. Widget build(BuildContext context) {
  56. return SizedBox(
  57. width: 300 / devicePixelRatio,
  58. child: Center(
  59. child:
  60. enableCarotidBar ? _buildCarotidOperateBar() : _buildOperateBar(),
  61. ),
  62. );
  63. }
  64. Widget _buildOperateBar() {
  65. return Column(
  66. mainAxisAlignment: MainAxisAlignment.center,
  67. children: [
  68. _BrightnessToneBar(),
  69. SizedBox(height: 10 / devicePixelRatio),
  70. _ContrastToneBar(),
  71. if (widget.ifShowResetBtn) ...[
  72. SizedBox(height: 10 / devicePixelRatio),
  73. _ResetToneButton(),
  74. SizedBox(height: 10 / devicePixelRatio),
  75. ]
  76. ],
  77. );
  78. }
  79. Widget _buildCarotidOperateBar() {
  80. return Column(
  81. mainAxisAlignment: MainAxisAlignment.center,
  82. children: [
  83. _SharpnessCarotidToneBar(),
  84. SizedBox(height: 10 / devicePixelRatio),
  85. _BrightnessCarotidToneBar(),
  86. SizedBox(height: 10 / devicePixelRatio),
  87. _ContrastCarotidToneBar(),
  88. SizedBox(height: 10 / devicePixelRatio),
  89. _ResetCarotidToneButton(),
  90. SizedBox(height: 10 / devicePixelRatio),
  91. ],
  92. );
  93. }
  94. }