From a5fefc8c14c40216bef1a31626d1c35485550163 Mon Sep 17 00:00:00 2001 From: Joakim Unge Date: Tue, 4 Jun 2024 11:08:58 +0200 Subject: [PATCH 1/2] feat: add onTap event and handler to TransformableBox --- .../lib/src/transformable_box.dart | 10 ++++++++++ packages/flutter_box_transform/lib/src/typedefs.dart | 3 +++ 2 files changed, 13 insertions(+) diff --git a/packages/flutter_box_transform/lib/src/transformable_box.dart b/packages/flutter_box_transform/lib/src/transformable_box.dart index 8786c02..d89f7a3 100644 --- a/packages/flutter_box_transform/lib/src/transformable_box.dart +++ b/packages/flutter_box_transform/lib/src/transformable_box.dart @@ -142,6 +142,9 @@ class TransformableBox extends StatefulWidget { /// or the flip. final RectChangeEvent? onChanged; + /// A callback that is called every time the [TransformableBox] is tapped. + final TapEvent? onTap; + /// A callback that is called when [TransformableBox] triggers a pointer down /// event to begin a drag operation. final RectDragStartEvent? onDragStart; @@ -247,6 +250,9 @@ class TransformableBox extends StatefulWidget { this.draggable = true, this.allowFlippingWhileResizing = true, + // Tap events + this.onTap, + // Either resize or drag triggers. this.onChanged, @@ -489,6 +495,9 @@ class _TransformableBoxState extends State { widget.onTerminalSizeReached?.call(false, false, false, false); } + /// Called when the box is tapped. + void onTap() => widget.onTap?.call(); + /// Called when the box drag event starts. void onDragPanStart(DragStartDetails event) { // Two fingers were used to start the drag. This produces issues with @@ -545,6 +554,7 @@ class _TransformableBoxState extends State { if (widget.draggable) { content = GestureDetector( behavior: HitTestBehavior.translucent, + onTap: onTap, onPanStart: onDragPanStart, onPanUpdate: onDragPanUpdate, onPanEnd: onDragPanEnd, diff --git a/packages/flutter_box_transform/lib/src/typedefs.dart b/packages/flutter_box_transform/lib/src/typedefs.dart index dce46d0..28c4a3e 100644 --- a/packages/flutter_box_transform/lib/src/typedefs.dart +++ b/packages/flutter_box_transform/lib/src/typedefs.dart @@ -25,6 +25,9 @@ typedef RectChangeEvent = void Function( DragUpdateDetails event, ); +/// A callback that is called when the box is tapped. +typedef TapEvent = void Function(); + /// A callback that is called when the box begins a drag operation. typedef RectDragStartEvent = void Function( DragStartDetails event, From 242950e1bc421e35c43f091c0d4fa90d541f20ec Mon Sep 17 00:00:00 2001 From: Joakim Unge Date: Tue, 11 Jun 2024 14:40:42 +0200 Subject: [PATCH 2/2] feat: remove unnecessary type def --- packages/flutter_box_transform/lib/src/transformable_box.dart | 2 +- packages/flutter_box_transform/lib/src/typedefs.dart | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/flutter_box_transform/lib/src/transformable_box.dart b/packages/flutter_box_transform/lib/src/transformable_box.dart index d89f7a3..7077dee 100644 --- a/packages/flutter_box_transform/lib/src/transformable_box.dart +++ b/packages/flutter_box_transform/lib/src/transformable_box.dart @@ -143,7 +143,7 @@ class TransformableBox extends StatefulWidget { final RectChangeEvent? onChanged; /// A callback that is called every time the [TransformableBox] is tapped. - final TapEvent? onTap; + final VoidCallback? onTap; /// A callback that is called when [TransformableBox] triggers a pointer down /// event to begin a drag operation. diff --git a/packages/flutter_box_transform/lib/src/typedefs.dart b/packages/flutter_box_transform/lib/src/typedefs.dart index 28c4a3e..dce46d0 100644 --- a/packages/flutter_box_transform/lib/src/typedefs.dart +++ b/packages/flutter_box_transform/lib/src/typedefs.dart @@ -25,9 +25,6 @@ typedef RectChangeEvent = void Function( DragUpdateDetails event, ); -/// A callback that is called when the box is tapped. -typedef TapEvent = void Function(); - /// A callback that is called when the box begins a drag operation. typedef RectDragStartEvent = void Function( DragStartDetails event,