use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSTreeNode;
unsafe impl ClassType for NSTreeNode {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl NSObjectProtocol for NSTreeNode {}
extern_methods!(
unsafe impl NSTreeNode {
#[method_id(@__retain_semantics Other treeNodeWithRepresentedObject:)]
pub unsafe fn treeNodeWithRepresentedObject(model_object: Option<&AnyObject>) -> Id<Self>;
#[method_id(@__retain_semantics Init initWithRepresentedObject:)]
pub unsafe fn initWithRepresentedObject(
this: Allocated<Self>,
model_object: Option<&AnyObject>,
) -> Id<Self>;
#[method_id(@__retain_semantics Other representedObject)]
pub unsafe fn representedObject(&self) -> Option<Id<AnyObject>>;
#[method_id(@__retain_semantics Other indexPath)]
pub unsafe fn indexPath(&self) -> Id<NSIndexPath>;
#[method(isLeaf)]
pub unsafe fn isLeaf(&self) -> bool;
#[method_id(@__retain_semantics Other childNodes)]
pub unsafe fn childNodes(&self) -> Option<Id<NSArray<NSTreeNode>>>;
#[method_id(@__retain_semantics Other mutableChildNodes)]
pub unsafe fn mutableChildNodes(&self) -> Id<NSMutableArray<NSTreeNode>>;
#[method_id(@__retain_semantics Other descendantNodeAtIndexPath:)]
pub unsafe fn descendantNodeAtIndexPath(
&self,
index_path: &NSIndexPath,
) -> Option<Id<NSTreeNode>>;
#[method_id(@__retain_semantics Other parentNode)]
pub unsafe fn parentNode(&self) -> Option<Id<NSTreeNode>>;
#[method(sortWithSortDescriptors:recursively:)]
pub unsafe fn sortWithSortDescriptors_recursively(
&self,
sort_descriptors: &NSArray<NSSortDescriptor>,
recursively: bool,
);
}
);
extern_methods!(
unsafe impl NSTreeNode {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Id<Self>;
}
);