implement static method

NSBrowserDelegate implement({
  1. DartNSInteger browser_numberOfRowsInColumn_(
    1. NSBrowser,
    2. DartNSInteger
    )?,
  2. void browser_createRowsForColumn_inMatrix_(
    1. NSBrowser,
    2. DartNSInteger,
    3. NSMatrix
    )?,
  3. DartNSInteger browser_numberOfChildrenOfItem_(
    1. NSBrowser,
    2. ObjCObjectBase?
    )?,
  4. ObjCObjectBase browser_child_ofItem_(
    1. NSBrowser,
    2. DartNSInteger,
    3. ObjCObjectBase?
    )?,
  5. bool browser_isLeafItem_(
    1. NSBrowser,
    2. ObjCObjectBase?
    )?,
  6. ObjCObjectBase? browser_objectValueForItem_(
    1. NSBrowser,
    2. ObjCObjectBase?
    )?,
  7. DartCGFloat browser_heightOfRow_inColumn_(
    1. NSBrowser,
    2. DartNSInteger,
    3. DartNSInteger
    )?,
  8. ObjCObjectBase? rootItemForBrowser_(
    1. NSBrowser
    )?,
  9. void browser_setObjectValue_forItem_(
    1. NSBrowser,
    2. ObjCObjectBase?,
    3. ObjCObjectBase?
    )?,
  10. bool browser_shouldEditItem_(
    1. NSBrowser,
    2. ObjCObjectBase?
    )?,
  11. void browser_willDisplayCell_atRow_column_(
    1. NSBrowser,
    2. ObjCObjectBase,
    3. DartNSInteger,
    4. DartNSInteger,
    )?,
  12. NSString? browser_titleOfColumn_(
    1. NSBrowser,
    2. DartNSInteger
    )?,
  13. bool browser_selectCellWithString_inColumn_(
    1. NSBrowser,
    2. NSString,
    3. DartNSInteger
    )?,
  14. bool browser_selectRow_inColumn_(
    1. NSBrowser,
    2. DartNSInteger,
    3. DartNSInteger
    )?,
  15. bool browser_isColumnValid_(
    1. NSBrowser,
    2. DartNSInteger
    )?,
  16. void browserWillScroll_(
    1. NSBrowser
    )?,
  17. void browserDidScroll_(
    1. NSBrowser
    )?,
  18. DartCGFloat browser_shouldSizeColumn_forUserResize_toWidth_(
    1. NSBrowser,
    2. DartNSInteger,
    3. bool,
    4. DartCGFloat,
    )?,
  19. DartCGFloat browser_sizeToFitWidthOfColumn_(
    1. NSBrowser,
    2. DartNSInteger
    )?,
  20. void browserColumnConfigurationDidChange_(
    1. NSNotification
    )?,
  21. bool browser_shouldShowCellExpansionForRow_column_(
    1. NSBrowser,
    2. DartNSInteger,
    3. DartNSInteger
    )?,
  22. bool browser_writeRowsWithIndexes_inColumn_toPasteboard_(
    1. NSBrowser,
    2. NSIndexSet,
    3. DartNSInteger,
    4. NSPasteboard,
    )?,
  23. NSArray browser_namesOfPromisedFilesDroppedAtDestination_forDraggedRowsWithIndexes_inColumn_(
    1. NSBrowser,
    2. NSURL,
    3. NSIndexSet,
    4. DartNSInteger,
    )?,
  24. bool browser_canDragRowsWithIndexes_inColumn_withEvent_(
    1. NSBrowser,
    2. NSIndexSet,
    3. DartNSInteger,
    4. NSEvent,
    )?,
  25. NSImage? browser_draggingImageForRowsWithIndexes_inColumn_withEvent_offset_(
    1. NSBrowser,
    2. NSIndexSet,
    3. DartNSInteger,
    4. NSEvent,
    5. NSPointPointer,
    )?,
  26. NSDragOperation browser_validateDrop_proposedRow_column_dropOperation_(
    1. NSBrowser,
    2. NSDraggingInfo,
    3. Pointer<NSInteger>,
    4. Pointer<NSInteger>,
    5. Pointer<NSUInteger>,
    )?,
  27. bool browser_acceptDrop_atRow_column_dropOperation_(
    1. NSBrowser,
    2. NSDraggingInfo,
    3. DartNSInteger,
    4. DartNSInteger,
    5. NSBrowserDropOperation,
    )?,
  28. NSString? browser_typeSelectStringForRow_inColumn_(
    1. NSBrowser,
    2. DartNSInteger,
    3. DartNSInteger
    )?,
  29. bool browser_shouldTypeSelectForEvent_withCurrentSearchString_(
    1. NSBrowser,
    2. NSEvent,
    3. NSString?
    )?,
  30. DartNSInteger browser_nextTypeSelectMatchFromRow_toRow_inColumn_forString_(
    1. NSBrowser,
    2. DartNSInteger,
    3. DartNSInteger,
    4. DartNSInteger,
    5. NSString?,
    )?,
  31. NSViewController? browser_previewViewControllerForLeafItem_(
    1. NSBrowser,
    2. ObjCObjectBase
    )?,
  32. NSViewController? browser_headerViewControllerForItem_(
    1. NSBrowser,
    2. ObjCObjectBase?
    )?,
  33. void browser_didChangeLastColumn_toColumn_(
    1. NSBrowser,
    2. DartNSInteger,
    3. DartNSInteger
    )?,
  34. NSIndexSet browser_selectionIndexesForProposedSelection_inColumn_(
    1. NSBrowser,
    2. NSIndexSet,
    3. DartNSInteger
    )?,
  35. bool $keepIsolateAlive = true,
})

