implement static method

NSCollectionViewSectionHeaderView implement({
  1. NSButton? sectionCollapseButton()?,
  2. void setSectionCollapseButton_(
    1. NSButton?
    )?,
  3. void prepareForReuse()?,
  4. void applyLayoutAttributes_(
    1. NSCollectionViewLayoutAttributes
    )?,
  5. void willTransitionFromLayout_toLayout_(
    1. NSCollectionViewLayout,
    2. NSCollectionViewLayout
    )?,
  6. void didTransitionFromLayout_toLayout_(
    1. NSCollectionViewLayout,
    2. NSCollectionViewLayout
    )?,
  7. NSCollectionViewLayoutAttributes preferredLayoutAttributesFittingAttributes_(
    1. NSCollectionViewLayoutAttributes
    )?,
  8. required NSString? identifier(),
  9. required void setIdentifier_(
    1. DartNSUserInterfaceItemIdentifier?
    ),
  10. bool $keepIsolateAlive = true,
})
override

Builds an object that implements the NSCollectionViewSectionHeaderView 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 NSCollectionViewSectionHeaderView implement({
  NSButton? Function()? sectionCollapseButton,
  void Function(NSButton?)? setSectionCollapseButton_,
  void Function()? prepareForReuse,
  void Function(NSCollectionViewLayoutAttributes)? applyLayoutAttributes_,
  void Function(NSCollectionViewLayout, NSCollectionViewLayout)?
  willTransitionFromLayout_toLayout_,
  void Function(NSCollectionViewLayout, NSCollectionViewLayout)?
  didTransitionFromLayout_toLayout_,
  NSCollectionViewLayoutAttributes Function(NSCollectionViewLayoutAttributes)?
  preferredLayoutAttributesFittingAttributes_,
  required DartNSUserInterfaceItemIdentifier? Function() identifier,
  required void Function(DartNSUserInterfaceItemIdentifier?) setIdentifier_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(
    debugName: 'NSCollectionViewSectionHeaderView',
  );
  NSCollectionViewSectionHeaderView.sectionCollapseButton.implement(
    builder,
    sectionCollapseButton,
  );
  NSCollectionViewSectionHeaderView.setSectionCollapseButton_.implement(
    builder,
    setSectionCollapseButton_,
  );
  NSCollectionViewSectionHeaderView.prepareForReuse.implement(
    builder,
    prepareForReuse,
  );
  NSCollectionViewSectionHeaderView.applyLayoutAttributes_.implement(
    builder,
    applyLayoutAttributes_,
  );
  NSCollectionViewSectionHeaderView.willTransitionFromLayout_toLayout_
      .implement(builder, willTransitionFromLayout_toLayout_);
  NSCollectionViewSectionHeaderView.didTransitionFromLayout_toLayout_
      .implement(builder, didTransitionFromLayout_toLayout_);
  NSCollectionViewSectionHeaderView
      .preferredLayoutAttributesFittingAttributes_
      .implement(builder, preferredLayoutAttributesFittingAttributes_);
  NSCollectionViewSectionHeaderView.identifier.implement(builder, identifier);
  NSCollectionViewSectionHeaderView.setIdentifier_.implement(
    builder,
    setIdentifier_,
  );
  builder.addProtocol($protocol);
  return NSCollectionViewSectionHeaderView.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}