use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
pub struct NSButton;
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
unsafe impl ClassType for NSButton {
#[inherits(NSView, NSResponder, NSObject)]
type Super = NSControl;
type Mutability = MainThreadOnly;
}
);
#[cfg(all(
feature = "NSAccessibilityProtocols",
feature = "NSControl",
feature = "NSResponder",
feature = "NSView"
))]
unsafe impl NSAccessibility for NSButton {}
#[cfg(all(
feature = "NSAccessibilityProtocols",
feature = "NSControl",
feature = "NSResponder",
feature = "NSView"
))]
unsafe impl NSAccessibilityButton for NSButton {}
#[cfg(all(
feature = "NSAccessibilityProtocols",
feature = "NSControl",
feature = "NSResponder",
feature = "NSView"
))]
unsafe impl NSAccessibilityElementProtocol for NSButton {}
#[cfg(all(
feature = "NSAnimation",
feature = "NSControl",
feature = "NSResponder",
feature = "NSView"
))]
unsafe impl NSAnimatablePropertyContainer for NSButton {}
#[cfg(all(
feature = "NSAppearance",
feature = "NSControl",
feature = "NSResponder",
feature = "NSView"
))]
unsafe impl NSAppearanceCustomization for NSButton {}
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
unsafe impl NSCoding for NSButton {}
#[cfg(all(
feature = "NSControl",
feature = "NSDragging",
feature = "NSResponder",
feature = "NSView"
))]
unsafe impl NSDraggingDestination for NSButton {}
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
unsafe impl NSObjectProtocol for NSButton {}
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSUserInterfaceCompression",
feature = "NSView"
))]
unsafe impl NSUserInterfaceCompression for NSButton {}
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSUserInterfaceItemIdentification",
feature = "NSView"
))]
unsafe impl NSUserInterfaceItemIdentification for NSButton {}
#[cfg(all(
feature = "NSControl",
feature = "NSResponder",
feature = "NSUserInterfaceValidation",
feature = "NSView"
))]
unsafe impl NSUserInterfaceValidations for NSButton {}
extern_methods!(
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
unsafe impl NSButton {
#[cfg(feature = "NSImage")]
#[method_id(@__retain_semantics Other buttonWithTitle:image:target:action:)]
pub unsafe fn buttonWithTitle_image_target_action(
title: &NSString,
image: &NSImage,
target: Option<&AnyObject>,
action: Option<Sel>,
mtm: MainThreadMarker,
) -> Retained<Self>;
#[method_id(@__retain_semantics Other buttonWithTitle:target:action:)]
pub unsafe fn buttonWithTitle_target_action(
title: &NSString,
target: Option<&AnyObject>,
action: Option<Sel>,
mtm: MainThreadMarker,
) -> Retained<Self>;
#[cfg(feature = "NSImage")]
#[method_id(@__retain_semantics Other buttonWithImage:target:action:)]
pub unsafe fn buttonWithImage_target_action(
image: &NSImage,
target: Option<&AnyObject>,
action: Option<Sel>,
mtm: MainThreadMarker,
) -> Retained<Self>;
#[method_id(@__retain_semantics Other checkboxWithTitle:target:action:)]
pub unsafe fn checkboxWithTitle_target_action(
title: &NSString,
target: Option<&AnyObject>,
action: Option<Sel>,
mtm: MainThreadMarker,
) -> Retained<Self>;
#[method_id(@__retain_semantics Other radioButtonWithTitle:target:action:)]
pub unsafe fn radioButtonWithTitle_target_action(
title: &NSString,
target: Option<&AnyObject>,
action: Option<Sel>,
mtm: MainThreadMarker,
) -> Retained<Self>;
#[cfg(feature = "NSButtonCell")]
#[method(setButtonType:)]
pub unsafe fn setButtonType(&self, r#type: NSButtonType);
#[method_id(@__retain_semantics Other title)]
pub unsafe fn title(&self) -> Retained<NSString>;
#[method(setTitle:)]
pub unsafe fn setTitle(&self, title: &NSString);
#[method_id(@__retain_semantics Other attributedTitle)]
pub unsafe fn attributedTitle(&self) -> Retained<NSAttributedString>;
#[method(setAttributedTitle:)]
pub unsafe fn setAttributedTitle(&self, attributed_title: &NSAttributedString);
#[method_id(@__retain_semantics Other alternateTitle)]
pub unsafe fn alternateTitle(&self) -> Retained<NSString>;
#[method(setAlternateTitle:)]
pub unsafe fn setAlternateTitle(&self, alternate_title: &NSString);
#[method_id(@__retain_semantics Other attributedAlternateTitle)]
pub unsafe fn attributedAlternateTitle(&self) -> Retained<NSAttributedString>;
#[method(setAttributedAlternateTitle:)]
pub unsafe fn setAttributedAlternateTitle(
&self,
attributed_alternate_title: &NSAttributedString,
);
#[method(hasDestructiveAction)]
pub unsafe fn hasDestructiveAction(&self) -> bool;
#[method(setHasDestructiveAction:)]
pub unsafe fn setHasDestructiveAction(&self, has_destructive_action: bool);
#[cfg(feature = "NSSound")]
#[method_id(@__retain_semantics Other sound)]
pub unsafe fn sound(&self) -> Option<Retained<NSSound>>;
#[cfg(feature = "NSSound")]
#[method(setSound:)]
pub unsafe fn setSound(&self, sound: Option<&NSSound>);
#[method(isSpringLoaded)]
pub unsafe fn isSpringLoaded(&self) -> bool;
#[method(setSpringLoaded:)]
pub unsafe fn setSpringLoaded(&self, spring_loaded: bool);
#[method(maxAcceleratorLevel)]
pub unsafe fn maxAcceleratorLevel(&self) -> NSInteger;
#[method(setMaxAcceleratorLevel:)]
pub unsafe fn setMaxAcceleratorLevel(&self, max_accelerator_level: NSInteger);
#[method(setPeriodicDelay:interval:)]
pub unsafe fn setPeriodicDelay_interval(&self, delay: c_float, interval: c_float);
#[method(getPeriodicDelay:interval:)]
pub unsafe fn getPeriodicDelay_interval(
&self,
delay: NonNull<c_float>,
interval: NonNull<c_float>,
);
#[cfg(feature = "NSButtonCell")]
#[method(bezelStyle)]
pub unsafe fn bezelStyle(&self) -> NSBezelStyle;
#[cfg(feature = "NSButtonCell")]
#[method(setBezelStyle:)]
pub unsafe fn setBezelStyle(&self, bezel_style: NSBezelStyle);
#[method(isBordered)]
pub unsafe fn isBordered(&self) -> bool;
#[method(setBordered:)]
pub unsafe fn setBordered(&self, bordered: bool);
#[method(isTransparent)]
pub unsafe fn isTransparent(&self) -> bool;
#[method(setTransparent:)]
pub unsafe fn setTransparent(&self, transparent: bool);
#[method(showsBorderOnlyWhileMouseInside)]
pub unsafe fn showsBorderOnlyWhileMouseInside(&self) -> bool;
#[method(setShowsBorderOnlyWhileMouseInside:)]
pub unsafe fn setShowsBorderOnlyWhileMouseInside(
&self,
shows_border_only_while_mouse_inside: bool,
);
#[cfg(feature = "NSColor")]
#[method_id(@__retain_semantics Other bezelColor)]
pub unsafe fn bezelColor(&self) -> Option<Retained<NSColor>>;
#[cfg(feature = "NSColor")]
#[method(setBezelColor:)]
pub unsafe fn setBezelColor(&self, bezel_color: Option<&NSColor>);
#[cfg(feature = "NSColor")]
#[method_id(@__retain_semantics Other contentTintColor)]
pub unsafe fn contentTintColor(&self) -> Option<Retained<NSColor>>;
#[cfg(feature = "NSColor")]
#[method(setContentTintColor:)]
pub unsafe fn setContentTintColor(&self, content_tint_color: Option<&NSColor>);
#[cfg(feature = "NSImage")]
#[method_id(@__retain_semantics Other image)]
pub unsafe fn image(&self) -> Option<Retained<NSImage>>;
#[cfg(feature = "NSImage")]
#[method(setImage:)]
pub unsafe fn setImage(&self, image: Option<&NSImage>);
#[cfg(feature = "NSImage")]
#[method_id(@__retain_semantics Other alternateImage)]
pub unsafe fn alternateImage(&self) -> Option<Retained<NSImage>>;
#[cfg(feature = "NSImage")]
#[method(setAlternateImage:)]
pub unsafe fn setAlternateImage(&self, alternate_image: Option<&NSImage>);
#[cfg(feature = "NSCell")]
#[method(imagePosition)]
pub unsafe fn imagePosition(&self) -> NSCellImagePosition;
#[cfg(feature = "NSCell")]
#[method(setImagePosition:)]
pub unsafe fn setImagePosition(&self, image_position: NSCellImagePosition);
#[cfg(feature = "NSCell")]
#[method(imageScaling)]
pub unsafe fn imageScaling(&self) -> NSImageScaling;
#[cfg(feature = "NSCell")]
#[method(setImageScaling:)]
pub unsafe fn setImageScaling(&self, image_scaling: NSImageScaling);
#[method(imageHugsTitle)]
pub unsafe fn imageHugsTitle(&self) -> bool;
#[method(setImageHugsTitle:)]
pub unsafe fn setImageHugsTitle(&self, image_hugs_title: bool);
#[cfg(feature = "NSImage")]
#[method_id(@__retain_semantics Other symbolConfiguration)]
pub unsafe fn symbolConfiguration(&self) -> Option<Retained<NSImageSymbolConfiguration>>;
#[cfg(feature = "NSImage")]
#[method(setSymbolConfiguration:)]
pub unsafe fn setSymbolConfiguration(
&self,
symbol_configuration: Option<&NSImageSymbolConfiguration>,
);
#[cfg(feature = "NSCell")]
#[method(state)]
pub unsafe fn state(&self) -> NSControlStateValue;
#[cfg(feature = "NSCell")]
#[method(setState:)]
pub unsafe fn setState(&self, state: NSControlStateValue);
#[method(allowsMixedState)]
pub unsafe fn allowsMixedState(&self) -> bool;
#[method(setAllowsMixedState:)]
pub unsafe fn setAllowsMixedState(&self, allows_mixed_state: bool);
#[method(setNextState)]
pub unsafe fn setNextState(&self);
#[method(highlight:)]
pub unsafe fn highlight(&self, flag: bool);
#[method_id(@__retain_semantics Other keyEquivalent)]
pub unsafe fn keyEquivalent(&self) -> Retained<NSString>;
#[method(setKeyEquivalent:)]
pub unsafe fn setKeyEquivalent(&self, key_equivalent: &NSString);
#[cfg(feature = "NSEvent")]
#[method(keyEquivalentModifierMask)]
pub unsafe fn keyEquivalentModifierMask(&self) -> NSEventModifierFlags;
#[cfg(feature = "NSEvent")]
#[method(setKeyEquivalentModifierMask:)]
pub unsafe fn setKeyEquivalentModifierMask(
&self,
key_equivalent_modifier_mask: NSEventModifierFlags,
);
#[cfg(feature = "NSEvent")]
#[method(performKeyEquivalent:)]
pub unsafe fn performKeyEquivalent(&self, key: &NSEvent) -> bool;
#[cfg(feature = "NSUserInterfaceCompression")]
#[method(compressWithPrioritizedCompressionOptions:)]
pub unsafe fn compressWithPrioritizedCompressionOptions(
&self,
prioritized_options: &NSArray<NSUserInterfaceCompressionOptions>,
);
#[cfg(feature = "NSUserInterfaceCompression")]
#[method(minimumSizeWithPrioritizedCompressionOptions:)]
pub unsafe fn minimumSizeWithPrioritizedCompressionOptions(
&self,
prioritized_options: &NSArray<NSUserInterfaceCompressionOptions>,
) -> NSSize;
#[cfg(feature = "NSUserInterfaceCompression")]
#[method_id(@__retain_semantics Other activeCompressionOptions)]
pub unsafe fn activeCompressionOptions(
&self,
) -> Retained<NSUserInterfaceCompressionOptions>;
}
);
extern_methods!(
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
unsafe impl NSButton {
#[method_id(@__retain_semantics Init initWithFrame:)]
pub unsafe fn initWithFrame(this: Allocated<Self>, frame_rect: NSRect) -> Retained<Self>;
#[method_id(@__retain_semantics Init initWithCoder:)]
pub unsafe fn initWithCoder(
this: Allocated<Self>,
coder: &NSCoder,
) -> Option<Retained<Self>>;
}
);
extern_methods!(
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
unsafe impl NSButton {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
}
);
extern_methods!(
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
unsafe impl NSButton {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
}
);
extern_methods!(
#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
unsafe impl NSButton {
#[deprecated = "Mnemonics are not used on macOS. Set the title property directly instead."]
#[method(setTitleWithMnemonic:)]
pub unsafe fn setTitleWithMnemonic(&self, string_with_ampersand: Option<&NSString>);
}
);