implement static method

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

Builds an object that implements the NSScrubberFlowLayoutDelegate 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 NSScrubberFlowLayoutDelegate implement({
  NSSize Function(NSScrubber, NSScrubberFlowLayout, DartNSInteger)?
  scrubber_layout_sizeForItemAtIndex_,
  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: 'NSScrubberFlowLayoutDelegate',
  );
  NSScrubberFlowLayoutDelegate.scrubber_layout_sizeForItemAtIndex_.implement(
    builder,
    scrubber_layout_sizeForItemAtIndex_,
  );
  NSScrubberFlowLayoutDelegate.scrubber_didSelectItemAtIndex_.implement(
    builder,
    scrubber_didSelectItemAtIndex_,
  );
  NSScrubberFlowLayoutDelegate.scrubber_didHighlightItemAtIndex_.implement(
    builder,
    scrubber_didHighlightItemAtIndex_,
  );
  NSScrubberFlowLayoutDelegate.scrubber_didChangeVisibleRange_.implement(
    builder,
    scrubber_didChangeVisibleRange_,
  );
  NSScrubberFlowLayoutDelegate.didBeginInteractingWithScrubber_.implement(
    builder,
    didBeginInteractingWithScrubber_,
  );
  NSScrubberFlowLayoutDelegate.didFinishInteractingWithScrubber_.implement(
    builder,
    didFinishInteractingWithScrubber_,
  );
  NSScrubberFlowLayoutDelegate.didCancelInteractingWithScrubber_.implement(
    builder,
    didCancelInteractingWithScrubber_,
  );
  builder.addProtocol($protocol);
  return NSScrubberFlowLayoutDelegate.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}