2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import 'package:flutter/material.dart';
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:32:33 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								import 'package:flutter_hbb/common.dart';
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								import 'package:toggle_switch/toggle_switch.dart';
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								class GestureIcons {
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  static const String _family = 'gestureicons';
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  GestureIcons._();
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  static const IconData iconMouse = IconData(0xe65c, fontFamily: _family);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  static const IconData iconTabletTouch = IconData(0xe9ce, fontFamily: _family);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  static const IconData iconGestureFDrag =
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      IconData(0xe686, fontFamily: _family);
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  static const IconData iconMobileTouch = IconData(0xe9cd, fontFamily: _family);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  static const IconData iconGesturePress =
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      IconData(0xe66c, fontFamily: _family);
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  static const IconData iconGestureTap = IconData(0xe66f, fontFamily: _family);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  static const IconData iconGesturePinch =
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      IconData(0xe66a, fontFamily: _family);
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  static const IconData iconGesturePressHold =
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      IconData(0xe66b, fontFamily: _family);
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  static const IconData iconGestureFDragUpDown_ =
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      IconData(0xe685, fontFamily: _family);
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  static const IconData iconGestureFTap_ =
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      IconData(0xe68e, fontFamily: _family);
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  static const IconData iconGestureFSwipeRight =
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      IconData(0xe68f, fontFamily: _family);
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  static const IconData iconGestureFdoubleTap =
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      IconData(0xe691, fontFamily: _family);
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  static const IconData iconGestureFThreeFingers =
							 | 
						
					
						
							
								
									
										
										
										
											2022-05-12 22:09:45 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								      IconData(0xe687, fontFamily: _family);
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-24 15:59:03 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								typedef OnTouchModeChange = void Function(bool);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								class GestureHelp extends StatefulWidget {
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  GestureHelp(
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      {Key? key, required this.touchMode, required this.onTouchModeChange})
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      : super(key: key);
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-24 15:59:03 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  final bool touchMode;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  final OnTouchModeChange onTouchModeChange;
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  @override
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  State<StatefulWidget> createState() => _GestureHelpState();
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								class _GestureHelpState extends State<GestureHelp> {
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:32:33 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  var _selectedIndex;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  var _touchMode;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  @override
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  void initState() {
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-24 15:59:03 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    _touchMode = widget.touchMode;
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:32:33 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    _selectedIndex = _touchMode ? 1 : 0;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    super.initState();
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  }
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  @override
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  Widget build(BuildContext context) {
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    final size = MediaQuery.of(context).size;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    final space = 12.0;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    var width = size.width - 2 * space;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    final minWidth = 90;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    if (size.width > minWidth + 2 * space) {
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      final n = (size.width / (minWidth + 2 * space)).floor();
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      width = size.width / n - 2 * space;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    }
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    return Center(
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        child: Padding(
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								            padding: const EdgeInsets.symmetric(vertical: 12.0),
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            child: Column(
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								              mainAxisAlignment: MainAxisAlignment.center,
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								              crossAxisAlignment: CrossAxisAlignment.center,
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								              children: <Widget>[
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                ToggleSwitch(
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                  initialLabelIndex: _selectedIndex,
							 | 
						
					
						
							
								
									
										
										
										
											2023-02-09 10:29:35 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                  activeFgColor: Colors.white,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                  inactiveFgColor: Colors.white60,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                  activeBgColor: [MyTheme.accent],
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                  inactiveBgColor: Theme.of(context).hintColor,
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                  totalSwitches: 2,
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                  minWidth: 150,
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                  fontSize: 15,
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                  iconSize: 18,
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-08 16:57:47 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                  labels: [translate("Mouse mode"), translate("Touch mode")],
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                  icons: [Icons.mouse, Icons.touch_app],
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                  onToggle: (index) {
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    setState(() {
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                      if (_selectedIndex != index) {
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-24 15:59:03 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                        _selectedIndex = index ?? 0;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        _touchMode = index == 0 ? false : true;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        widget.onTouchModeChange(_touchMode);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                      }
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    });
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                  },
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                ),
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                const SizedBox(height: 30),
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                Container(
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                    child: Wrap(
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                  spacing: space,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                  runSpacing: 2 * space,
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                  children: _touchMode
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                      ? [
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                          GestureInfo(
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              width,
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              GestureIcons.iconMobileTouch,
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              translate("One-Finger Tap"),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                              translate("Left Mouse")),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                          GestureInfo(
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              width,
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              GestureIcons.iconGesturePressHold,
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              translate("One-Long Tap"),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                              translate("Right Mouse")),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                          GestureInfo(
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              width,
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              GestureIcons.iconGestureFSwipeRight,
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              translate("One-Finger Move"),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                              translate("Mouse Drag")),
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                          GestureInfo(
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              width,
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              GestureIcons.iconGestureFThreeFingers,
							 | 
						
					
						
							
								
									
										
										
										
											2022-05-12 22:09:45 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              translate("Three-Finger vertically"),
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              translate("Mouse Wheel")),
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                          GestureInfo(
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              width,
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              GestureIcons.iconGestureFDrag,
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              translate("Two-Finger Move"),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                              translate("Canvas Move")),
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                          GestureInfo(
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              width,
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              GestureIcons.iconGesturePinch,
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              translate("Pinch to Zoom"),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                              translate("Canvas Zoom")),
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        ]
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                      : [
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                          GestureInfo(
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              width,
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              GestureIcons.iconMobileTouch,
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              translate("One-Finger Tap"),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                              translate("Left Mouse")),
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                          GestureInfo(
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              width,
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              GestureIcons.iconGesturePressHold,
							 | 
						
					
						
							
								
									
										
										
										
											2022-05-12 22:09:45 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              translate("One-Long Tap"),
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              translate("Right Mouse")),
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                          GestureInfo(
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              width,
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              GestureIcons.iconGestureFSwipeRight,
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              translate("Double Tap & Move"),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                              translate("Mouse Drag")),
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                          GestureInfo(
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              width,
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              GestureIcons.iconGestureFThreeFingers,
							 | 
						
					
						
							
								
									
										
										
										
											2022-05-12 22:09:45 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              translate("Three-Finger vertically"),
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              translate("Mouse Wheel")),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                          GestureInfo(
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              width,
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              GestureIcons.iconGestureFDrag,
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              translate("Two-Finger Move"),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                              translate("Canvas Move")),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                          GestureInfo(
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              width,
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-12 21:39:19 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              GestureIcons.iconGesturePinch,
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                              translate("Pinch to Zoom"),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                              translate("Canvas Zoom")),
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                        ],
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                )),
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								              ],
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            )));
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  }
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								class GestureInfo extends StatelessWidget {
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  const GestureInfo(this.width, this.icon, this.fromText, this.toText,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      {Key? key})
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								      : super(key: key);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  final String fromText;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  final String toText;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  final IconData icon;
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  final double width;
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  final iconSize = 35.0;
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  final iconColor = MyTheme.accent;
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  @override
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  Widget build(BuildContext context) {
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    return Container(
							 | 
						
					
						
							
								
									
										
										
										
											2023-02-09 10:29:35 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								        width: width,
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								        child: Column(
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								          children: [
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								            Icon(
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								              icon,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								              size: iconSize,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								              color: iconColor,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            ),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            SizedBox(height: 6),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            Text(fromText,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                textAlign: TextAlign.center,
							 | 
						
					
						
							
								
									
										
										
										
											2023-02-09 10:29:35 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                style:
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    TextStyle(fontSize: 9, color: Theme.of(context).hintColor)),
							 | 
						
					
						
							
								
									
										
										
										
											2022-04-05 02:02:49 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								            SizedBox(height: 3),
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            Text(toText,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                textAlign: TextAlign.center,
							 | 
						
					
						
							
								
									
										
										
										
											2023-02-09 10:29:35 +09:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								                style: TextStyle(
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    fontSize: 12,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								                    color: Theme.of(context).textTheme.bodySmall?.color))
							 | 
						
					
						
							
								
									
										
										
										
											2022-03-23 16:28:37 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								          ],
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        ));
							 | 
						
					
						
							
								
									
										
										
										
											2022-02-23 21:16:30 +08:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  }
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								}
							 |