mouse_gesture.dart 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import 'package:fis_measure/interfaces/process/workspace/application.dart';
  2. import 'package:fis_measure/interfaces/process/workspace/point_info.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:get/get.dart';
  5. import 'positioned_cursor.dart';
  6. class MeasureMouseGesturePanel extends StatefulWidget {
  7. const MeasureMouseGesturePanel({Key? key}) : super(key: key);
  8. @override
  9. State<StatefulWidget> createState() => _MeasureMouseGesturePanelState();
  10. }
  11. class _MeasureMouseGesturePanelState extends State<MeasureMouseGesturePanel> {
  12. Offset? mousePosition;
  13. Offset? cursorPosition;
  14. final mouseState = Get.put<IMouseState>(MouseState());
  15. late final application = Get.find<IApplication>();
  16. @override
  17. void initState() {
  18. // TODO: from config
  19. mouseState.cursorSize = 32;
  20. super.initState();
  21. }
  22. @override
  23. void dispose() {
  24. //
  25. super.dispose();
  26. }
  27. @override
  28. Widget build(BuildContext context) {
  29. return GestureDetector(
  30. onTapDown: (details) {
  31. application.createPointInfo(
  32. details.localPosition,
  33. PointInfoType.mouseDown,
  34. );
  35. },
  36. onPanDown: (details) {
  37. // application.createPointInfo(
  38. // details.localPosition,
  39. // PointInfoType.mouseDown,
  40. // );
  41. },
  42. onPanUpdate: (details) {
  43. mouseState.mousePosition = details.localPosition;
  44. application.createPointInfo(
  45. details.localPosition,
  46. PointInfoType.mouseMove,
  47. );
  48. },
  49. child: MouseRegion(
  50. cursor: SystemMouseCursors.none,
  51. onHover: (event) {
  52. mouseState.mousePosition = event.localPosition;
  53. application.createPointInfo(
  54. event.localPosition,
  55. PointInfoType.mouseMove,
  56. );
  57. },
  58. child: Stack(
  59. children: const [
  60. PositionedCursor(),
  61. ],
  62. ),
  63. ),
  64. );
  65. }
  66. }