implementAsBlocking static method

NSControlTextEditingDelegate implementAsBlocking({
  1. void controlTextDidBeginEditing_(
    1. NSNotification
    )?,
  2. void controlTextDidEndEditing_(
    1. NSNotification
    )?,
  3. void controlTextDidChange_(
    1. NSNotification
    )?,
  4. bool control_textShouldBeginEditing_(
    1. NSControl,
    2. NSText
    )?,
  5. bool control_textShouldEndEditing_(
    1. NSControl,
    2. NSText
    )?,
  6. bool control_didFailToFormatString_errorDescription_(
    1. NSControl,
    2. NSString,
    3. NSString?
    )?,
  7. void control_didFailToValidatePartialString_errorDescription_(
    1. NSControl,
    2. NSString,
    3. NSString?
    )?,
  8. bool control_isValidObject_(
    1. NSControl,
    2. ObjCObjectBase?
    )?,
  9. bool control_textView_doCommandBySelector_(
    1. NSControl,
    2. NSTextView,
    3. Pointer<ObjCSelector>
    )?,
  10. NSArray control_textView_completions_forPartialWordRange_indexOfSelectedItem_(
    1. NSControl,
    2. NSTextView,
    3. NSArray,
    4. NSRange,
    5. Pointer<NSInteger>,
    )?,
  11. bool $keepIsolateAlive = true,
})

Builds an object that implements the NSControlTextEditingDelegate 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 NSControlTextEditingDelegate implementAsBlocking({
  void Function(objc.NSNotification)? controlTextDidBeginEditing_,
  void Function(objc.NSNotification)? controlTextDidEndEditing_,
  void Function(objc.NSNotification)? controlTextDidChange_,
  bool Function(NSControl, NSText)? control_textShouldBeginEditing_,
  bool Function(NSControl, NSText)? control_textShouldEndEditing_,
  bool Function(NSControl, objc.NSString, objc.NSString?)?
  control_didFailToFormatString_errorDescription_,
  void Function(NSControl, objc.NSString, objc.NSString?)?
  control_didFailToValidatePartialString_errorDescription_,
  bool Function(NSControl, objc.ObjCObjectBase?)? control_isValidObject_,
  bool Function(NSControl, NSTextView, ffi.Pointer<objc.ObjCSelector>)?
  control_textView_doCommandBySelector_,
  objc.NSArray Function(
    NSControl,
    NSTextView,
    objc.NSArray,
    NSRange,
    ffi.Pointer<NSInteger>,
  )?
  control_textView_completions_forPartialWordRange_indexOfSelectedItem_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(
    debugName: 'NSControlTextEditingDelegate',
  );
  NSControlTextEditingDelegate.controlTextDidBeginEditing_
      .implementAsBlocking(builder, controlTextDidBeginEditing_);
  NSControlTextEditingDelegate.controlTextDidEndEditing_.implementAsBlocking(
    builder,
    controlTextDidEndEditing_,
  );
  NSControlTextEditingDelegate.controlTextDidChange_.implementAsBlocking(
    builder,
    controlTextDidChange_,
  );
  NSControlTextEditingDelegate.control_textShouldBeginEditing_.implement(
    builder,
    control_textShouldBeginEditing_,
  );
  NSControlTextEditingDelegate.control_textShouldEndEditing_.implement(
    builder,
    control_textShouldEndEditing_,
  );
  NSControlTextEditingDelegate.control_didFailToFormatString_errorDescription_
      .implement(builder, control_didFailToFormatString_errorDescription_);
  NSControlTextEditingDelegate
      .control_didFailToValidatePartialString_errorDescription_
      .implementAsBlocking(
        builder,
        control_didFailToValidatePartialString_errorDescription_,
      );
  NSControlTextEditingDelegate.control_isValidObject_.implement(
    builder,
    control_isValidObject_,
  );
  NSControlTextEditingDelegate.control_textView_doCommandBySelector_
      .implement(builder, control_textView_doCommandBySelector_);
  NSControlTextEditingDelegate
      .control_textView_completions_forPartialWordRange_indexOfSelectedItem_
      .implement(
        builder,
        control_textView_completions_forPartialWordRange_indexOfSelectedItem_,
      );
  builder.addProtocol($protocol);
  return NSControlTextEditingDelegate.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}