use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-core-foundation")]
use objc2_core_foundation::*;
use objc2_foundation::*;
use crate::*;
pub type NSRuleEditorPredicatePartKey = NSString;
extern "C" {
pub static NSRuleEditorPredicateLeftExpression: &'static NSRuleEditorPredicatePartKey;
}
extern "C" {
pub static NSRuleEditorPredicateRightExpression: &'static NSRuleEditorPredicatePartKey;
}
extern "C" {
pub static NSRuleEditorPredicateComparisonModifier: &'static NSRuleEditorPredicatePartKey;
}
extern "C" {
pub static NSRuleEditorPredicateOptions: &'static NSRuleEditorPredicatePartKey;
}
extern "C" {
pub static NSRuleEditorPredicateOperatorType: &'static NSRuleEditorPredicatePartKey;
}
extern "C" {
pub static NSRuleEditorPredicateCustomSelector: &'static NSRuleEditorPredicatePartKey;
}
extern "C" {
pub static NSRuleEditorPredicateCompoundType: &'static NSRuleEditorPredicatePartKey;
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSRuleEditorNestingMode(pub NSUInteger);
impl NSRuleEditorNestingMode {
#[doc(alias = "NSRuleEditorNestingModeSingle")]
pub const Single: Self = Self(0);
#[doc(alias = "NSRuleEditorNestingModeList")]
pub const List: Self = Self(1);
#[doc(alias = "NSRuleEditorNestingModeCompound")]
pub const Compound: Self = Self(2);
#[doc(alias = "NSRuleEditorNestingModeSimple")]
pub const Simple: Self = Self(3);
}
unsafe impl Encode for NSRuleEditorNestingMode {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for NSRuleEditorNestingMode {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSRuleEditorRowType(pub NSUInteger);
impl NSRuleEditorRowType {
#[doc(alias = "NSRuleEditorRowTypeSimple")]
pub const Simple: Self = Self(0);
#[doc(alias = "NSRuleEditorRowTypeCompound")]
pub const Compound: Self = Self(1);
}
unsafe impl Encode for NSRuleEditorRowType {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for NSRuleEditorRowType {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[unsafe(super(NSControl, NSView, NSResponder, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
pub struct NSRuleEditor;
);
#[cfg(all(
feature = "NSAccessibilityProtocols",
feature = "NSControl",
feature = "NSResponder",
feature = "NSView"
))]
extern_conformance!(
unsafe impl NSAccessibility for NSRuleEditor {}
);
#[cfg(all(
feature = "NSAccessibilityProtocols",
feature = "NSControl",
feature = "NSResponder",
feature = "NSView"
))]
extern_conformance!(
unsafe impl NSAccessibilityElementProtocol for NSRuleEditor {}
);
#[cfg(all(
feature = "NSAnimation",
feature = "NSControl",
feature = "NSResponder",
feature = "NSView"
))]
extern_conformance!(
unsafe impl NSAnimatablePropertyContainer for NSRuleEditor {}
);
#[cfg(all(
feature = "NSAppearance",
feature = "NSControl",
feature = "NSResponder",
feature = "NSView"
))]
extern_conformance!(
unsafe impl NSAppearanceCustomization for NSRuleEditor {}
);
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
extern_conformance!(
unsafe impl NSCoding for NSRuleEditor {}
);
#[cfg(all(
feature = "NSControl",
feature = "NSDragging",
feature = "NSResponder",
feature = "NSView"
))]
extern_conformance!(
unsafe impl NSDraggingDestination for NSRuleEditor {}
);
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
extern_conformance!(
unsafe impl NSObjectProtocol for NSRuleEditor {}
);
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSUserInterfaceItemIdentification",
feature = "NSView"
))]
extern_conformance!(
unsafe impl NSUserInterfaceItemIdentification for NSRuleEditor {}
);
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
impl NSRuleEditor {
extern_methods!(
#[unsafe(method(delegate))]
#[unsafe(method_family = none)]
pub fn delegate(&self) -> Option<Retained<ProtocolObject<dyn NSRuleEditorDelegate>>>;
#[unsafe(method(setDelegate:))]
#[unsafe(method_family = none)]
pub fn setDelegate(&self, delegate: Option<&ProtocolObject<dyn NSRuleEditorDelegate>>);
#[unsafe(method(formattingStringsFilename))]
#[unsafe(method_family = none)]
pub fn formattingStringsFilename(&self) -> Option<Retained<NSString>>;
#[unsafe(method(setFormattingStringsFilename:))]
#[unsafe(method_family = none)]
pub fn setFormattingStringsFilename(&self, formatting_strings_filename: Option<&NSString>);
#[unsafe(method(formattingDictionary))]
#[unsafe(method_family = none)]
pub fn formattingDictionary(&self) -> Option<Retained<NSDictionary<NSString, NSString>>>;
#[unsafe(method(setFormattingDictionary:))]
#[unsafe(method_family = none)]
pub fn setFormattingDictionary(
&self,
formatting_dictionary: Option<&NSDictionary<NSString, NSString>>,
);
#[unsafe(method(reloadCriteria))]
#[unsafe(method_family = none)]
pub fn reloadCriteria(&self);
#[unsafe(method(nestingMode))]
#[unsafe(method_family = none)]
pub fn nestingMode(&self) -> NSRuleEditorNestingMode;
#[unsafe(method(setNestingMode:))]
#[unsafe(method_family = none)]
pub fn setNestingMode(&self, nesting_mode: NSRuleEditorNestingMode);
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(rowHeight))]
#[unsafe(method_family = none)]
pub fn rowHeight(&self) -> CGFloat;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(setRowHeight:))]
#[unsafe(method_family = none)]
pub fn setRowHeight(&self, row_height: CGFloat);
#[unsafe(method(isEditable))]
#[unsafe(method_family = none)]
pub fn isEditable(&self) -> bool;
#[unsafe(method(setEditable:))]
#[unsafe(method_family = none)]
pub fn setEditable(&self, editable: bool);
#[unsafe(method(canRemoveAllRows))]
#[unsafe(method_family = none)]
pub fn canRemoveAllRows(&self) -> bool;
#[unsafe(method(setCanRemoveAllRows:))]
#[unsafe(method_family = none)]
pub fn setCanRemoveAllRows(&self, can_remove_all_rows: bool);
#[unsafe(method(predicate))]
#[unsafe(method_family = none)]
pub fn predicate(&self) -> Option<Retained<NSPredicate>>;
#[unsafe(method(reloadPredicate))]
#[unsafe(method_family = none)]
pub fn reloadPredicate(&self);
#[unsafe(method(predicateForRow:))]
#[unsafe(method_family = none)]
pub fn predicateForRow(&self, row: NSInteger) -> Option<Retained<NSPredicate>>;
#[unsafe(method(numberOfRows))]
#[unsafe(method_family = none)]
pub fn numberOfRows(&self) -> NSInteger;
#[unsafe(method(subrowIndexesForRow:))]
#[unsafe(method_family = none)]
pub fn subrowIndexesForRow(&self, row_index: NSInteger) -> Retained<NSIndexSet>;
#[unsafe(method(criteriaForRow:))]
#[unsafe(method_family = none)]
pub fn criteriaForRow(&self, row: NSInteger) -> Retained<NSArray>;
#[unsafe(method(displayValuesForRow:))]
#[unsafe(method_family = none)]
pub fn displayValuesForRow(&self, row: NSInteger) -> Retained<NSArray>;
#[unsafe(method(rowForDisplayValue:))]
#[unsafe(method_family = none)]
pub unsafe fn rowForDisplayValue(&self, display_value: &AnyObject) -> NSInteger;
#[unsafe(method(rowTypeForRow:))]
#[unsafe(method_family = none)]
pub fn rowTypeForRow(&self, row_index: NSInteger) -> NSRuleEditorRowType;
#[unsafe(method(parentRowForRow:))]
#[unsafe(method_family = none)]
pub fn parentRowForRow(&self, row_index: NSInteger) -> NSInteger;
#[unsafe(method(addRow:))]
#[unsafe(method_family = none)]
pub unsafe fn addRow(&self, sender: Option<&AnyObject>);
#[unsafe(method(insertRowAtIndex:withType:asSubrowOfRow:animate:))]
#[unsafe(method_family = none)]
pub fn insertRowAtIndex_withType_asSubrowOfRow_animate(
&self,
row_index: NSInteger,
row_type: NSRuleEditorRowType,
parent_row: NSInteger,
should_animate: bool,
);
#[unsafe(method(setCriteria:andDisplayValues:forRowAtIndex:))]
#[unsafe(method_family = none)]
pub unsafe fn setCriteria_andDisplayValues_forRowAtIndex(
&self,
criteria: &NSArray,
values: &NSArray,
row_index: NSInteger,
);
#[unsafe(method(removeRowAtIndex:))]
#[unsafe(method_family = none)]
pub fn removeRowAtIndex(&self, row_index: NSInteger);
#[unsafe(method(removeRowsAtIndexes:includeSubrows:))]
#[unsafe(method_family = none)]
pub fn removeRowsAtIndexes_includeSubrows(
&self,
row_indexes: &NSIndexSet,
include_subrows: bool,
);
#[unsafe(method(selectedRowIndexes))]
#[unsafe(method_family = none)]
pub fn selectedRowIndexes(&self) -> Retained<NSIndexSet>;
#[unsafe(method(selectRowIndexes:byExtendingSelection:))]
#[unsafe(method_family = none)]
pub fn selectRowIndexes_byExtendingSelection(&self, indexes: &NSIndexSet, extend: bool);
#[unsafe(method(rowClass))]
#[unsafe(method_family = none)]
pub unsafe fn rowClass(&self) -> &'static AnyClass;
#[unsafe(method(setRowClass:))]
#[unsafe(method_family = none)]
pub unsafe fn setRowClass(&self, row_class: &AnyClass);
#[unsafe(method(rowTypeKeyPath))]
#[unsafe(method_family = none)]
pub fn rowTypeKeyPath(&self) -> Retained<NSString>;
#[unsafe(method(setRowTypeKeyPath:))]
#[unsafe(method_family = none)]
pub fn setRowTypeKeyPath(&self, row_type_key_path: &NSString);
#[unsafe(method(subrowsKeyPath))]
#[unsafe(method_family = none)]
pub fn subrowsKeyPath(&self) -> Retained<NSString>;
#[unsafe(method(setSubrowsKeyPath:))]
#[unsafe(method_family = none)]
pub fn setSubrowsKeyPath(&self, subrows_key_path: &NSString);
#[unsafe(method(criteriaKeyPath))]
#[unsafe(method_family = none)]
pub fn criteriaKeyPath(&self) -> Retained<NSString>;
#[unsafe(method(setCriteriaKeyPath:))]
#[unsafe(method_family = none)]
pub fn setCriteriaKeyPath(&self, criteria_key_path: &NSString);
#[unsafe(method(displayValuesKeyPath))]
#[unsafe(method_family = none)]
pub fn displayValuesKeyPath(&self) -> Retained<NSString>;
#[unsafe(method(setDisplayValuesKeyPath:))]
#[unsafe(method_family = none)]
pub fn setDisplayValuesKeyPath(&self, display_values_key_path: &NSString);
);
}
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
impl NSRuleEditor {
extern_methods!(
#[unsafe(method(initWithFrame:))]
#[unsafe(method_family = init)]
pub fn initWithFrame(this: Allocated<Self>, frame_rect: NSRect) -> Retained<Self>;
#[unsafe(method(initWithCoder:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithCoder(
this: Allocated<Self>,
coder: &NSCoder,
) -> Option<Retained<Self>>;
);
}
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
impl NSRuleEditor {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
);
}
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
impl NSRuleEditor {
extern_methods!(
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new(mtm: MainThreadMarker) -> Retained<Self>;
);
}
extern_protocol!(
pub unsafe trait NSRuleEditorDelegate: NSObjectProtocol + MainThreadOnly {
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
#[unsafe(method(ruleEditor:numberOfChildrenForCriterion:withRowType:))]
#[unsafe(method_family = none)]
unsafe fn ruleEditor_numberOfChildrenForCriterion_withRowType(
&self,
editor: &NSRuleEditor,
criterion: Option<&AnyObject>,
row_type: NSRuleEditorRowType,
) -> NSInteger;
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
#[unsafe(method(ruleEditor:child:forCriterion:withRowType:))]
#[unsafe(method_family = none)]
unsafe fn ruleEditor_child_forCriterion_withRowType(
&self,
editor: &NSRuleEditor,
index: NSInteger,
criterion: Option<&AnyObject>,
row_type: NSRuleEditorRowType,
) -> Retained<AnyObject>;
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
#[unsafe(method(ruleEditor:displayValueForCriterion:inRow:))]
#[unsafe(method_family = none)]
unsafe fn ruleEditor_displayValueForCriterion_inRow(
&self,
editor: &NSRuleEditor,
criterion: &AnyObject,
row: NSInteger,
) -> Retained<AnyObject>;
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
#[optional]
#[unsafe(method(ruleEditor:predicatePartsForCriterion:withDisplayValue:inRow:))]
#[unsafe(method_family = none)]
unsafe fn ruleEditor_predicatePartsForCriterion_withDisplayValue_inRow(
&self,
editor: &NSRuleEditor,
criterion: &AnyObject,
value: &AnyObject,
row: NSInteger,
) -> Option<Retained<NSDictionary<NSRuleEditorPredicatePartKey, AnyObject>>>;
#[optional]
#[unsafe(method(ruleEditorRowsDidChange:))]
#[unsafe(method_family = none)]
fn ruleEditorRowsDidChange(&self, notification: &NSNotification);
}
);
extern "C" {
pub static NSRuleEditorRowsDidChangeNotification: &'static NSNotificationName;
}