1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6#[cfg(feature = "objc2-core-foundation")]
7use objc2_core_foundation::*;
8use objc2_foundation::*;
9
10use crate::*;
11
12pub const NSOutlineViewDropOnItemIndex: c_int = -1;
14
15extern_class!(
16 #[unsafe(super(NSTableView, NSControl, NSView, NSResponder, NSObject))]
18 #[derive(Debug, PartialEq, Eq, Hash)]
19 #[cfg(all(
20 feature = "NSControl",
21 feature = "NSResponder",
22 feature = "NSTableView",
23 feature = "NSView"
24 ))]
25 pub struct NSOutlineView;
26);
27
28#[cfg(all(
29 feature = "NSAccessibilityProtocols",
30 feature = "NSControl",
31 feature = "NSResponder",
32 feature = "NSTableView",
33 feature = "NSView"
34))]
35extern_conformance!(
36 unsafe impl NSAccessibility for NSOutlineView {}
37);
38
39#[cfg(all(
40 feature = "NSAccessibilityProtocols",
41 feature = "NSControl",
42 feature = "NSResponder",
43 feature = "NSTableView",
44 feature = "NSView"
45))]
46extern_conformance!(
47 unsafe impl NSAccessibilityElementProtocol for NSOutlineView {}
48);
49
50#[cfg(all(
51 feature = "NSAccessibilityProtocols",
52 feature = "NSControl",
53 feature = "NSResponder",
54 feature = "NSTableView",
55 feature = "NSView"
56))]
57extern_conformance!(
58 unsafe impl NSAccessibilityGroup for NSOutlineView {}
59);
60
61#[cfg(all(
62 feature = "NSAccessibilityProtocols",
63 feature = "NSControl",
64 feature = "NSResponder",
65 feature = "NSTableView",
66 feature = "NSView"
67))]
68extern_conformance!(
69 unsafe impl NSAccessibilityOutline for NSOutlineView {}
70);
71
72#[cfg(all(
73 feature = "NSAccessibilityProtocols",
74 feature = "NSControl",
75 feature = "NSResponder",
76 feature = "NSTableView",
77 feature = "NSView"
78))]
79extern_conformance!(
80 unsafe impl NSAccessibilityTable for NSOutlineView {}
81);
82
83#[cfg(all(
84 feature = "NSAnimation",
85 feature = "NSControl",
86 feature = "NSResponder",
87 feature = "NSTableView",
88 feature = "NSView"
89))]
90extern_conformance!(
91 unsafe impl NSAnimatablePropertyContainer for NSOutlineView {}
92);
93
94#[cfg(all(
95 feature = "NSAppearance",
96 feature = "NSControl",
97 feature = "NSResponder",
98 feature = "NSTableView",
99 feature = "NSView"
100))]
101extern_conformance!(
102 unsafe impl NSAppearanceCustomization for NSOutlineView {}
103);
104
105#[cfg(all(
106 feature = "NSControl",
107 feature = "NSResponder",
108 feature = "NSTableView",
109 feature = "NSView"
110))]
111extern_conformance!(
112 unsafe impl NSCoding for NSOutlineView {}
113);
114
115#[cfg(all(
116 feature = "NSControl",
117 feature = "NSDragging",
118 feature = "NSResponder",
119 feature = "NSTableView",
120 feature = "NSView"
121))]
122extern_conformance!(
123 unsafe impl NSDraggingDestination for NSOutlineView {}
124);
125
126#[cfg(all(
127 feature = "NSControl",
128 feature = "NSDragging",
129 feature = "NSResponder",
130 feature = "NSTableView",
131 feature = "NSView"
132))]
133extern_conformance!(
134 unsafe impl NSDraggingSource for NSOutlineView {}
135);
136
137#[cfg(all(
138 feature = "NSControl",
139 feature = "NSResponder",
140 feature = "NSTableView",
141 feature = "NSView"
142))]
143extern_conformance!(
144 unsafe impl NSObjectProtocol for NSOutlineView {}
145);
146
147#[cfg(all(
148 feature = "NSControl",
149 feature = "NSResponder",
150 feature = "NSTableView",
151 feature = "NSText",
152 feature = "NSView"
153))]
154extern_conformance!(
155 unsafe impl NSTextDelegate for NSOutlineView {}
156);
157
158#[cfg(all(
159 feature = "NSControl",
160 feature = "NSResponder",
161 feature = "NSTableView",
162 feature = "NSText",
163 feature = "NSTextView",
164 feature = "NSView"
165))]
166extern_conformance!(
167 unsafe impl NSTextViewDelegate for NSOutlineView {}
168);
169
170#[cfg(all(
171 feature = "NSControl",
172 feature = "NSResponder",
173 feature = "NSTableView",
174 feature = "NSUserInterfaceItemIdentification",
175 feature = "NSView"
176))]
177extern_conformance!(
178 unsafe impl NSUserInterfaceItemIdentification for NSOutlineView {}
179);
180
181#[cfg(all(
182 feature = "NSControl",
183 feature = "NSResponder",
184 feature = "NSTableView",
185 feature = "NSUserInterfaceValidation",
186 feature = "NSView"
187))]
188extern_conformance!(
189 unsafe impl NSUserInterfaceValidations for NSOutlineView {}
190);
191
192#[cfg(all(
193 feature = "NSControl",
194 feature = "NSResponder",
195 feature = "NSTableView",
196 feature = "NSView"
197))]
198impl NSOutlineView {
199 extern_methods!(
200 #[unsafe(method(delegate))]
201 #[unsafe(method_family = none)]
202 pub unsafe fn delegate(
203 &self,
204 ) -> Option<Retained<ProtocolObject<dyn NSOutlineViewDelegate>>>;
205
206 #[unsafe(method(setDelegate:))]
210 #[unsafe(method_family = none)]
211 pub unsafe fn setDelegate(
212 &self,
213 delegate: Option<&ProtocolObject<dyn NSOutlineViewDelegate>>,
214 );
215
216 #[unsafe(method(dataSource))]
217 #[unsafe(method_family = none)]
218 pub unsafe fn dataSource(
219 &self,
220 ) -> Option<Retained<ProtocolObject<dyn NSOutlineViewDataSource>>>;
221
222 #[unsafe(method(setDataSource:))]
226 #[unsafe(method_family = none)]
227 pub unsafe fn setDataSource(
228 &self,
229 data_source: Option<&ProtocolObject<dyn NSOutlineViewDataSource>>,
230 );
231
232 #[cfg(feature = "NSTableColumn")]
233 #[unsafe(method(outlineTableColumn))]
237 #[unsafe(method_family = none)]
238 pub unsafe fn outlineTableColumn(&self) -> Option<Retained<NSTableColumn>>;
239
240 #[cfg(feature = "NSTableColumn")]
241 #[unsafe(method(setOutlineTableColumn:))]
247 #[unsafe(method_family = none)]
248 pub unsafe fn setOutlineTableColumn(&self, outline_table_column: Option<&NSTableColumn>);
249
250 #[unsafe(method(isExpandable:))]
254 #[unsafe(method_family = none)]
255 pub unsafe fn isExpandable(&self, item: Option<&AnyObject>) -> bool;
256
257 #[unsafe(method(numberOfChildrenOfItem:))]
261 #[unsafe(method_family = none)]
262 pub unsafe fn numberOfChildrenOfItem(&self, item: Option<&AnyObject>) -> NSInteger;
263
264 #[unsafe(method(child:ofItem:))]
268 #[unsafe(method_family = none)]
269 pub unsafe fn child_ofItem(
270 &self,
271 index: NSInteger,
272 item: Option<&AnyObject>,
273 ) -> Option<Retained<AnyObject>>;
274
275 #[unsafe(method(expandItem:expandChildren:))]
279 #[unsafe(method_family = none)]
280 pub unsafe fn expandItem_expandChildren(
281 &self,
282 item: Option<&AnyObject>,
283 expand_children: bool,
284 );
285
286 #[unsafe(method(expandItem:))]
290 #[unsafe(method_family = none)]
291 pub unsafe fn expandItem(&self, item: Option<&AnyObject>);
292
293 #[unsafe(method(collapseItem:collapseChildren:))]
297 #[unsafe(method_family = none)]
298 pub unsafe fn collapseItem_collapseChildren(
299 &self,
300 item: Option<&AnyObject>,
301 collapse_children: bool,
302 );
303
304 #[unsafe(method(collapseItem:))]
308 #[unsafe(method_family = none)]
309 pub unsafe fn collapseItem(&self, item: Option<&AnyObject>);
310
311 #[unsafe(method(reloadItem:reloadChildren:))]
315 #[unsafe(method_family = none)]
316 pub unsafe fn reloadItem_reloadChildren(
317 &self,
318 item: Option<&AnyObject>,
319 reload_children: bool,
320 );
321
322 #[unsafe(method(reloadItem:))]
326 #[unsafe(method_family = none)]
327 pub unsafe fn reloadItem(&self, item: Option<&AnyObject>);
328
329 #[unsafe(method(parentForItem:))]
333 #[unsafe(method_family = none)]
334 pub unsafe fn parentForItem(&self, item: Option<&AnyObject>)
335 -> Option<Retained<AnyObject>>;
336
337 #[unsafe(method(childIndexForItem:))]
341 #[unsafe(method_family = none)]
342 pub unsafe fn childIndexForItem(&self, item: &AnyObject) -> NSInteger;
343
344 #[unsafe(method(itemAtRow:))]
345 #[unsafe(method_family = none)]
346 pub fn itemAtRow(&self, row: NSInteger) -> Option<Retained<AnyObject>>;
347
348 #[unsafe(method(rowForItem:))]
352 #[unsafe(method_family = none)]
353 pub unsafe fn rowForItem(&self, item: Option<&AnyObject>) -> NSInteger;
354
355 #[unsafe(method(levelForItem:))]
359 #[unsafe(method_family = none)]
360 pub unsafe fn levelForItem(&self, item: Option<&AnyObject>) -> NSInteger;
361
362 #[unsafe(method(levelForRow:))]
363 #[unsafe(method_family = none)]
364 pub fn levelForRow(&self, row: NSInteger) -> NSInteger;
365
366 #[unsafe(method(isItemExpanded:))]
370 #[unsafe(method_family = none)]
371 pub unsafe fn isItemExpanded(&self, item: Option<&AnyObject>) -> bool;
372
373 #[cfg(feature = "objc2-core-foundation")]
374 #[unsafe(method(indentationPerLevel))]
375 #[unsafe(method_family = none)]
376 pub fn indentationPerLevel(&self) -> CGFloat;
377
378 #[cfg(feature = "objc2-core-foundation")]
379 #[unsafe(method(setIndentationPerLevel:))]
381 #[unsafe(method_family = none)]
382 pub fn setIndentationPerLevel(&self, indentation_per_level: CGFloat);
383
384 #[unsafe(method(indentationMarkerFollowsCell))]
385 #[unsafe(method_family = none)]
386 pub fn indentationMarkerFollowsCell(&self) -> bool;
387
388 #[unsafe(method(setIndentationMarkerFollowsCell:))]
390 #[unsafe(method_family = none)]
391 pub fn setIndentationMarkerFollowsCell(&self, indentation_marker_follows_cell: bool);
392
393 #[unsafe(method(autoresizesOutlineColumn))]
394 #[unsafe(method_family = none)]
395 pub fn autoresizesOutlineColumn(&self) -> bool;
396
397 #[unsafe(method(setAutoresizesOutlineColumn:))]
399 #[unsafe(method_family = none)]
400 pub fn setAutoresizesOutlineColumn(&self, autoresizes_outline_column: bool);
401
402 #[unsafe(method(frameOfOutlineCellAtRow:))]
403 #[unsafe(method_family = none)]
404 pub fn frameOfOutlineCellAtRow(&self, row: NSInteger) -> NSRect;
405
406 #[unsafe(method(setDropItem:dropChildIndex:))]
410 #[unsafe(method_family = none)]
411 pub unsafe fn setDropItem_dropChildIndex(&self, item: Option<&AnyObject>, index: NSInteger);
412
413 #[unsafe(method(shouldCollapseAutoExpandedItemsForDeposited:))]
414 #[unsafe(method_family = none)]
415 pub fn shouldCollapseAutoExpandedItemsForDeposited(&self, deposited: bool) -> bool;
416
417 #[unsafe(method(autosaveExpandedItems))]
418 #[unsafe(method_family = none)]
419 pub fn autosaveExpandedItems(&self) -> bool;
420
421 #[unsafe(method(setAutosaveExpandedItems:))]
423 #[unsafe(method_family = none)]
424 pub fn setAutosaveExpandedItems(&self, autosave_expanded_items: bool);
425
426 #[unsafe(method(insertItemsAtIndexes:inParent:withAnimation:))]
430 #[unsafe(method_family = none)]
431 pub unsafe fn insertItemsAtIndexes_inParent_withAnimation(
432 &self,
433 indexes: &NSIndexSet,
434 parent: Option<&AnyObject>,
435 animation_options: NSTableViewAnimationOptions,
436 );
437
438 #[unsafe(method(removeItemsAtIndexes:inParent:withAnimation:))]
442 #[unsafe(method_family = none)]
443 pub unsafe fn removeItemsAtIndexes_inParent_withAnimation(
444 &self,
445 indexes: &NSIndexSet,
446 parent: Option<&AnyObject>,
447 animation_options: NSTableViewAnimationOptions,
448 );
449
450 #[unsafe(method(moveItemAtIndex:inParent:toIndex:inParent:))]
455 #[unsafe(method_family = none)]
456 pub unsafe fn moveItemAtIndex_inParent_toIndex_inParent(
457 &self,
458 from_index: NSInteger,
459 old_parent: Option<&AnyObject>,
460 to_index: NSInteger,
461 new_parent: Option<&AnyObject>,
462 );
463
464 #[unsafe(method(insertRowsAtIndexes:withAnimation:))]
465 #[unsafe(method_family = none)]
466 pub unsafe fn insertRowsAtIndexes_withAnimation(
467 &self,
468 indexes: &NSIndexSet,
469 animation_options: NSTableViewAnimationOptions,
470 );
471
472 #[unsafe(method(removeRowsAtIndexes:withAnimation:))]
473 #[unsafe(method_family = none)]
474 pub unsafe fn removeRowsAtIndexes_withAnimation(
475 &self,
476 indexes: &NSIndexSet,
477 animation_options: NSTableViewAnimationOptions,
478 );
479
480 #[unsafe(method(moveRowAtIndex:toIndex:))]
481 #[unsafe(method_family = none)]
482 pub unsafe fn moveRowAtIndex_toIndex(&self, old_index: NSInteger, new_index: NSInteger);
483
484 #[cfg(feature = "NSUserInterfaceLayout")]
485 #[unsafe(method(userInterfaceLayoutDirection))]
486 #[unsafe(method_family = none)]
487 pub fn userInterfaceLayoutDirection(&self) -> NSUserInterfaceLayoutDirection;
488
489 #[cfg(feature = "NSUserInterfaceLayout")]
490 #[unsafe(method(setUserInterfaceLayoutDirection:))]
492 #[unsafe(method_family = none)]
493 pub fn setUserInterfaceLayoutDirection(
494 &self,
495 user_interface_layout_direction: NSUserInterfaceLayoutDirection,
496 );
497
498 #[unsafe(method(stronglyReferencesItems))]
499 #[unsafe(method_family = none)]
500 pub fn stronglyReferencesItems(&self) -> bool;
501
502 #[unsafe(method(setStronglyReferencesItems:))]
504 #[unsafe(method_family = none)]
505 pub unsafe fn setStronglyReferencesItems(&self, strongly_references_items: bool);
506 );
507}
508
509#[cfg(all(
511 feature = "NSControl",
512 feature = "NSResponder",
513 feature = "NSTableView",
514 feature = "NSView"
515))]
516impl NSOutlineView {
517 extern_methods!(
518 #[unsafe(method(initWithFrame:))]
519 #[unsafe(method_family = init)]
520 pub fn initWithFrame(this: Allocated<Self>, frame_rect: NSRect) -> Retained<Self>;
521
522 #[unsafe(method(initWithCoder:))]
526 #[unsafe(method_family = init)]
527 pub unsafe fn initWithCoder(
528 this: Allocated<Self>,
529 coder: &NSCoder,
530 ) -> Option<Retained<Self>>;
531 );
532}
533
534#[cfg(all(
536 feature = "NSControl",
537 feature = "NSResponder",
538 feature = "NSTableView",
539 feature = "NSView"
540))]
541impl NSOutlineView {
542 extern_methods!(
543 #[unsafe(method(init))]
544 #[unsafe(method_family = init)]
545 pub fn init(this: Allocated<Self>) -> Retained<Self>;
546 );
547}
548
549#[cfg(all(
551 feature = "NSControl",
552 feature = "NSResponder",
553 feature = "NSTableView",
554 feature = "NSView"
555))]
556impl NSOutlineView {
557 extern_methods!(
558 #[unsafe(method(new))]
559 #[unsafe(method_family = new)]
560 pub fn new(mtm: MainThreadMarker) -> Retained<Self>;
561 );
562}
563
564extern_protocol!(
565 pub unsafe trait NSOutlineViewDataSource: NSObjectProtocol {
567 #[cfg(all(
568 feature = "NSControl",
569 feature = "NSResponder",
570 feature = "NSTableView",
571 feature = "NSView"
572 ))]
573 #[optional]
577 #[unsafe(method(outlineView:numberOfChildrenOfItem:))]
578 #[unsafe(method_family = none)]
579 unsafe fn outlineView_numberOfChildrenOfItem(
580 &self,
581 outline_view: &NSOutlineView,
582 item: Option<&AnyObject>,
583 ) -> NSInteger;
584
585 #[cfg(all(
586 feature = "NSControl",
587 feature = "NSResponder",
588 feature = "NSTableView",
589 feature = "NSView"
590 ))]
591 #[optional]
595 #[unsafe(method(outlineView:child:ofItem:))]
596 #[unsafe(method_family = none)]
597 unsafe fn outlineView_child_ofItem(
598 &self,
599 outline_view: &NSOutlineView,
600 index: NSInteger,
601 item: Option<&AnyObject>,
602 ) -> Retained<AnyObject>;
603
604 #[cfg(all(
605 feature = "NSControl",
606 feature = "NSResponder",
607 feature = "NSTableView",
608 feature = "NSView"
609 ))]
610 #[optional]
614 #[unsafe(method(outlineView:isItemExpandable:))]
615 #[unsafe(method_family = none)]
616 unsafe fn outlineView_isItemExpandable(
617 &self,
618 outline_view: &NSOutlineView,
619 item: &AnyObject,
620 ) -> bool;
621
622 #[cfg(all(
623 feature = "NSControl",
624 feature = "NSResponder",
625 feature = "NSTableColumn",
626 feature = "NSTableView",
627 feature = "NSView"
628 ))]
629 #[optional]
633 #[unsafe(method(outlineView:objectValueForTableColumn:byItem:))]
634 #[unsafe(method_family = none)]
635 unsafe fn outlineView_objectValueForTableColumn_byItem(
636 &self,
637 outline_view: &NSOutlineView,
638 table_column: Option<&NSTableColumn>,
639 item: Option<&AnyObject>,
640 ) -> Option<Retained<AnyObject>>;
641
642 #[cfg(all(
643 feature = "NSControl",
644 feature = "NSResponder",
645 feature = "NSTableColumn",
646 feature = "NSTableView",
647 feature = "NSView"
648 ))]
649 #[optional]
654 #[unsafe(method(outlineView:setObjectValue:forTableColumn:byItem:))]
655 #[unsafe(method_family = none)]
656 unsafe fn outlineView_setObjectValue_forTableColumn_byItem(
657 &self,
658 outline_view: &NSOutlineView,
659 object: Option<&AnyObject>,
660 table_column: Option<&NSTableColumn>,
661 item: Option<&AnyObject>,
662 );
663
664 #[cfg(all(
665 feature = "NSControl",
666 feature = "NSResponder",
667 feature = "NSTableView",
668 feature = "NSView"
669 ))]
670 #[optional]
674 #[unsafe(method(outlineView:itemForPersistentObject:))]
675 #[unsafe(method_family = none)]
676 unsafe fn outlineView_itemForPersistentObject(
677 &self,
678 outline_view: &NSOutlineView,
679 object: &AnyObject,
680 ) -> Option<Retained<AnyObject>>;
681
682 #[cfg(all(
683 feature = "NSControl",
684 feature = "NSResponder",
685 feature = "NSTableView",
686 feature = "NSView"
687 ))]
688 #[optional]
692 #[unsafe(method(outlineView:persistentObjectForItem:))]
693 #[unsafe(method_family = none)]
694 unsafe fn outlineView_persistentObjectForItem(
695 &self,
696 outline_view: &NSOutlineView,
697 item: Option<&AnyObject>,
698 ) -> Option<Retained<AnyObject>>;
699
700 #[cfg(all(
701 feature = "NSControl",
702 feature = "NSResponder",
703 feature = "NSTableView",
704 feature = "NSView"
705 ))]
706 #[optional]
707 #[unsafe(method(outlineView:sortDescriptorsDidChange:))]
708 #[unsafe(method_family = none)]
709 fn outlineView_sortDescriptorsDidChange(
710 &self,
711 outline_view: &NSOutlineView,
712 old_descriptors: &NSArray<NSSortDescriptor>,
713 );
714
715 #[cfg(all(
716 feature = "NSControl",
717 feature = "NSPasteboard",
718 feature = "NSResponder",
719 feature = "NSTableView",
720 feature = "NSView"
721 ))]
722 #[optional]
726 #[unsafe(method(outlineView:pasteboardWriterForItem:))]
727 #[unsafe(method_family = none)]
728 unsafe fn outlineView_pasteboardWriterForItem(
729 &self,
730 outline_view: &NSOutlineView,
731 item: &AnyObject,
732 ) -> Option<Retained<ProtocolObject<dyn NSPasteboardWriting>>>;
733
734 #[cfg(all(
735 feature = "NSControl",
736 feature = "NSDraggingSession",
737 feature = "NSResponder",
738 feature = "NSTableView",
739 feature = "NSView"
740 ))]
741 #[optional]
745 #[unsafe(method(outlineView:draggingSession:willBeginAtPoint:forItems:))]
746 #[unsafe(method_family = none)]
747 unsafe fn outlineView_draggingSession_willBeginAtPoint_forItems(
748 &self,
749 outline_view: &NSOutlineView,
750 session: &NSDraggingSession,
751 screen_point: NSPoint,
752 dragged_items: &NSArray,
753 );
754
755 #[cfg(all(
756 feature = "NSControl",
757 feature = "NSDragging",
758 feature = "NSDraggingSession",
759 feature = "NSResponder",
760 feature = "NSTableView",
761 feature = "NSView"
762 ))]
763 #[optional]
764 #[unsafe(method(outlineView:draggingSession:endedAtPoint:operation:))]
765 #[unsafe(method_family = none)]
766 fn outlineView_draggingSession_endedAtPoint_operation(
767 &self,
768 outline_view: &NSOutlineView,
769 session: &NSDraggingSession,
770 screen_point: NSPoint,
771 operation: NSDragOperation,
772 );
773
774 #[cfg(all(
775 feature = "NSControl",
776 feature = "NSPasteboard",
777 feature = "NSResponder",
778 feature = "NSTableView",
779 feature = "NSView"
780 ))]
781 #[deprecated = "Use -outlineView:pasteboardWriterForItem: instead"]
785 #[optional]
786 #[unsafe(method(outlineView:writeItems:toPasteboard:))]
787 #[unsafe(method_family = none)]
788 unsafe fn outlineView_writeItems_toPasteboard(
789 &self,
790 outline_view: &NSOutlineView,
791 items: &NSArray,
792 pasteboard: &NSPasteboard,
793 ) -> bool;
794
795 #[cfg(all(
796 feature = "NSControl",
797 feature = "NSDragging",
798 feature = "NSResponder",
799 feature = "NSTableView",
800 feature = "NSView"
801 ))]
802 #[optional]
803 #[unsafe(method(outlineView:updateDraggingItemsForDrag:))]
804 #[unsafe(method_family = none)]
805 fn outlineView_updateDraggingItemsForDrag(
806 &self,
807 outline_view: &NSOutlineView,
808 dragging_info: &ProtocolObject<dyn NSDraggingInfo>,
809 );
810
811 #[cfg(all(
812 feature = "NSControl",
813 feature = "NSDragging",
814 feature = "NSResponder",
815 feature = "NSTableView",
816 feature = "NSView"
817 ))]
818 #[optional]
822 #[unsafe(method(outlineView:validateDrop:proposedItem:proposedChildIndex:))]
823 #[unsafe(method_family = none)]
824 unsafe fn outlineView_validateDrop_proposedItem_proposedChildIndex(
825 &self,
826 outline_view: &NSOutlineView,
827 info: &ProtocolObject<dyn NSDraggingInfo>,
828 item: Option<&AnyObject>,
829 index: NSInteger,
830 ) -> NSDragOperation;
831
832 #[cfg(all(
833 feature = "NSControl",
834 feature = "NSDragging",
835 feature = "NSResponder",
836 feature = "NSTableView",
837 feature = "NSView"
838 ))]
839 #[optional]
843 #[unsafe(method(outlineView:acceptDrop:item:childIndex:))]
844 #[unsafe(method_family = none)]
845 unsafe fn outlineView_acceptDrop_item_childIndex(
846 &self,
847 outline_view: &NSOutlineView,
848 info: &ProtocolObject<dyn NSDraggingInfo>,
849 item: Option<&AnyObject>,
850 index: NSInteger,
851 ) -> bool;
852
853 #[cfg(all(
854 feature = "NSControl",
855 feature = "NSResponder",
856 feature = "NSTableView",
857 feature = "NSView"
858 ))]
859 #[deprecated = "Use NSFilePromiseReceiver objects instead"]
863 #[optional]
864 #[unsafe(method(outlineView:namesOfPromisedFilesDroppedAtDestination:forDraggedItems:))]
865 #[unsafe(method_family = none)]
866 unsafe fn outlineView_namesOfPromisedFilesDroppedAtDestination_forDraggedItems(
867 &self,
868 outline_view: &NSOutlineView,
869 drop_destination: &NSURL,
870 items: &NSArray,
871 ) -> Retained<NSArray<NSString>>;
872 }
873);
874
875extern_protocol!(
876 #[cfg(feature = "NSControl")]
878 pub unsafe trait NSOutlineViewDelegate:
879 NSControlTextEditingDelegate + MainThreadOnly
880 {
881 #[cfg(all(
882 feature = "NSResponder",
883 feature = "NSTableColumn",
884 feature = "NSTableView",
885 feature = "NSView"
886 ))]
887 #[optional]
891 #[unsafe(method(outlineView:viewForTableColumn:item:))]
892 #[unsafe(method_family = none)]
893 unsafe fn outlineView_viewForTableColumn_item(
894 &self,
895 outline_view: &NSOutlineView,
896 table_column: Option<&NSTableColumn>,
897 item: &AnyObject,
898 ) -> Option<Retained<NSView>>;
899
900 #[cfg(all(
901 feature = "NSResponder",
902 feature = "NSTableRowView",
903 feature = "NSTableView",
904 feature = "NSView"
905 ))]
906 #[optional]
910 #[unsafe(method(outlineView:rowViewForItem:))]
911 #[unsafe(method_family = none)]
912 unsafe fn outlineView_rowViewForItem(
913 &self,
914 outline_view: &NSOutlineView,
915 item: &AnyObject,
916 ) -> Option<Retained<NSTableRowView>>;
917
918 #[cfg(all(
919 feature = "NSResponder",
920 feature = "NSTableRowView",
921 feature = "NSTableView",
922 feature = "NSView"
923 ))]
924 #[optional]
925 #[unsafe(method(outlineView:didAddRowView:forRow:))]
926 #[unsafe(method_family = none)]
927 fn outlineView_didAddRowView_forRow(
928 &self,
929 outline_view: &NSOutlineView,
930 row_view: &NSTableRowView,
931 row: NSInteger,
932 );
933
934 #[cfg(all(
935 feature = "NSResponder",
936 feature = "NSTableRowView",
937 feature = "NSTableView",
938 feature = "NSView"
939 ))]
940 #[optional]
941 #[unsafe(method(outlineView:didRemoveRowView:forRow:))]
942 #[unsafe(method_family = none)]
943 fn outlineView_didRemoveRowView_forRow(
944 &self,
945 outline_view: &NSOutlineView,
946 row_view: &NSTableRowView,
947 row: NSInteger,
948 );
949
950 #[cfg(all(
951 feature = "NSResponder",
952 feature = "NSTableColumn",
953 feature = "NSTableView",
954 feature = "NSView"
955 ))]
956 #[optional]
961 #[unsafe(method(outlineView:willDisplayCell:forTableColumn:item:))]
962 #[unsafe(method_family = none)]
963 unsafe fn outlineView_willDisplayCell_forTableColumn_item(
964 &self,
965 outline_view: &NSOutlineView,
966 cell: &AnyObject,
967 table_column: Option<&NSTableColumn>,
968 item: &AnyObject,
969 );
970
971 #[cfg(all(
972 feature = "NSResponder",
973 feature = "NSTableColumn",
974 feature = "NSTableView",
975 feature = "NSView"
976 ))]
977 #[optional]
981 #[unsafe(method(outlineView:shouldEditTableColumn:item:))]
982 #[unsafe(method_family = none)]
983 unsafe fn outlineView_shouldEditTableColumn_item(
984 &self,
985 outline_view: &NSOutlineView,
986 table_column: Option<&NSTableColumn>,
987 item: &AnyObject,
988 ) -> bool;
989
990 #[cfg(all(feature = "NSResponder", feature = "NSTableView", feature = "NSView"))]
991 #[optional]
992 #[unsafe(method(selectionShouldChangeInOutlineView:))]
993 #[unsafe(method_family = none)]
994 fn selectionShouldChangeInOutlineView(&self, outline_view: &NSOutlineView) -> bool;
995
996 #[cfg(all(feature = "NSResponder", feature = "NSTableView", feature = "NSView"))]
997 #[optional]
1001 #[unsafe(method(outlineView:shouldSelectItem:))]
1002 #[unsafe(method_family = none)]
1003 unsafe fn outlineView_shouldSelectItem(
1004 &self,
1005 outline_view: &NSOutlineView,
1006 item: &AnyObject,
1007 ) -> bool;
1008
1009 #[cfg(all(feature = "NSResponder", feature = "NSTableView", feature = "NSView"))]
1010 #[optional]
1011 #[unsafe(method(outlineView:selectionIndexesForProposedSelection:))]
1012 #[unsafe(method_family = none)]
1013 fn outlineView_selectionIndexesForProposedSelection(
1014 &self,
1015 outline_view: &NSOutlineView,
1016 proposed_selection_indexes: &NSIndexSet,
1017 ) -> Retained<NSIndexSet>;
1018
1019 #[cfg(all(
1020 feature = "NSResponder",
1021 feature = "NSTableColumn",
1022 feature = "NSTableView",
1023 feature = "NSView"
1024 ))]
1025 #[optional]
1026 #[unsafe(method(outlineView:shouldSelectTableColumn:))]
1027 #[unsafe(method_family = none)]
1028 fn outlineView_shouldSelectTableColumn(
1029 &self,
1030 outline_view: &NSOutlineView,
1031 table_column: Option<&NSTableColumn>,
1032 ) -> bool;
1033
1034 #[cfg(all(
1035 feature = "NSResponder",
1036 feature = "NSTableColumn",
1037 feature = "NSTableView",
1038 feature = "NSView"
1039 ))]
1040 #[optional]
1041 #[unsafe(method(outlineView:mouseDownInHeaderOfTableColumn:))]
1042 #[unsafe(method_family = none)]
1043 fn outlineView_mouseDownInHeaderOfTableColumn(
1044 &self,
1045 outline_view: &NSOutlineView,
1046 table_column: &NSTableColumn,
1047 );
1048
1049 #[cfg(all(
1050 feature = "NSResponder",
1051 feature = "NSTableColumn",
1052 feature = "NSTableView",
1053 feature = "NSView"
1054 ))]
1055 #[optional]
1056 #[unsafe(method(outlineView:didClickTableColumn:))]
1057 #[unsafe(method_family = none)]
1058 fn outlineView_didClickTableColumn(
1059 &self,
1060 outline_view: &NSOutlineView,
1061 table_column: &NSTableColumn,
1062 );
1063
1064 #[cfg(all(
1065 feature = "NSResponder",
1066 feature = "NSTableColumn",
1067 feature = "NSTableView",
1068 feature = "NSView"
1069 ))]
1070 #[optional]
1071 #[unsafe(method(outlineView:didDragTableColumn:))]
1072 #[unsafe(method_family = none)]
1073 fn outlineView_didDragTableColumn(
1074 &self,
1075 outline_view: &NSOutlineView,
1076 table_column: &NSTableColumn,
1077 );
1078
1079 #[cfg(all(
1080 feature = "NSCell",
1081 feature = "NSResponder",
1082 feature = "NSTableColumn",
1083 feature = "NSTableView",
1084 feature = "NSView"
1085 ))]
1086 #[optional]
1091 #[unsafe(method(outlineView:toolTipForCell:rect:tableColumn:item:mouseLocation:))]
1092 #[unsafe(method_family = none)]
1093 unsafe fn outlineView_toolTipForCell_rect_tableColumn_item_mouseLocation(
1094 &self,
1095 outline_view: &NSOutlineView,
1096 cell: &NSCell,
1097 rect: NSRectPointer,
1098 table_column: Option<&NSTableColumn>,
1099 item: &AnyObject,
1100 mouse_location: NSPoint,
1101 ) -> Retained<NSString>;
1102
1103 #[cfg(all(
1104 feature = "NSResponder",
1105 feature = "NSTableView",
1106 feature = "NSView",
1107 feature = "objc2-core-foundation"
1108 ))]
1109 #[optional]
1113 #[unsafe(method(outlineView:heightOfRowByItem:))]
1114 #[unsafe(method_family = none)]
1115 unsafe fn outlineView_heightOfRowByItem(
1116 &self,
1117 outline_view: &NSOutlineView,
1118 item: &AnyObject,
1119 ) -> CGFloat;
1120
1121 #[cfg(all(
1122 feature = "NSResponder",
1123 feature = "NSTableView",
1124 feature = "NSTintConfiguration",
1125 feature = "NSView"
1126 ))]
1127 #[optional]
1131 #[unsafe(method(outlineView:tintConfigurationForItem:))]
1132 #[unsafe(method_family = none)]
1133 unsafe fn outlineView_tintConfigurationForItem(
1134 &self,
1135 outline_view: &NSOutlineView,
1136 item: &AnyObject,
1137 ) -> Option<Retained<NSTintConfiguration>>;
1138
1139 #[cfg(all(
1140 feature = "NSResponder",
1141 feature = "NSTableColumn",
1142 feature = "NSTableView",
1143 feature = "NSView"
1144 ))]
1145 #[optional]
1149 #[unsafe(method(outlineView:typeSelectStringForTableColumn:item:))]
1150 #[unsafe(method_family = none)]
1151 unsafe fn outlineView_typeSelectStringForTableColumn_item(
1152 &self,
1153 outline_view: &NSOutlineView,
1154 table_column: Option<&NSTableColumn>,
1155 item: &AnyObject,
1156 ) -> Option<Retained<NSString>>;
1157
1158 #[cfg(all(feature = "NSResponder", feature = "NSTableView", feature = "NSView"))]
1159 #[optional]
1164 #[unsafe(method(outlineView:nextTypeSelectMatchFromItem:toItem:forString:))]
1165 #[unsafe(method_family = none)]
1166 unsafe fn outlineView_nextTypeSelectMatchFromItem_toItem_forString(
1167 &self,
1168 outline_view: &NSOutlineView,
1169 start_item: &AnyObject,
1170 end_item: &AnyObject,
1171 search_string: &NSString,
1172 ) -> Option<Retained<AnyObject>>;
1173
1174 #[cfg(all(
1175 feature = "NSEvent",
1176 feature = "NSResponder",
1177 feature = "NSTableView",
1178 feature = "NSView"
1179 ))]
1180 #[optional]
1181 #[unsafe(method(outlineView:shouldTypeSelectForEvent:withCurrentSearchString:))]
1182 #[unsafe(method_family = none)]
1183 fn outlineView_shouldTypeSelectForEvent_withCurrentSearchString(
1184 &self,
1185 outline_view: &NSOutlineView,
1186 event: &NSEvent,
1187 search_string: Option<&NSString>,
1188 ) -> bool;
1189
1190 #[cfg(all(
1191 feature = "NSResponder",
1192 feature = "NSTableColumn",
1193 feature = "NSTableView",
1194 feature = "NSView"
1195 ))]
1196 #[optional]
1200 #[unsafe(method(outlineView:shouldShowCellExpansionForTableColumn:item:))]
1201 #[unsafe(method_family = none)]
1202 unsafe fn outlineView_shouldShowCellExpansionForTableColumn_item(
1203 &self,
1204 outline_view: &NSOutlineView,
1205 table_column: Option<&NSTableColumn>,
1206 item: &AnyObject,
1207 ) -> bool;
1208
1209 #[cfg(all(
1210 feature = "NSCell",
1211 feature = "NSResponder",
1212 feature = "NSTableColumn",
1213 feature = "NSTableView",
1214 feature = "NSView"
1215 ))]
1216 #[optional]
1220 #[unsafe(method(outlineView:shouldTrackCell:forTableColumn:item:))]
1221 #[unsafe(method_family = none)]
1222 unsafe fn outlineView_shouldTrackCell_forTableColumn_item(
1223 &self,
1224 outline_view: &NSOutlineView,
1225 cell: &NSCell,
1226 table_column: Option<&NSTableColumn>,
1227 item: &AnyObject,
1228 ) -> bool;
1229
1230 #[cfg(all(
1231 feature = "NSCell",
1232 feature = "NSResponder",
1233 feature = "NSTableColumn",
1234 feature = "NSTableView",
1235 feature = "NSView"
1236 ))]
1237 #[optional]
1241 #[unsafe(method(outlineView:dataCellForTableColumn:item:))]
1242 #[unsafe(method_family = none)]
1243 unsafe fn outlineView_dataCellForTableColumn_item(
1244 &self,
1245 outline_view: &NSOutlineView,
1246 table_column: Option<&NSTableColumn>,
1247 item: &AnyObject,
1248 ) -> Option<Retained<NSCell>>;
1249
1250 #[cfg(all(feature = "NSResponder", feature = "NSTableView", feature = "NSView"))]
1251 #[optional]
1255 #[unsafe(method(outlineView:isGroupItem:))]
1256 #[unsafe(method_family = none)]
1257 unsafe fn outlineView_isGroupItem(
1258 &self,
1259 outline_view: &NSOutlineView,
1260 item: &AnyObject,
1261 ) -> bool;
1262
1263 #[cfg(all(feature = "NSResponder", feature = "NSTableView", feature = "NSView"))]
1264 #[optional]
1268 #[unsafe(method(outlineView:shouldExpandItem:))]
1269 #[unsafe(method_family = none)]
1270 unsafe fn outlineView_shouldExpandItem(
1271 &self,
1272 outline_view: &NSOutlineView,
1273 item: &AnyObject,
1274 ) -> bool;
1275
1276 #[cfg(all(feature = "NSResponder", feature = "NSTableView", feature = "NSView"))]
1277 #[optional]
1281 #[unsafe(method(outlineView:shouldCollapseItem:))]
1282 #[unsafe(method_family = none)]
1283 unsafe fn outlineView_shouldCollapseItem(
1284 &self,
1285 outline_view: &NSOutlineView,
1286 item: &AnyObject,
1287 ) -> bool;
1288
1289 #[cfg(all(
1290 feature = "NSResponder",
1291 feature = "NSTableColumn",
1292 feature = "NSTableView",
1293 feature = "NSView"
1294 ))]
1295 #[optional]
1300 #[unsafe(method(outlineView:willDisplayOutlineCell:forTableColumn:item:))]
1301 #[unsafe(method_family = none)]
1302 unsafe fn outlineView_willDisplayOutlineCell_forTableColumn_item(
1303 &self,
1304 outline_view: &NSOutlineView,
1305 cell: &AnyObject,
1306 table_column: Option<&NSTableColumn>,
1307 item: &AnyObject,
1308 );
1309
1310 #[cfg(all(
1311 feature = "NSResponder",
1312 feature = "NSTableView",
1313 feature = "NSView",
1314 feature = "objc2-core-foundation"
1315 ))]
1316 #[optional]
1317 #[unsafe(method(outlineView:sizeToFitWidthOfColumn:))]
1318 #[unsafe(method_family = none)]
1319 fn outlineView_sizeToFitWidthOfColumn(
1320 &self,
1321 outline_view: &NSOutlineView,
1322 column: NSInteger,
1323 ) -> CGFloat;
1324
1325 #[cfg(all(feature = "NSResponder", feature = "NSTableView", feature = "NSView"))]
1326 #[optional]
1327 #[unsafe(method(outlineView:shouldReorderColumn:toColumn:))]
1328 #[unsafe(method_family = none)]
1329 fn outlineView_shouldReorderColumn_toColumn(
1330 &self,
1331 outline_view: &NSOutlineView,
1332 column_index: NSInteger,
1333 new_column_index: NSInteger,
1334 ) -> bool;
1335
1336 #[cfg(all(feature = "NSResponder", feature = "NSTableView", feature = "NSView"))]
1337 #[optional]
1341 #[unsafe(method(outlineView:shouldShowOutlineCellForItem:))]
1342 #[unsafe(method_family = none)]
1343 unsafe fn outlineView_shouldShowOutlineCellForItem(
1344 &self,
1345 outline_view: &NSOutlineView,
1346 item: &AnyObject,
1347 ) -> bool;
1348
1349 #[cfg(all(
1350 feature = "NSResponder",
1351 feature = "NSTableColumn",
1352 feature = "NSTableView",
1353 feature = "NSView"
1354 ))]
1355 #[optional]
1356 #[unsafe(method(outlineView:userCanChangeVisibilityOfTableColumn:))]
1357 #[unsafe(method_family = none)]
1358 fn outlineView_userCanChangeVisibilityOfTableColumn(
1359 &self,
1360 outline_view: &NSOutlineView,
1361 column: &NSTableColumn,
1362 ) -> bool;
1363
1364 #[cfg(all(
1365 feature = "NSResponder",
1366 feature = "NSTableColumn",
1367 feature = "NSTableView",
1368 feature = "NSView"
1369 ))]
1370 #[optional]
1371 #[unsafe(method(outlineView:userDidChangeVisibilityOfTableColumns:))]
1372 #[unsafe(method_family = none)]
1373 fn outlineView_userDidChangeVisibilityOfTableColumns(
1374 &self,
1375 outline_view: &NSOutlineView,
1376 columns: &NSArray<NSTableColumn>,
1377 );
1378
1379 #[optional]
1380 #[unsafe(method(outlineViewSelectionDidChange:))]
1381 #[unsafe(method_family = none)]
1382 fn outlineViewSelectionDidChange(&self, notification: &NSNotification);
1383
1384 #[optional]
1385 #[unsafe(method(outlineViewColumnDidMove:))]
1386 #[unsafe(method_family = none)]
1387 fn outlineViewColumnDidMove(&self, notification: &NSNotification);
1388
1389 #[optional]
1390 #[unsafe(method(outlineViewColumnDidResize:))]
1391 #[unsafe(method_family = none)]
1392 fn outlineViewColumnDidResize(&self, notification: &NSNotification);
1393
1394 #[optional]
1395 #[unsafe(method(outlineViewSelectionIsChanging:))]
1396 #[unsafe(method_family = none)]
1397 fn outlineViewSelectionIsChanging(&self, notification: &NSNotification);
1398
1399 #[optional]
1400 #[unsafe(method(outlineViewItemWillExpand:))]
1401 #[unsafe(method_family = none)]
1402 fn outlineViewItemWillExpand(&self, notification: &NSNotification);
1403
1404 #[optional]
1405 #[unsafe(method(outlineViewItemDidExpand:))]
1406 #[unsafe(method_family = none)]
1407 fn outlineViewItemDidExpand(&self, notification: &NSNotification);
1408
1409 #[optional]
1410 #[unsafe(method(outlineViewItemWillCollapse:))]
1411 #[unsafe(method_family = none)]
1412 fn outlineViewItemWillCollapse(&self, notification: &NSNotification);
1413
1414 #[optional]
1415 #[unsafe(method(outlineViewItemDidCollapse:))]
1416 #[unsafe(method_family = none)]
1417 fn outlineViewItemDidCollapse(&self, notification: &NSNotification);
1418 }
1419);
1420
1421extern "C" {
1422 #[cfg(feature = "NSUserInterfaceItemIdentification")]
1424 pub static NSOutlineViewDisclosureButtonKey: &'static NSUserInterfaceItemIdentifier;
1425}
1426
1427extern "C" {
1428 #[cfg(feature = "NSUserInterfaceItemIdentification")]
1430 pub static NSOutlineViewShowHideButtonKey: &'static NSUserInterfaceItemIdentifier;
1431}
1432
1433extern "C" {
1434 pub static NSOutlineViewSelectionDidChangeNotification: &'static NSNotificationName;
1436}
1437
1438extern "C" {
1439 pub static NSOutlineViewColumnDidMoveNotification: &'static NSNotificationName;
1441}
1442
1443extern "C" {
1444 pub static NSOutlineViewColumnDidResizeNotification: &'static NSNotificationName;
1446}
1447
1448extern "C" {
1449 pub static NSOutlineViewSelectionIsChangingNotification: &'static NSNotificationName;
1451}
1452
1453extern "C" {
1454 pub static NSOutlineViewItemWillExpandNotification: &'static NSNotificationName;
1456}
1457
1458extern "C" {
1459 pub static NSOutlineViewItemDidExpandNotification: &'static NSNotificationName;
1461}
1462
1463extern "C" {
1464 pub static NSOutlineViewItemWillCollapseNotification: &'static NSNotificationName;
1466}
1467
1468extern "C" {
1469 pub static NSOutlineViewItemDidCollapseNotification: &'static NSNotificationName;
1471}