import 'package:fis_measure/interfaces/process/workspace/application.dart'; import 'package:fis_measure/interfaces/process/workspace/point_info.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'positioned_cursor.dart'; class MeasureMouseGesturePanel extends StatefulWidget { const MeasureMouseGesturePanel({Key? key}) : super(key: key); @override State createState() => _MeasureMouseGesturePanelState(); } class _MeasureMouseGesturePanelState extends State { Offset? mousePosition; Offset? cursorPosition; final mouseState = Get.put(MouseState()); late final application = Get.find(); @override void initState() { // TODO: from config mouseState.cursorSize = 32; super.initState(); } @override void dispose() { // super.dispose(); } @override Widget build(BuildContext context) { return GestureDetector( onTapDown: (details) { application.createPointInfo( details.localPosition, PointInfoType.mouseDown, ); }, onPanDown: (details) { // application.createPointInfo( // details.localPosition, // PointInfoType.mouseDown, // ); }, onPanUpdate: (details) { mouseState.mousePosition = details.localPosition; application.createPointInfo( details.localPosition, PointInfoType.mouseMove, ); }, child: MouseRegion( cursor: SystemMouseCursors.none, onHover: (event) { mouseState.mousePosition = event.localPosition; application.createPointInfo( event.localPosition, PointInfoType.mouseMove, ); }, child: Stack( children: const [ PositionedCursor(), ], ), ), ); } }