runCustomTutorial method

void runCustomTutorial(
  1. BuildContext context,
  2. Color shadowColor,
  3. Map<String, dynamic> indexLeading,
  4. Map<String, dynamic> indexOrientation,
  5. Map<String, dynamic> indexFullScreen, {
  6. Map<String, dynamic>? indexActionButtonOne,
  7. Map<String, dynamic>? indexActionButtonTwo,
  8. dynamic onClickTarget(
    1. TargetFocus target
    )?,
  9. dynamic onClickTargetWithTapPosition(
    1. TargetFocus target,
    2. TapDownDetails tapDownDetails
    )?,
  10. dynamic onClickOverlay(
    1. TargetFocus target
    )?,
  11. bool onSkip()?,
  12. 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);
}