operate_bar.dart 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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() => _OperateBar();
  19. }
  20. class _OperateBar extends State<OperateBar> {
  21. final measure3DViewController = Get.find<Measure3DViewController>();
  22. bool enableCarotidBar = false;
  23. double get devicePixelRatio =>
  24. kIsMobile ? 1 : MediaQuery.of(context).devicePixelRatio;
  25. @override
  26. void initState() {
  27. measure3DViewController.updatePlayerMode.addListener(_onModeChanged);
  28. super.initState();
  29. }
  30. @override
  31. void dispose() {
  32. measure3DViewController.updatePlayerMode.removeListener(_onModeChanged);
  33. super.dispose();
  34. }
  35. /// 模式改变触发更新
  36. void _onModeChanged(Object s, MeasureMode mode) {
  37. switch (mode) {
  38. case MeasureMode.vidMode:
  39. setState(() {
  40. enableCarotidBar = false;
  41. });
  42. break;
  43. case MeasureMode.carotid2DMode:
  44. setState(() {
  45. enableCarotidBar = true;
  46. });
  47. break;
  48. case MeasureMode.carotid3DMode:
  49. setState(() {
  50. enableCarotidBar = true;
  51. });
  52. break;
  53. }
  54. }
  55. @override
  56. Widget build(BuildContext context) {
  57. return SizedBox(
  58. width: 300 / devicePixelRatio,
  59. child: Center(
  60. child:
  61. enableCarotidBar ? _buildCarotidOperateBar() : _buildOperateBar(),
  62. ),
  63. );
  64. }
  65. Widget _buildOperateBar() {
  66. return Column(
  67. mainAxisAlignment: MainAxisAlignment.center,
  68. children: [
  69. _BrightnessToneBar(),
  70. SizedBox(height: 10 / devicePixelRatio),
  71. _ContrastToneBar(),
  72. if (widget.ifShowResetBtn) ...[
  73. SizedBox(height: 10 / devicePixelRatio),
  74. _ResetToneButton(),
  75. SizedBox(height: 10 / devicePixelRatio),
  76. ]
  77. ],
  78. );
  79. }
  80. Widget _buildCarotidOperateBar() {
  81. return Column(
  82. mainAxisAlignment: MainAxisAlignment.center,
  83. children: [
  84. _SharpnessCarotidToneBar(),
  85. SizedBox(height: 10 / devicePixelRatio),
  86. _BrightnessCarotidToneBar(),
  87. SizedBox(height: 10 / devicePixelRatio),
  88. _ContrastCarotidToneBar(),
  89. SizedBox(height: 10 / devicePixelRatio),
  90. _ResetCarotidToneButton(),
  91. SizedBox(height: 10 / devicePixelRatio),
  92. ],
  93. );
  94. }
  95. }