implement static method

NSScrubberDelegate implement({
  1. void scrubber_didSelectItemAtIndex_(
    1. NSScrubber,
    2. DartNSInteger
    )?,
  2. void scrubber_didHighlightItemAtIndex_(
    1. NSScrubber,
    2. DartNSInteger
    )?,
  3. void scrubber_didChangeVisibleRange_(
    1. NSScrubber,
    2. NSRange
    )?,
  4. void didBeginInteractingWithScrubber_(
    1. NSScrubber
    )?,
  5. void didFinishInteractingWithScrubber_(
    1. NSScrubber
    )?,
  6. void didCancelInteractingWithScrubber_(
    1. NSScrubber
    )?,
  7. bool $keepIsolateAlive = true,
})

Builds an object that implements the NSScrubberDelegate protocol. To implement multiple protocols, use addToBuilder or objc.ObjCProtocolBuilder directly.

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

Implementation

static NSScrubberDelegate implement({
  void Function(NSScrubber, DartNSInteger)? scrubber_didSelectItemAtIndex_,
  void Function(NSScrubber, DartNSInteger)? scrubber_didHighlightItemAtIndex_,
  void Function(NSScrubber, NSRange)? scrubber_didChangeVisibleRange_,
  void Function(NSScrubber)? didBeginInteractingWithScrubber_,
  void Function(NSScrubber)? didFinishInteractingWithScrubber_,
  void Function(NSScrubber)? didCancelInteractingWithScrubber_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(debugName: 'NSScrubberDelegate');
  NSScrubberDelegate.scrubber_didSelectItemAtIndex_.implement(
    builder,
    scrubber_didSelectItemAtIndex_,
  );
  NSScrubberDelegate.scrubber_didHighlightItemAtIndex_.implement(
    builder,
    scrubber_didHighlightItemAtIndex_,
  );
  NSScrubberDelegate.scrubber_didChangeVisibleRange_.implement(
    builder,
    scrubber_didChangeVisibleRange_,
  );
  NSScrubberDelegate.didBeginInteractingWithScrubber_.implement(
    builder,
    didBeginInteractingWithScrubber_,
  );
  NSScrubberDelegate.didFinishInteractingWithScrubber_.implement(
    builder,
    didFinishInteractingWithScrubber_,
  );
  NSScrubberDelegate.didCancelInteractingWithScrubber_.implement(
    builder,
    didCancelInteractingWithScrubber_,
  );
  builder.addProtocol($protocol);
  return NSScrubberDelegate.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}