implementAsBlocking static method

NSTextFinderBarContainer implementAsBlocking({
  1. required NSView? findBarView(),
  2. required void setFindBarView_(
    1. NSView? view
    ),
  3. required bool isFindBarVisible(),
  4. required void setFindBarVisible_(
    1. bool restartFlag
    ),
  5. required void findBarViewDidChangeHeight(),
  6. NSView? contentView()?,
  7. bool $keepIsolateAlive = true,
})

Builds an object that implements the NSTextFinderBarContainer 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 NSTextFinderBarContainer implementAsBlocking({
  required NSView? Function() findBarView,
  required void Function(NSView?) setFindBarView_,
  required bool Function() isFindBarVisible,
  required void Function(bool) setFindBarVisible_,
  required void Function() findBarViewDidChangeHeight,
  NSView? Function()? contentView,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(
    debugName: 'NSTextFinderBarContainer',
  );
  NSTextFinderBarContainer.findBarView.implement(builder, findBarView);
  NSTextFinderBarContainer.setFindBarView_.implementAsBlocking(
    builder,
    setFindBarView_,
  );
  NSTextFinderBarContainer.isFindBarVisible.implement(
    builder,
    isFindBarVisible,
  );
  NSTextFinderBarContainer.setFindBarVisible_.implementAsBlocking(
    builder,
    setFindBarVisible_,
  );
  NSTextFinderBarContainer.findBarViewDidChangeHeight.implementAsBlocking(
    builder,
    findBarViewDidChangeHeight,
  );
  NSTextFinderBarContainer.contentView.implement(builder, contentView);
  builder.addProtocol($protocol);
  return NSTextFinderBarContainer.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}