use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern "C" {
pub static NSComboBoxWillPopUpNotification: &'static NSNotificationName;
}
extern "C" {
pub static NSComboBoxWillDismissNotification: &'static NSNotificationName;
}
extern "C" {
pub static NSComboBoxSelectionDidChangeNotification: &'static NSNotificationName;
}
extern "C" {
pub static NSComboBoxSelectionIsChangingNotification: &'static NSNotificationName;
}
extern_protocol!(
pub unsafe trait NSComboBoxDataSource: NSObjectProtocol + IsMainThreadOnly {
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
#[optional]
#[method(numberOfItemsInComboBox:)]
unsafe fn numberOfItemsInComboBox(&self, combo_box: &NSComboBox) -> NSInteger;
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
#[optional]
#[method_id(@__retain_semantics Other comboBox:objectValueForItemAtIndex:)]
unsafe fn comboBox_objectValueForItemAtIndex(
&self,
combo_box: &NSComboBox,
index: NSInteger,
) -> Option<Id<AnyObject>>;
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
#[optional]
#[method(comboBox:indexOfItemWithStringValue:)]
unsafe fn comboBox_indexOfItemWithStringValue(
&self,
combo_box: &NSComboBox,
string: &NSString,
) -> NSUInteger;
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
#[optional]
#[method_id(@__retain_semantics Other comboBox:completedString:)]
unsafe fn comboBox_completedString(
&self,
combo_box: &NSComboBox,
string: &NSString,
) -> Option<Id<NSString>>;
}
unsafe impl ProtocolType for dyn NSComboBoxDataSource {}
);
extern_protocol!(
#[cfg(all(feature = "NSControl", feature = "NSTextField"))]
pub unsafe trait NSComboBoxDelegate: NSTextFieldDelegate + IsMainThreadOnly {
#[optional]
#[method(comboBoxWillPopUp:)]
unsafe fn comboBoxWillPopUp(&self, notification: &NSNotification);
#[optional]
#[method(comboBoxWillDismiss:)]
unsafe fn comboBoxWillDismiss(&self, notification: &NSNotification);
#[optional]
#[method(comboBoxSelectionDidChange:)]
unsafe fn comboBoxSelectionDidChange(&self, notification: &NSNotification);
#[optional]
#[method(comboBoxSelectionIsChanging:)]
unsafe fn comboBoxSelectionIsChanging(&self, notification: &NSNotification);
}
#[cfg(all(feature = "NSControl", feature = "NSTextField"))]
unsafe impl ProtocolType for dyn NSComboBoxDelegate {}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
pub struct NSComboBox;
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
unsafe impl ClassType for NSComboBox {
#[inherits(NSControl, NSView, NSResponder, NSObject)]
type Super = NSTextField;
type Mutability = MainThreadOnly;
}
);
#[cfg(all(
feature = "NSAccessibilityProtocols",
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
unsafe impl NSAccessibility for NSComboBox {}
#[cfg(all(
feature = "NSAccessibilityProtocols",
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
unsafe impl NSAccessibilityElementProtocol for NSComboBox {}
#[cfg(all(
feature = "NSAccessibilityProtocols",
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
unsafe impl NSAccessibilityNavigableStaticText for NSComboBox {}
#[cfg(all(
feature = "NSAccessibilityProtocols",
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
unsafe impl NSAccessibilityStaticText for NSComboBox {}
#[cfg(all(
feature = "NSAnimation",
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
unsafe impl NSAnimatablePropertyContainer for NSComboBox {}
#[cfg(all(
feature = "NSAppearance",
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
unsafe impl NSAppearanceCustomization for NSComboBox {}
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
unsafe impl NSCoding for NSComboBox {}
#[cfg(all(
feature = "NSControl",
feature = "NSDragging",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
unsafe impl NSDraggingDestination for NSComboBox {}
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
unsafe impl NSObjectProtocol for NSComboBox {}
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextContent",
feature = "NSTextField",
feature = "NSView"
))]
unsafe impl NSTextContent for NSComboBox {}
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSUserInterfaceItemIdentification",
feature = "NSView"
))]
unsafe impl NSUserInterfaceItemIdentification for NSComboBox {}
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSUserInterfaceValidation",
feature = "NSView"
))]
unsafe impl NSUserInterfaceValidations for NSComboBox {}
extern_methods!(
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
unsafe impl NSComboBox {
#[method(hasVerticalScroller)]
pub unsafe fn hasVerticalScroller(&self) -> bool;
#[method(setHasVerticalScroller:)]
pub unsafe fn setHasVerticalScroller(&self, has_vertical_scroller: bool);
#[method(intercellSpacing)]
pub unsafe fn intercellSpacing(&self) -> NSSize;
#[method(setIntercellSpacing:)]
pub unsafe fn setIntercellSpacing(&self, intercell_spacing: NSSize);
#[method(itemHeight)]
pub unsafe fn itemHeight(&self) -> CGFloat;
#[method(setItemHeight:)]
pub unsafe fn setItemHeight(&self, item_height: CGFloat);
#[method(numberOfVisibleItems)]
pub unsafe fn numberOfVisibleItems(&self) -> NSInteger;
#[method(setNumberOfVisibleItems:)]
pub unsafe fn setNumberOfVisibleItems(&self, number_of_visible_items: NSInteger);
#[method(isButtonBordered)]
pub unsafe fn isButtonBordered(&self) -> bool;
#[method(setButtonBordered:)]
pub unsafe fn setButtonBordered(&self, button_bordered: bool);
#[method(reloadData)]
pub unsafe fn reloadData(&self);
#[method(noteNumberOfItemsChanged)]
pub unsafe fn noteNumberOfItemsChanged(&self);
#[method(usesDataSource)]
pub unsafe fn usesDataSource(&self) -> bool;
#[method(setUsesDataSource:)]
pub unsafe fn setUsesDataSource(&self, uses_data_source: bool);
#[method(scrollItemAtIndexToTop:)]
pub unsafe fn scrollItemAtIndexToTop(&self, index: NSInteger);
#[method(scrollItemAtIndexToVisible:)]
pub unsafe fn scrollItemAtIndexToVisible(&self, index: NSInteger);
#[method(selectItemAtIndex:)]
pub unsafe fn selectItemAtIndex(&self, index: NSInteger);
#[method(deselectItemAtIndex:)]
pub unsafe fn deselectItemAtIndex(&self, index: NSInteger);
#[method(indexOfSelectedItem)]
pub unsafe fn indexOfSelectedItem(&self) -> NSInteger;
#[method(numberOfItems)]
pub unsafe fn numberOfItems(&self) -> NSInteger;
#[method(completes)]
pub unsafe fn completes(&self) -> bool;
#[method(setCompletes:)]
pub unsafe fn setCompletes(&self, completes: bool);
#[method_id(@__retain_semantics Other delegate)]
pub unsafe fn delegate(&self) -> Option<Id<ProtocolObject<dyn NSComboBoxDelegate>>>;
#[method(setDelegate:)]
pub unsafe fn setDelegate(&self, delegate: Option<&ProtocolObject<dyn NSComboBoxDelegate>>);
#[method_id(@__retain_semantics Other dataSource)]
pub unsafe fn dataSource(&self) -> Option<Id<ProtocolObject<dyn NSComboBoxDataSource>>>;
#[method(setDataSource:)]
pub unsafe fn setDataSource(
&self,
data_source: Option<&ProtocolObject<dyn NSComboBoxDataSource>>,
);
#[method(addItemWithObjectValue:)]
pub unsafe fn addItemWithObjectValue(&self, object: &AnyObject);
#[method(addItemsWithObjectValues:)]
pub unsafe fn addItemsWithObjectValues(&self, objects: &NSArray);
#[method(insertItemWithObjectValue:atIndex:)]
pub unsafe fn insertItemWithObjectValue_atIndex(
&self,
object: &AnyObject,
index: NSInteger,
);
#[method(removeItemWithObjectValue:)]
pub unsafe fn removeItemWithObjectValue(&self, object: &AnyObject);
#[method(removeItemAtIndex:)]
pub unsafe fn removeItemAtIndex(&self, index: NSInteger);
#[method(removeAllItems)]
pub unsafe fn removeAllItems(&self);
#[method(selectItemWithObjectValue:)]
pub unsafe fn selectItemWithObjectValue(&self, object: Option<&AnyObject>);
#[method_id(@__retain_semantics Other itemObjectValueAtIndex:)]
pub unsafe fn itemObjectValueAtIndex(&self, index: NSInteger) -> Id<AnyObject>;
#[method_id(@__retain_semantics Other objectValueOfSelectedItem)]
pub unsafe fn objectValueOfSelectedItem(&self) -> Option<Id<AnyObject>>;
#[method(indexOfItemWithObjectValue:)]
pub unsafe fn indexOfItemWithObjectValue(&self, object: &AnyObject) -> NSInteger;
#[method_id(@__retain_semantics Other objectValues)]
pub unsafe fn objectValues(&self) -> Id<NSArray>;
}
);
extern_methods!(
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
unsafe impl NSComboBox {
#[method_id(@__retain_semantics Init initWithFrame:)]
pub unsafe fn initWithFrame(this: Allocated<Self>, frame_rect: NSRect) -> Id<Self>;
#[method_id(@__retain_semantics Init initWithCoder:)]
pub unsafe fn initWithCoder(this: Allocated<Self>, coder: &NSCoder) -> Option<Id<Self>>;
}
);
extern_methods!(
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
unsafe impl NSComboBox {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;
}
);
extern_methods!(
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSTextField",
feature = "NSView"
))]
unsafe impl NSComboBox {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Id<Self>;
}
);