ModalOverlay constructor

ModalOverlay({
  1. required String title,
  2. required Rect bounds,
  3. required Rect dialogBounds,
  4. required Widget child,
  5. required List<FocusNode> modalFocusNodes,
  6. void onDismiss()?,
  7. Style scrimStyle = const Style(modifiers: Modifier.dim),
  8. FocusNode? focusNode,
  9. int zIndex = 10,
  10. void onKeyEvent(
    1. KeyEvent event
    )?,
})

Creates a ModalOverlay widget that traps focus within its bounds.

Implementation

ModalOverlay({
  required super.title,
  required super.bounds,
  required this.dialogBounds,
  required super.child,
  required this.modalFocusNodes,
  this.onDismiss,
  this.scrimStyle = const Style(modifiers: Modifier.dim),
  super.focusNode,
  super.zIndex = 10,
  void Function(KeyEvent event)? onKeyEvent,
}) : customOnKeyEvent = onKeyEvent,
     super(borderChars: ['┌', '─', '┐', '│', ' ', '│', '└', '─', '┘']) {
  for (final node in modalFocusNodes) {
    focusNode.addChild(node);
  }
  bool anyFocused = false;
  for (final node in modalFocusNodes) {
    if (node.isFocused) {
      anyFocused = true;
      break;
    }
  }
  if (!anyFocused && modalFocusNodes.isNotEmpty) {
    modalFocusNodes.first.requestFocus();
  }
}