implement static method

NSSpringLoadingDestination implement({
  1. required void springLoadingActivated_draggingInfo_(
    1. bool,
    2. NSDraggingInfo
    ),
  2. required void springLoadingHighlightChanged_(
    1. NSDraggingInfo
    ),
  3. NSSpringLoadingOptions springLoadingEntered_(
    1. NSDraggingInfo
    )?,
  4. NSSpringLoadingOptions springLoadingUpdated_(
    1. NSDraggingInfo
    )?,
  5. void springLoadingExited_(
    1. NSDraggingInfo
    )?,
  6. void draggingEnded_(
    1. NSDraggingInfo
    )?,
  7. bool $keepIsolateAlive = true,
})

Builds an object that implements the NSSpringLoadingDestination 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 NSSpringLoadingDestination implement({
  required void Function(bool, NSDraggingInfo)
  springLoadingActivated_draggingInfo_,
  required void Function(NSDraggingInfo) springLoadingHighlightChanged_,
  NSSpringLoadingOptions Function(NSDraggingInfo)? springLoadingEntered_,
  NSSpringLoadingOptions Function(NSDraggingInfo)? springLoadingUpdated_,
  void Function(NSDraggingInfo)? springLoadingExited_,
  void Function(NSDraggingInfo)? draggingEnded_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(
    debugName: 'NSSpringLoadingDestination',
  );
  NSSpringLoadingDestination.springLoadingActivated_draggingInfo_.implement(
    builder,
    springLoadingActivated_draggingInfo_,
  );
  NSSpringLoadingDestination.springLoadingHighlightChanged_.implement(
    builder,
    springLoadingHighlightChanged_,
  );
  NSSpringLoadingDestination.springLoadingEntered_.implement(
    builder,
    springLoadingEntered_,
  );
  NSSpringLoadingDestination.springLoadingUpdated_.implement(
    builder,
    springLoadingUpdated_,
  );
  NSSpringLoadingDestination.springLoadingExited_.implement(
    builder,
    springLoadingExited_,
  );
  NSSpringLoadingDestination.draggingEnded_.implement(
    builder,
    draggingEnded_,
  );
  builder.addProtocol($protocol);
  return NSSpringLoadingDestination.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}