@@ -24,16 +24,16 @@ import 'dart:math';
24
24
import 'package:flutter/foundation.dart' ;
25
25
import 'package:flutter/widgets.dart' ;
26
26
27
- import '../get_position.dart' ;
28
27
import '../models/linked_showcase_data.dart' ;
29
28
import '../models/tooltip_action_config.dart' ;
30
- import '../overlay_manager.dart' ;
31
- import '../showcase_service.dart' ;
32
- import '../showcase_view.dart' ;
33
29
import '../tooltip/tooltip.dart' ;
34
- import '../tooltip_action_button_widget.dart' ;
30
+ import '../utils/overlay_manager.dart' ;
31
+ import '../utils/target_position_service.dart' ;
35
32
import '../widget/floating_action_widget.dart' ;
33
+ import '../widget/tooltip_action_button_widget.dart' ;
36
34
import 'showcase.dart' ;
35
+ import 'showcase_service.dart' ;
36
+ import 'showcase_view.dart' ;
37
37
import 'target_widget.dart' ;
38
38
39
39
/// Controller class for managing showcase functionality
@@ -76,7 +76,7 @@ class ShowcaseController {
76
76
ShowcaseView showCaseView;
77
77
78
78
/// Position information for the showcase target
79
- GetPosition ? position;
79
+ TargetPositionService ? position;
80
80
81
81
/// Data model for linked showcases
82
82
LinkedShowcaseDataModel ? linkedShowcaseDataModel;
@@ -172,7 +172,7 @@ class ShowcaseController {
172
172
final renderBox = _context.findRenderObject () as RenderBox ? ;
173
173
final screenSize = MediaQuery .of (_context).size;
174
174
final size = rootWidgetSize ?? screenSize;
175
- final newPosition = GetPosition (
175
+ final newPosition = TargetPositionService (
176
176
rootRenderObject: rootRenderObject,
177
177
renderBox: renderBox,
178
178
padding: config.targetPadding,
@@ -297,7 +297,7 @@ class ShowcaseController {
297
297
.getFloatingActionWidget (config.showcaseKey)
298
298
? .call (_context);
299
299
final size = rootWidgetSize ?? MediaQuery .of (_context).size;
300
- position ?? = GetPosition (
300
+ position ?? = TargetPositionService (
301
301
rootRenderObject: rootRenderObject,
302
302
renderBox: _context.findRenderObject () as RenderBox ? ,
303
303
padding: config.targetPadding,
@@ -437,6 +437,18 @@ class ShowcaseController {
437
437
const TooltipActionConfig ();
438
438
}
439
439
440
+ /// Handles tap on barrier area
441
+ ///
442
+ /// Respects [disableBarrierInteraction] settings from both global and local config
443
+ void handleBarrierTap () {
444
+ config.onBarrierClick? .call ();
445
+ if (showCaseView.disableBarrierInteraction ||
446
+ config.disableBarrierInteraction) {
447
+ return ;
448
+ }
449
+ _nextIfAny ();
450
+ }
451
+
440
452
/// Retrieves the floating action widget if available
441
453
///
442
454
/// Combines local widget with global floating action widget.
0 commit comments