implementAsBlocking static method
NSDraggingDestination
implementAsBlocking({
- NSDragOperation draggingEntered_()?,
- NSDragOperation draggingUpdated_()?,
- void draggingExited_()?,
- bool prepareForDragOperation_()?,
- bool performDragOperation_()?,
- void concludeDragOperation_()?,
- void draggingEnded_()?,
- bool wantsPeriodicDraggingUpdates()?,
- void updateDraggingItemsForDrag_()?,
- bool $keepIsolateAlive = true,
Builds an object that implements the NSDraggingDestination 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 NSDraggingDestination implementAsBlocking({
NSDragOperation Function(NSDraggingInfo)? draggingEntered_,
NSDragOperation Function(NSDraggingInfo)? draggingUpdated_,
void Function(NSDraggingInfo?)? draggingExited_,
bool Function(NSDraggingInfo)? prepareForDragOperation_,
bool Function(NSDraggingInfo)? performDragOperation_,
void Function(NSDraggingInfo?)? concludeDragOperation_,
void Function(NSDraggingInfo)? draggingEnded_,
bool Function()? wantsPeriodicDraggingUpdates,
void Function(NSDraggingInfo?)? updateDraggingItemsForDrag_,
bool $keepIsolateAlive = true,
}) {
final builder = objc.ObjCProtocolBuilder(
debugName: 'NSDraggingDestination',
);
NSDraggingDestination.draggingEntered_.implement(builder, draggingEntered_);
NSDraggingDestination.draggingUpdated_.implement(builder, draggingUpdated_);
NSDraggingDestination.draggingExited_.implementAsBlocking(
builder,
draggingExited_,
);
NSDraggingDestination.prepareForDragOperation_.implement(
builder,
prepareForDragOperation_,
);
NSDraggingDestination.performDragOperation_.implement(
builder,
performDragOperation_,
);
NSDraggingDestination.concludeDragOperation_.implementAsBlocking(
builder,
concludeDragOperation_,
);
NSDraggingDestination.draggingEnded_.implementAsBlocking(
builder,
draggingEnded_,
);
NSDraggingDestination.wantsPeriodicDraggingUpdates.implement(
builder,
wantsPeriodicDraggingUpdates,
);
NSDraggingDestination.updateDraggingItemsForDrag_.implementAsBlocking(
builder,
updateDraggingItemsForDrag_,
);
builder.addProtocol($protocol);
return NSDraggingDestination.castFrom(
builder.build(keepIsolateAlive: $keepIsolateAlive),
);
}