implementAsBlocking static method

NSSplitViewDelegate implementAsBlocking({
  1. bool splitView_canCollapseSubview_(
    1. NSSplitView,
    2. NSView
    )?,
  2. bool splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex_(
    1. NSSplitView,
    2. NSView,
    3. DartNSInteger
    )?,
  3. DartCGFloat splitView_constrainMinCoordinate_ofSubviewAt_(
    1. NSSplitView,
    2. DartCGFloat,
    3. DartNSInteger
    )?,
  4. DartCGFloat splitView_constrainMaxCoordinate_ofSubviewAt_(
    1. NSSplitView,
    2. DartCGFloat,
    3. DartNSInteger
    )?,
  5. DartCGFloat splitView_constrainSplitPosition_ofSubviewAt_(
    1. NSSplitView,
    2. DartCGFloat,
    3. DartNSInteger
    )?,
  6. void splitView_resizeSubviewsWithOldSize_(
    1. NSSplitView,
    2. NSSize
    )?,
  7. bool splitView_shouldAdjustSizeOfSubview_(
    1. NSSplitView,
    2. NSView
    )?,
  8. bool splitView_shouldHideDividerAtIndex_(
    1. NSSplitView,
    2. DartNSInteger
    )?,
  9. NSRect splitView_effectiveRect_forDrawnRect_ofDividerAtIndex_(
    1. NSSplitView,
    2. NSRect,
    3. NSRect,
    4. DartNSInteger,
    )?,
  10. NSRect splitView_additionalEffectiveRectOfDividerAtIndex_(
    1. NSSplitView,
    2. DartNSInteger
    )?,
  11. void splitViewWillResizeSubviews_(
    1. NSNotification
    )?,
  12. void splitViewDidResizeSubviews_(
    1. NSNotification
    )?,
  13. bool $keepIsolateAlive = true,
})

Builds an object that implements the NSSplitViewDelegate 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 NSSplitViewDelegate implementAsBlocking({
  bool Function(NSSplitView, NSView)? splitView_canCollapseSubview_,
  bool Function(NSSplitView, NSView, DartNSInteger)?
  splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex_,
  DartCGFloat Function(NSSplitView, DartCGFloat, DartNSInteger)?
  splitView_constrainMinCoordinate_ofSubviewAt_,
  DartCGFloat Function(NSSplitView, DartCGFloat, DartNSInteger)?
  splitView_constrainMaxCoordinate_ofSubviewAt_,
  DartCGFloat Function(NSSplitView, DartCGFloat, DartNSInteger)?
  splitView_constrainSplitPosition_ofSubviewAt_,
  void Function(NSSplitView, NSSize)? splitView_resizeSubviewsWithOldSize_,
  bool Function(NSSplitView, NSView)? splitView_shouldAdjustSizeOfSubview_,
  bool Function(NSSplitView, DartNSInteger)?
  splitView_shouldHideDividerAtIndex_,
  NSRect Function(NSSplitView, NSRect, NSRect, DartNSInteger)?
  splitView_effectiveRect_forDrawnRect_ofDividerAtIndex_,
  NSRect Function(NSSplitView, DartNSInteger)?
  splitView_additionalEffectiveRectOfDividerAtIndex_,
  void Function(objc.NSNotification)? splitViewWillResizeSubviews_,
  void Function(objc.NSNotification)? splitViewDidResizeSubviews_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(debugName: 'NSSplitViewDelegate');
  NSSplitViewDelegate.splitView_canCollapseSubview_.implement(
    builder,
    splitView_canCollapseSubview_,
  );
  NSSplitViewDelegate
      .splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex_
      .implement(
        builder,
        splitView_shouldCollapseSubview_forDoubleClickOnDividerAtIndex_,
      );
  NSSplitViewDelegate.splitView_constrainMinCoordinate_ofSubviewAt_.implement(
    builder,
    splitView_constrainMinCoordinate_ofSubviewAt_,
  );
  NSSplitViewDelegate.splitView_constrainMaxCoordinate_ofSubviewAt_.implement(
    builder,
    splitView_constrainMaxCoordinate_ofSubviewAt_,
  );
  NSSplitViewDelegate.splitView_constrainSplitPosition_ofSubviewAt_.implement(
    builder,
    splitView_constrainSplitPosition_ofSubviewAt_,
  );
  NSSplitViewDelegate.splitView_resizeSubviewsWithOldSize_
      .implementAsBlocking(builder, splitView_resizeSubviewsWithOldSize_);
  NSSplitViewDelegate.splitView_shouldAdjustSizeOfSubview_.implement(
    builder,
    splitView_shouldAdjustSizeOfSubview_,
  );
  NSSplitViewDelegate.splitView_shouldHideDividerAtIndex_.implement(
    builder,
    splitView_shouldHideDividerAtIndex_,
  );
  NSSplitViewDelegate.splitView_effectiveRect_forDrawnRect_ofDividerAtIndex_
      .implement(
        builder,
        splitView_effectiveRect_forDrawnRect_ofDividerAtIndex_,
      );
  NSSplitViewDelegate.splitView_additionalEffectiveRectOfDividerAtIndex_
      .implement(builder, splitView_additionalEffectiveRectOfDividerAtIndex_);
  NSSplitViewDelegate.splitViewWillResizeSubviews_.implementAsBlocking(
    builder,
    splitViewWillResizeSubviews_,
  );
  NSSplitViewDelegate.splitViewDidResizeSubviews_.implementAsBlocking(
    builder,
    splitViewDidResizeSubviews_,
  );
  builder.addProtocol($protocol);
  return NSSplitViewDelegate.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}