implement static method
NSDraggingSource
implement({
- required NSDragOperation draggingSession_sourceOperationMaskForDraggingContext_(),
- void draggingSession_willBeginAtPoint_()?,
- void draggingSession_movedToPoint_()?,
- void draggingSession_endedAtPoint_operation_()?,
- bool ignoreModifierKeysForDraggingSession_()?,
- bool $keepIsolateAlive = true,
Builds an object that implements the NSDraggingSource 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 NSDraggingSource implement({
required NSDragOperation Function(NSDraggingSession, NSDraggingContext)
draggingSession_sourceOperationMaskForDraggingContext_,
void Function(NSDraggingSession, NSPoint)?
draggingSession_willBeginAtPoint_,
void Function(NSDraggingSession, NSPoint)? draggingSession_movedToPoint_,
void Function(NSDraggingSession, NSPoint, NSDragOperation)?
draggingSession_endedAtPoint_operation_,
bool Function(NSDraggingSession)? ignoreModifierKeysForDraggingSession_,
bool $keepIsolateAlive = true,
}) {
final builder = objc.ObjCProtocolBuilder(debugName: 'NSDraggingSource');
NSDraggingSource.draggingSession_sourceOperationMaskForDraggingContext_
.implement(
builder,
draggingSession_sourceOperationMaskForDraggingContext_,
);
NSDraggingSource.draggingSession_willBeginAtPoint_.implement(
builder,
draggingSession_willBeginAtPoint_,
);
NSDraggingSource.draggingSession_movedToPoint_.implement(
builder,
draggingSession_movedToPoint_,
);
NSDraggingSource.draggingSession_endedAtPoint_operation_.implement(
builder,
draggingSession_endedAtPoint_operation_,
);
NSDraggingSource.ignoreModifierKeysForDraggingSession_.implement(
builder,
ignoreModifierKeysForDraggingSession_,
);
builder.addProtocol($protocol);
return NSDraggingSource.castFrom(
builder.build(keepIsolateAlive: $keepIsolateAlive),
);
}