implementAsBlocking static method

NSPathControlDelegate implementAsBlocking({
  1. bool pathControl_shouldDragItem_withPasteboard_(
    1. NSPathControl,
    2. NSPathControlItem,
    3. NSPasteboard
    )?,
  2. bool pathControl_shouldDragPathComponentCell_withPasteboard_(
    1. NSPathControl,
    2. NSPathComponentCell,
    3. NSPasteboard
    )?,
  3. NSDragOperation pathControl_validateDrop_(
    1. NSPathControl,
    2. NSDraggingInfo
    )?,
  4. bool pathControl_acceptDrop_(
    1. NSPathControl,
    2. NSDraggingInfo
    )?,
  5. void pathControl_willDisplayOpenPanel_(
    1. NSPathControl,
    2. NSOpenPanel
    )?,
  6. void pathControl_willPopUpMenu_(
    1. NSPathControl,
    2. NSMenu
    )?,
  7. bool $keepIsolateAlive = true,
})

Builds an object that implements the NSPathControlDelegate 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 NSPathControlDelegate implementAsBlocking({
  bool Function(NSPathControl, NSPathControlItem, NSPasteboard)?
  pathControl_shouldDragItem_withPasteboard_,
  bool Function(NSPathControl, NSPathComponentCell, NSPasteboard)?
  pathControl_shouldDragPathComponentCell_withPasteboard_,
  NSDragOperation Function(NSPathControl, NSDraggingInfo)?
  pathControl_validateDrop_,
  bool Function(NSPathControl, NSDraggingInfo)? pathControl_acceptDrop_,
  void Function(NSPathControl, NSOpenPanel)?
  pathControl_willDisplayOpenPanel_,
  void Function(NSPathControl, NSMenu)? pathControl_willPopUpMenu_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(
    debugName: 'NSPathControlDelegate',
  );
  NSPathControlDelegate.pathControl_shouldDragItem_withPasteboard_.implement(
    builder,
    pathControl_shouldDragItem_withPasteboard_,
  );
  NSPathControlDelegate
      .pathControl_shouldDragPathComponentCell_withPasteboard_
      .implement(
        builder,
        pathControl_shouldDragPathComponentCell_withPasteboard_,
      );
  NSPathControlDelegate.pathControl_validateDrop_.implement(
    builder,
    pathControl_validateDrop_,
  );
  NSPathControlDelegate.pathControl_acceptDrop_.implement(
    builder,
    pathControl_acceptDrop_,
  );
  NSPathControlDelegate.pathControl_willDisplayOpenPanel_.implementAsBlocking(
    builder,
    pathControl_willDisplayOpenPanel_,
  );
  NSPathControlDelegate.pathControl_willPopUpMenu_.implementAsBlocking(
    builder,
    pathControl_willPopUpMenu_,
  );
  builder.addProtocol($protocol);
  return NSPathControlDelegate.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}