ProgrammingBlocksDependency constructor

ProgrammingBlocksDependency({
  1. Color? backgroundCanvasColor,
  2. Curve? creationPanelAnimationCurve,
  3. Duration? creationPanelAnimationDuration,
  4. Color? creationPanelBackgroundColor,
  5. double? creationPanelHeight,
  6. Widget creationPanelOpenCloseBuilder()?,
  7. Widget creationSectionButtonBuilder(
    1. BuildContext context,
    2. CreationSectionData creationSectionData,
    3. bool selected
    )?,
  8. double defaultFuntionSize = 2000,
  9. Duration? doubleTapAnimDuration,
  10. int dragDelay = 100,
  11. bool drawMainScope = true,
  12. bool enableFunctions = true,
  13. Color? foregroundCanvasColor,
  14. Color? functionsSectionColor,
  15. Widget functionTabsBuilder(
    1. BuildContext context,
    2. String tabName,
    3. bool selected
    )?,
  16. Widget? injectorChild,
  17. Key? key,
  18. String mainFunctionName = 'Main',
  19. dynamic onChangeRunningState(
    1. RunningState runningState
    )?,
  20. dynamic onProjectChange(
    1. ProgrammingBlocksProjectModel projectModel
    )?,
  21. double? opacityScrollBars,
  22. ProgrammingBlocksProjectModel? projectModel,
  23. double? radiusScrollBars,
  24. Widget runBuilder(
    1. Color? enterBlockColor
    )?,
  25. Color? scrollBarsColor,
  26. double? scrollBarsWeight,
  27. required List<CreationSection> sections,
  28. Widget stopBuilder()?,
  29. Widget trashBuilder(
    1. bool onBlockEnter
    )?,
})

Implementation

ProgrammingBlocksDependency({
  this.backgroundCanvasColor,
  Curve? creationPanelAnimationCurve,
  Duration? creationPanelAnimationDuration,
  Color? creationPanelBackgroundColor,
  double? creationPanelHeight,
  Widget Function()? creationPanelOpenCloseBuilder,
  this.creationSectionButtonBuilder,
  this.defaultFuntionSize = 2000,
  this.doubleTapAnimDuration,
  int dragDelay = 100,
  this.drawMainScope = true,
  this.enableFunctions = true,
  this.foregroundCanvasColor,
  Color? functionsSectionColor,
  this.functionTabsBuilder,
  this.injectorChild,
  Key? key,
  this.mainFunctionName = 'Main',
  this.onChangeRunningState,
  this.onProjectChange,
  this.opacityScrollBars,
  ProgrammingBlocksProjectModel? projectModel,
  this.radiusScrollBars,
  Widget Function(Color? enterBlockColor)? runBuilder,
  this.scrollBarsColor,
  this.scrollBarsWeight,
  required this.sections,
  Widget Function()? stopBuilder,
  Widget Function(bool onBlockEnter)? trashBuilder,
})  : _dragDelay = dragDelay < 100 ? 100 : dragDelay,
      _projectModel = projectModel ??
          ProjectModelSingletonBuilder().build(
              defaultFuntionSize: defaultFuntionSize,
              mainFunctionName: mainFunctionName,
              drawMainScope: drawMainScope),
      canvasController = CanvasController(
        projectModel: projectModel ??
            ProjectModelSingletonBuilder().build(
                defaultFuntionSize: defaultFuntionSize,
                mainFunctionName: mainFunctionName,
                drawMainScope: drawMainScope),
      ),
      panelController = CreationPanelController(
        sections: [
          ...sections,
          FunctionsSection(
            color: functionsSectionColor,
          ),
        ],
        configBlockModels: (projectModel ??
                ProjectModelSingletonBuilder().build(
                  defaultFuntionSize: defaultFuntionSize,
                  mainFunctionName: mainFunctionName,
                  drawMainScope: drawMainScope,
                ))
            .configurationModels,
      ),
      super(
          key: key,
          child: injectorChild ??
              CreationPanel(
                trashBuilder: trashBuilder,
                runBuilder: runBuilder,
                stopBuilder: stopBuilder,
                animationCurve: creationPanelAnimationCurve,
                animationDuration: creationPanelAnimationDuration,
                backgorundColor: creationPanelBackgroundColor,
                creationSectionButtonBuilder: creationSectionButtonBuilder,
                height: creationPanelHeight ?? 250,
                openCloseBuilder: creationPanelOpenCloseBuilder,
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    if (enableFunctions == true)
                      TabBar(
                        functionTabsBuilder: functionTabsBuilder,
                      ),
                    Expanded(
                      child: ProgrammingBlocksDependencyCanvas(
                          foregroundCanvasColor: foregroundCanvasColor,
                          backgroundCanvasColor: backgroundCanvasColor,
                          scrollBarsColor: scrollBarsColor,
                          doubleTapAnimDuration: doubleTapAnimDuration,
                          opacityScrollBars: opacityScrollBars,
                          radiusScrollBars: radiusScrollBars,
                          scrollWeight: scrollBarsWeight),
                    ),
                  ],
                ),
              )) {
  blockTypes.clear();
  blockTypes.addAll(_findBlockTypes());
}