Builds an object that implements the NSBrowserDelegate 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 NSBrowserDelegate implement({
  DartNSInteger Function(NSBrowser, DartNSInteger)?
  browser_numberOfRowsInColumn_,
  void Function(NSBrowser, DartNSInteger, NSMatrix)?
  browser_createRowsForColumn_inMatrix_,
  DartNSInteger Function(NSBrowser, objc.ObjCObjectBase?)?
  browser_numberOfChildrenOfItem_,
  objc.ObjCObjectBase Function(
    NSBrowser,
    DartNSInteger,
    objc.ObjCObjectBase?,
  )?
  browser_child_ofItem_,
  bool Function(NSBrowser, objc.ObjCObjectBase?)? browser_isLeafItem_,
  objc.ObjCObjectBase? Function(NSBrowser, objc.ObjCObjectBase?)?
  browser_objectValueForItem_,
  DartCGFloat Function(NSBrowser, DartNSInteger, DartNSInteger)?
  browser_heightOfRow_inColumn_,
  objc.ObjCObjectBase? Function(NSBrowser)? rootItemForBrowser_,
  void Function(NSBrowser, objc.ObjCObjectBase?, objc.ObjCObjectBase?)?
  browser_setObjectValue_forItem_,
  bool Function(NSBrowser, objc.ObjCObjectBase?)? browser_shouldEditItem_,
  void Function(NSBrowser, objc.ObjCObjectBase, DartNSInteger, DartNSInteger)?
  browser_willDisplayCell_atRow_column_,
  objc.NSString? Function(NSBrowser, DartNSInteger)? browser_titleOfColumn_,
  bool Function(NSBrowser, objc.NSString, DartNSInteger)?
  browser_selectCellWithString_inColumn_,
  bool Function(NSBrowser, DartNSInteger, DartNSInteger)?
  browser_selectRow_inColumn_,
  bool Function(NSBrowser, DartNSInteger)? browser_isColumnValid_,
  void Function(NSBrowser)? browserWillScroll_,
  void Function(NSBrowser)? browserDidScroll_,
  DartCGFloat Function(NSBrowser, DartNSInteger, bool, DartCGFloat)?
  browser_shouldSizeColumn_forUserResize_toWidth_,
  DartCGFloat Function(NSBrowser, DartNSInteger)?
  browser_sizeToFitWidthOfColumn_,
  void Function(objc.NSNotification)? browserColumnConfigurationDidChange_,
  bool Function(NSBrowser, DartNSInteger, DartNSInteger)?
  browser_shouldShowCellExpansionForRow_column_,
  bool Function(NSBrowser, objc.NSIndexSet, DartNSInteger, NSPasteboard)?
  browser_writeRowsWithIndexes_inColumn_toPasteboard_,
  objc.NSArray Function(
    NSBrowser,
    objc.NSURL,
    objc.NSIndexSet,
    DartNSInteger,
  )?
  browser_namesOfPromisedFilesDroppedAtDestination_forDraggedRowsWithIndexes_inColumn_,
  bool Function(NSBrowser, objc.NSIndexSet, DartNSInteger, NSEvent)?
  browser_canDragRowsWithIndexes_inColumn_withEvent_,
  NSImage? Function(
    NSBrowser,
    objc.NSIndexSet,
    DartNSInteger,
    NSEvent,
    NSPointPointer,
  )?
  browser_draggingImageForRowsWithIndexes_inColumn_withEvent_offset_,
  NSDragOperation Function(
    NSBrowser,
    NSDraggingInfo,
    ffi.Pointer<NSInteger>,
    ffi.Pointer<NSInteger>,
    ffi.Pointer<NSUInteger>,
  )?
  browser_validateDrop_proposedRow_column_dropOperation_,
  bool Function(
    NSBrowser,
    NSDraggingInfo,
    DartNSInteger,
    DartNSInteger,
    NSBrowserDropOperation,
  )?
  browser_acceptDrop_atRow_column_dropOperation_,
  objc.NSString? Function(NSBrowser, DartNSInteger, DartNSInteger)?
  browser_typeSelectStringForRow_inColumn_,
  bool Function(NSBrowser, NSEvent, objc.NSString?)?
  browser_shouldTypeSelectForEvent_withCurrentSearchString_,
  DartNSInteger Function(
    NSBrowser,
    DartNSInteger,
    DartNSInteger,
    DartNSInteger,
    objc.NSString?,
  )?
  browser_nextTypeSelectMatchFromRow_toRow_inColumn_forString_,
  NSViewController? Function(NSBrowser, objc.ObjCObjectBase)?
  browser_previewViewControllerForLeafItem_,
  NSViewController? Function(NSBrowser, objc.ObjCObjectBase?)?
  browser_headerViewControllerForItem_,
  void Function(NSBrowser, DartNSInteger, DartNSInteger)?
  browser_didChangeLastColumn_toColumn_,
  objc.NSIndexSet Function(NSBrowser, objc.NSIndexSet, DartNSInteger)?
  browser_selectionIndexesForProposedSelection_inColumn_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(debugName: 'NSBrowserDelegate');
  NSBrowserDelegate.browser_numberOfRowsInColumn_.implement(
    builder,
    browser_numberOfRowsInColumn_,
  );
  NSBrowserDelegate.browser_createRowsForColumn_inMatrix_.implement(
    builder,
    browser_createRowsForColumn_inMatrix_,
  );
  NSBrowserDelegate.browser_numberOfChildrenOfItem_.implement(
    builder,
    browser_numberOfChildrenOfItem_,
  );
  NSBrowserDelegate.browser_child_ofItem_.implement(
    builder,
    browser_child_ofItem_,
  );
  NSBrowserDelegate.browser_isLeafItem_.implement(
    builder,
    browser_isLeafItem_,
  );
  NSBrowserDelegate.browser_objectValueForItem_.implement(
    builder,
    browser_objectValueForItem_,
  );
  NSBrowserDelegate.browser_heightOfRow_inColumn_.implement(
    builder,
    browser_heightOfRow_inColumn_,
  );
  NSBrowserDelegate.rootItemForBrowser_.implement(
    builder,
    rootItemForBrowser_,
  );
  NSBrowserDelegate.browser_setObjectValue_forItem_.implement(
    builder,
    browser_setObjectValue_forItem_,
  );
  NSBrowserDelegate.browser_shouldEditItem_.implement(
    builder,
    browser_shouldEditItem_,
  );
  NSBrowserDelegate.browser_willDisplayCell_atRow_column_.implement(
    builder,
    browser_willDisplayCell_atRow_column_,
  );
  NSBrowserDelegate.browser_titleOfColumn_.implement(
    builder,
    browser_titleOfColumn_,
  );
  NSBrowserDelegate.browser_selectCellWithString_inColumn_.implement(
    builder,
    browser_selectCellWithString_inColumn_,
  );
  NSBrowserDelegate.browser_selectRow_inColumn_.implement(
    builder,
    browser_selectRow_inColumn_,
  );
  NSBrowserDelegate.browser_isColumnValid_.implement(
    builder,
    browser_isColumnValid_,
  );
  NSBrowserDelegate.browserWillScroll_.implement(builder, browserWillScroll_);
  NSBrowserDelegate.browserDidScroll_.implement(builder, browserDidScroll_);
  NSBrowserDelegate.browser_shouldSizeColumn_forUserResize_toWidth_.implement(
    builder,
    browser_shouldSizeColumn_forUserResize_toWidth_,
  );
  NSBrowserDelegate.browser_sizeToFitWidthOfColumn_.implement(
    builder,
    browser_sizeToFitWidthOfColumn_,
  );
  NSBrowserDelegate.browserColumnConfigurationDidChange_.implement(
    builder,
    browserColumnConfigurationDidChange_,
  );
  NSBrowserDelegate.browser_shouldShowCellExpansionForRow_column_.implement(
    builder,
    browser_shouldShowCellExpansionForRow_column_,
  );
  NSBrowserDelegate.browser_writeRowsWithIndexes_inColumn_toPasteboard_
      .implement(
        builder,
        browser_writeRowsWithIndexes_inColumn_toPasteboard_,
      );
  NSBrowserDelegate
      .browser_namesOfPromisedFilesDroppedAtDestination_forDraggedRowsWithIndexes_inColumn_
      .implement(
        builder,
        browser_namesOfPromisedFilesDroppedAtDestination_forDraggedRowsWithIndexes_inColumn_,
      );
  NSBrowserDelegate.browser_canDragRowsWithIndexes_inColumn_withEvent_
      .implement(builder, browser_canDragRowsWithIndexes_inColumn_withEvent_);
  NSBrowserDelegate
      .browser_draggingImageForRowsWithIndexes_inColumn_withEvent_offset_
      .implement(
        builder,
        browser_draggingImageForRowsWithIndexes_inColumn_withEvent_offset_,
      );
  NSBrowserDelegate.browser_validateDrop_proposedRow_column_dropOperation_
      .implement(
        builder,
        browser_validateDrop_proposedRow_column_dropOperation_,
      );
  NSBrowserDelegate.browser_acceptDrop_atRow_column_dropOperation_.implement(
    builder,
    browser_acceptDrop_atRow_column_dropOperation_,
  );
  NSBrowserDelegate.browser_typeSelectStringForRow_inColumn_.implement(
    builder,
    browser_typeSelectStringForRow_inColumn_,
  );
  NSBrowserDelegate.browser_shouldTypeSelectForEvent_withCurrentSearchString_
      .implement(
        builder,
        browser_shouldTypeSelectForEvent_withCurrentSearchString_,
      );
  NSBrowserDelegate
      .browser_nextTypeSelectMatchFromRow_toRow_inColumn_forString_
      .implement(
        builder,
        browser_nextTypeSelectMatchFromRow_toRow_inColumn_forString_,
      );
  NSBrowserDelegate.browser_previewViewControllerForLeafItem_.implement(
    builder,
    browser_previewViewControllerForLeafItem_,
  );
  NSBrowserDelegate.browser_headerViewControllerForItem_.implement(
    builder,
    browser_headerViewControllerForItem_,
  );
  NSBrowserDelegate.browser_didChangeLastColumn_toColumn_.implement(
    builder,
    browser_didChangeLastColumn_toColumn_,
  );
  NSBrowserDelegate.browser_selectionIndexesForProposedSelection_inColumn_
      .implement(
        builder,
        browser_selectionIndexesForProposedSelection_inColumn_,
      );
  builder.addProtocol($protocol);
  return NSBrowserDelegate.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}