runCustomTutorial method
void
runCustomTutorial(
- BuildContext context,
- Color shadowColor,
- Map<
String, dynamic> indexLeading, - Map<
String, dynamic> indexOrientation, - Map<
String, dynamic> indexFullScreen, { - Map<
String, dynamic> ? indexActionButtonOne, - Map<
String, dynamic> ? indexActionButtonTwo, - dynamic onClickTarget(
- TargetFocus target
- dynamic onClickTargetWithTapPosition(
- TargetFocus target,
- TapDownDetails tapDownDetails
- dynamic onClickOverlay(
- TargetFocus target
- bool onSkip()?,
- dynamic onFinish()?,
Implementation
void runCustomTutorial (
BuildContext context,
Color shadowColor,
Map<String,dynamic> indexLeading,
Map<String,dynamic> indexOrientation,
Map<String,dynamic> indexFullScreen,{
Map<String,dynamic>? indexActionButtonOne,
Map<String,dynamic>? indexActionButtonTwo,
Function(TargetFocus target)? onClickTarget,
Function(TargetFocus target, TapDownDetails tapDownDetails)? onClickTargetWithTapPosition,
Function(TargetFocus target)? onClickOverlay,
bool Function()? onSkip,
Function()? onFinish
}
) {
// INDEX TARGETS { title, titleTextStyle, description, descriptionTextStyle,}
var targetMap = <String,dynamic>{
// INDEX LEADING
'index_0' : {
'globalKey' : appBarTitleKey,
'identify' : 'Target 1',
'title' : indexLeading['title'],
'titleTextStyle' : indexLeading['titleTextStyle'],
'description' : indexLeading['description'],
'descriptionTextStyle' : indexLeading['descriptionTextStyle'],
},
// ACTION BUTTON ONE
'index_1' : {
'globalKey' : appBarActionThemeKey,
'identify' : 'Target 2',
'title' : indexActionButtonOne?['title'] ?? themeTitle ,
'titleTextStyle' : indexActionButtonOne?['titleTextStyle'] ?? TextStyle(
fontWeight: FontWeight.bold,
color: Colors.white,
fontSize: 20.0
),
'description' : indexActionButtonOne?['description'] ?? themeDescription,
'descriptionTextStyle' : indexActionButtonOne?['descriptionTextStyle'] ?? TextStyle(color: Colors.white)
},
// ACTION BUTTON TWO
'index_2' : {
'globalKey' : appBarDropDownKey,
'identify' : 'Target 3',
'title' : indexActionButtonTwo?['title'] ?? dropDownTitle,
'titleTextStyle' : indexActionButtonTwo?['titleTextStyle'] ?? TextStyle(
fontWeight: FontWeight.bold,
color: Colors.white,
fontSize: 20.0
),
'description' : indexActionButtonTwo?['description'] ?? dropDownDescription,
'descriptionTextStyling' : indexActionButtonTwo?['descriptionTextStyle'] ?? TextStyle(color: Colors.white)
},
// INDEX ORIENTATION
'index_3': {
'globalKey' : orientationButtonKey,
'identify' : 'Target 4',
'title' : indexOrientation['title'],
'titleTextStyle' : indexOrientation['titleTextStyle'],
'description' : indexOrientation['description'],
'descriptionTextStyle' : indexOrientation['descriptionTextStyle']
},
// INDEX FULL SCREEN
'index_4' : {
'globalKey' : screenKey,
'identify' : 'Target 5',
'title' : indexFullScreen['title'],
'titleTextStyle' : indexFullScreen['titleTextStyle'],
'description' : indexFullScreen['description'],
'descriptionTextStyle' : indexFullScreen['descriptionTextStyle']
}
};
// CREATE TUTORIAL UTILITY
var utility = TutorialUtility(
keyTargetsMap: targetMap,
shadowColor: shadowColor,
context: context
);
// CREATE THE LIST
var targetList = utility.createTargetList();
// CREATE TUTORIAL
var tutorial = utility.createTutorial(
targetList,
onClickTarget: onClickTarget,
onClickTargetWithTapPosition: onClickTargetWithTapPosition,
onClickOverlay: onClickOverlay,
onSkip: onSkip,
onFinish: onFinish
);
// RUN TUTORIAL
utility.runTutorial(tutorial);
}