implementAsBlocking static method

NSAccessibilityOutline implementAsBlocking({
  1. required NSString? accessibilityLabel(),
  2. required NSArray? accessibilityRows(),
  3. NSArray? accessibilitySelectedRows()?,
  4. void setAccessibilitySelectedRows_(
    1. NSArray
    )?,
  5. NSArray? accessibilityVisibleRows()?,
  6. NSArray? accessibilityColumns()?,
  7. NSArray? accessibilityVisibleColumns()?,
  8. NSArray? accessibilitySelectedColumns()?,
  9. DartNSUserInterfaceItemIdentifier? accessibilityHeaderGroup()?,
  10. NSArray? accessibilitySelectedCells()?,
  11. NSArray? accessibilityVisibleCells()?,
  12. NSArray? accessibilityRowHeaderUIElements()?,
  13. NSArray? accessibilityColumnHeaderUIElements()?,
  14. required CGRect accessibilityFrame(),
  15. required ObjCObjectBase? accessibilityParent(),
  16. bool isAccessibilityFocused()?,
  17. NSString accessibilityIdentifier()?,
  18. bool $keepIsolateAlive = true,
})
override

Builds an object that implements the NSAccessibilityOutline protocol. To implement multiple protocols, use addToBuilder or objc.ObjCProtocolBuilder directly. All methods that can be implemented as blocking listeners will be.

If $keepIsolateAlive is true, this protocol will keep this isolate alive until it is garbage collected by both Dart and ObjC.

Implementation

static NSAccessibilityOutline implementAsBlocking({
  required DartNSUserInterfaceItemIdentifier? Function() accessibilityLabel,
  required objc.NSArray? Function() accessibilityRows,
  objc.NSArray? Function()? accessibilitySelectedRows,
  void Function(objc.NSArray)? setAccessibilitySelectedRows_,
  objc.NSArray? Function()? accessibilityVisibleRows,
  objc.NSArray? Function()? accessibilityColumns,
  objc.NSArray? Function()? accessibilityVisibleColumns,
  objc.NSArray? Function()? accessibilitySelectedColumns,
  DartNSUserInterfaceItemIdentifier? Function()? accessibilityHeaderGroup,
  objc.NSArray? Function()? accessibilitySelectedCells,
  objc.NSArray? Function()? accessibilityVisibleCells,
  objc.NSArray? Function()? accessibilityRowHeaderUIElements,
  objc.NSArray? Function()? accessibilityColumnHeaderUIElements,
  required NSRect Function() accessibilityFrame,
  required objc.ObjCObjectBase? Function() accessibilityParent,
  bool Function()? isAccessibilityFocused,
  objc.NSString Function()? accessibilityIdentifier,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(
    debugName: 'NSAccessibilityOutline',
  );
  NSAccessibilityOutline.accessibilityLabel.implement(
    builder,
    accessibilityLabel,
  );
  NSAccessibilityOutline.accessibilityRows.implement(
    builder,
    accessibilityRows,
  );
  NSAccessibilityOutline.accessibilitySelectedRows.implement(
    builder,
    accessibilitySelectedRows,
  );
  NSAccessibilityOutline.setAccessibilitySelectedRows_.implementAsBlocking(
    builder,
    setAccessibilitySelectedRows_,
  );
  NSAccessibilityOutline.accessibilityVisibleRows.implement(
    builder,
    accessibilityVisibleRows,
  );
  NSAccessibilityOutline.accessibilityColumns.implement(
    builder,
    accessibilityColumns,
  );
  NSAccessibilityOutline.accessibilityVisibleColumns.implement(
    builder,
    accessibilityVisibleColumns,
  );
  NSAccessibilityOutline.accessibilitySelectedColumns.implement(
    builder,
    accessibilitySelectedColumns,
  );
  NSAccessibilityOutline.accessibilityHeaderGroup.implement(
    builder,
    accessibilityHeaderGroup,
  );
  NSAccessibilityOutline.accessibilitySelectedCells.implement(
    builder,
    accessibilitySelectedCells,
  );
  NSAccessibilityOutline.accessibilityVisibleCells.implement(
    builder,
    accessibilityVisibleCells,
  );
  NSAccessibilityOutline.accessibilityRowHeaderUIElements.implement(
    builder,
    accessibilityRowHeaderUIElements,
  );
  NSAccessibilityOutline.accessibilityColumnHeaderUIElements.implement(
    builder,
    accessibilityColumnHeaderUIElements,
  );
  NSAccessibilityOutline.accessibilityFrame.implement(
    builder,
    accessibilityFrame,
  );
  NSAccessibilityOutline.accessibilityParent.implement(
    builder,
    accessibilityParent,
  );
  NSAccessibilityOutline.isAccessibilityFocused.implement(
    builder,
    isAccessibilityFocused,
  );
  NSAccessibilityOutline.accessibilityIdentifier.implement(
    builder,
    accessibilityIdentifier,
  );
  builder.addProtocol($protocol);
  return NSAccessibilityOutline.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}