implement static method

PDEPlugInCallbackProtocol implement({
  1. required PMPrintSession printSession(),
  2. required PMPrintSettings printSettings(),
  3. required PMPageFormat pageFormat(),
  4. required PMPrinter PMPrinter$1(),
  5. required Pointer<ppd_file_s> ppdFile(),
  6. required bool willChangePPDOptionKeyValue_ppdChoice_(
    1. NSString,
    2. NSString
    ),
  7. bool $keepIsolateAlive = true,
})

Builds an object that implements the PDEPlugInCallbackProtocol 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 PDEPlugInCallbackProtocol implement({
  required PMPrintSession Function() printSession,
  required PMPrintSettings Function() printSettings,
  required PMPageFormat Function() pageFormat,
  required PMPrinter Function() PMPrinter$1,
  required ffi.Pointer<ppd_file_s> Function() ppdFile,
  required bool Function(objc.NSString, objc.NSString)
  willChangePPDOptionKeyValue_ppdChoice_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(
    debugName: 'PDEPlugInCallbackProtocol',
  );
  PDEPlugInCallbackProtocol.printSession.implement(builder, printSession);
  PDEPlugInCallbackProtocol.printSettings.implement(builder, printSettings);
  PDEPlugInCallbackProtocol.pageFormat.implement(builder, pageFormat);
  PDEPlugInCallbackProtocol.PMPrinter$1.implement(builder, PMPrinter$1);
  PDEPlugInCallbackProtocol.ppdFile.implement(builder, ppdFile);
  PDEPlugInCallbackProtocol.willChangePPDOptionKeyValue_ppdChoice_.implement(
    builder,
    willChangePPDOptionKeyValue_ppdChoice_,
  );
  builder.addProtocol($protocol);
  return PDEPlugInCallbackProtocol.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}