implement static method
NSDraggingDestination
implement({
- 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.
If $keepIsolateAlive is true, this protocol will keep this isolate
alive until it is garbage collected by both Dart and ObjC.
Implementation
static NSDraggingDestination implement({
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_.implement(builder, draggingExited_);
NSDraggingDestination.prepareForDragOperation_.implement(
builder,
prepareForDragOperation_,
);
NSDraggingDestination.performDragOperation_.implement(
builder,
performDragOperation_,
);
NSDraggingDestination.concludeDragOperation_.implement(
builder,
concludeDragOperation_,
);
NSDraggingDestination.draggingEnded_.implement(builder, draggingEnded_);
NSDraggingDestination.wantsPeriodicDraggingUpdates.implement(
builder,
wantsPeriodicDraggingUpdates,
);
NSDraggingDestination.updateDraggingItemsForDrag_.implement(
builder,
updateDraggingItemsForDrag_,
);
builder.addProtocol($protocol);
return NSDraggingDestination.castFrom(
builder.build(keepIsolateAlive: $keepIsolateAlive),
);
}