AdaptiveWorkbench constructor

const AdaptiveWorkbench({
  1. Key? key,
  2. required Widget canvas,
  3. required Widget library,
  4. required String libraryTitle,
  5. required Widget inspector,
  6. required String inspectorTitle,
  7. Widget? header,
  8. String? libraryDescription,
  9. Widget? libraryLeading,
  10. String? inspectorDescription,
  11. Widget? inspectorLeading,
  12. String modalLibraryLabel = 'Open library',
  13. Widget modalLibraryIcon = const Icon(Icons.inventory_2_outlined),
  14. String modalInspectorLabel = 'Open inspector',
  15. Widget modalInspectorIcon = const Icon(Icons.tune_outlined),
  16. AdaptiveSize libraryDockedAt = AdaptiveSize.medium,
  17. AdaptiveSize inspectorDockedAt = AdaptiveSize.expanded,
  18. AdaptiveHeight minimumLibraryDockedHeight = AdaptiveHeight.compact,
  19. AdaptiveHeight minimumInspectorDockedHeight = AdaptiveHeight.medium,
  20. bool useContainerConstraints = true,
  21. bool considerOrientation = false,
  22. double spacing = 16,
  23. int libraryFlex = 2,
  24. int canvasFlex = 4,
  25. int inspectorFlex = 2,
  26. EdgeInsetsGeometry canvasPadding = const EdgeInsets.all(16),
  27. EdgeInsetsGeometry libraryPadding = const EdgeInsets.all(16),
  28. EdgeInsetsGeometry inspectorPadding = const EdgeInsets.all(16),
  29. double modalHeightFactor = 0.72,
  30. bool showModalDragHandle = true,
  31. bool animateSize = true,
  32. Duration animationDuration = const Duration(milliseconds: 250),
  33. Curve animationCurve = Curves.easeInOutCubic,
})

Creates an adaptive workbench.

Implementation

const AdaptiveWorkbench({
  super.key,
  required this.canvas,
  required this.library,
  required this.libraryTitle,
  required this.inspector,
  required this.inspectorTitle,
  this.header,
  this.libraryDescription,
  this.libraryLeading,
  this.inspectorDescription,
  this.inspectorLeading,
  this.modalLibraryLabel = 'Open library',
  this.modalLibraryIcon = const Icon(Icons.inventory_2_outlined),
  this.modalInspectorLabel = 'Open inspector',
  this.modalInspectorIcon = const Icon(Icons.tune_outlined),
  this.libraryDockedAt = AdaptiveSize.medium,
  this.inspectorDockedAt = AdaptiveSize.expanded,
  this.minimumLibraryDockedHeight = AdaptiveHeight.compact,
  this.minimumInspectorDockedHeight = AdaptiveHeight.medium,
  this.useContainerConstraints = true,
  this.considerOrientation = false,
  this.spacing = 16,
  this.libraryFlex = 2,
  this.canvasFlex = 4,
  this.inspectorFlex = 2,
  this.canvasPadding = const EdgeInsets.all(16),
  this.libraryPadding = const EdgeInsets.all(16),
  this.inspectorPadding = const EdgeInsets.all(16),
  this.modalHeightFactor = 0.72,
  this.showModalDragHandle = true,
  this.animateSize = true,
  this.animationDuration = const Duration(milliseconds: 250),
  this.animationCurve = Curves.easeInOutCubic,
})  : assert(spacing >= 0, 'spacing must be zero or greater.'),
      assert(libraryFlex > 0, 'libraryFlex must be greater than zero.'),
      assert(canvasFlex > 0, 'canvasFlex must be greater than zero.'),
      assert(inspectorFlex > 0, 'inspectorFlex must be greater than zero.'),
      assert(
        modalHeightFactor > 0 && modalHeightFactor <= 1,
        'modalHeightFactor must be between 0 and 1.',
      );