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::*;
#[cfg(feature = "block2")]
pub type UIConfigurationTextAttributesTransformer = *mut block2::DynBlock<
dyn Fn(
NonNull<NSDictionary<NSAttributedStringKey, AnyObject>>,
) -> NonNull<NSDictionary<NSAttributedStringKey, AnyObject>>,
>;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIButtonConfigurationSize(pub NSInteger);
impl UIButtonConfigurationSize {
#[doc(alias = "UIButtonConfigurationSizeMedium")]
pub const Medium: Self = Self(0);
#[doc(alias = "UIButtonConfigurationSizeSmall")]
pub const Small: Self = Self(1);
#[doc(alias = "UIButtonConfigurationSizeMini")]
pub const Mini: Self = Self(2);
#[doc(alias = "UIButtonConfigurationSizeLarge")]
pub const Large: Self = Self(3);
}
unsafe impl Encode for UIButtonConfigurationSize {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UIButtonConfigurationSize {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIButtonConfigurationTitleAlignment(pub NSInteger);
impl UIButtonConfigurationTitleAlignment {
#[doc(alias = "UIButtonConfigurationTitleAlignmentAutomatic")]
pub const Automatic: Self = Self(0);
#[doc(alias = "UIButtonConfigurationTitleAlignmentLeading")]
pub const Leading: Self = Self(1);
#[doc(alias = "UIButtonConfigurationTitleAlignmentCenter")]
pub const Center: Self = Self(2);
#[doc(alias = "UIButtonConfigurationTitleAlignmentTrailing")]
pub const Trailing: Self = Self(3);
}
unsafe impl Encode for UIButtonConfigurationTitleAlignment {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UIButtonConfigurationTitleAlignment {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIButtonConfigurationCornerStyle(pub NSInteger);
impl UIButtonConfigurationCornerStyle {
#[doc(alias = "UIButtonConfigurationCornerStyleFixed")]
pub const Fixed: Self = Self(-1);
#[doc(alias = "UIButtonConfigurationCornerStyleDynamic")]
pub const Dynamic: Self = Self(0);
#[doc(alias = "UIButtonConfigurationCornerStyleSmall")]
pub const Small: Self = Self(1);
#[doc(alias = "UIButtonConfigurationCornerStyleMedium")]
pub const Medium: Self = Self(2);
#[doc(alias = "UIButtonConfigurationCornerStyleLarge")]
pub const Large: Self = Self(3);
#[doc(alias = "UIButtonConfigurationCornerStyleCapsule")]
pub const Capsule: Self = Self(4);
}
unsafe impl Encode for UIButtonConfigurationCornerStyle {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UIButtonConfigurationCornerStyle {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIButtonConfigurationMacIdiomStyle(pub NSInteger);
impl UIButtonConfigurationMacIdiomStyle {
#[doc(alias = "UIButtonConfigurationMacIdiomStyleAutomatic")]
pub const Automatic: Self = Self(0);
#[doc(alias = "UIButtonConfigurationMacIdiomStyleBordered")]
pub const Bordered: Self = Self(1);
#[doc(alias = "UIButtonConfigurationMacIdiomStyleBorderless")]
pub const Borderless: Self = Self(2);
#[doc(alias = "UIButtonConfigurationMacIdiomStyleBorderlessTinted")]
pub const BorderlessTinted: Self = Self(3);
}
unsafe impl Encode for UIButtonConfigurationMacIdiomStyle {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UIButtonConfigurationMacIdiomStyle {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIButtonConfigurationIndicator(pub NSInteger);
impl UIButtonConfigurationIndicator {
#[doc(alias = "UIButtonConfigurationIndicatorAutomatic")]
pub const Automatic: Self = Self(0);
#[doc(alias = "UIButtonConfigurationIndicatorNone")]
pub const None: Self = Self(1);
#[doc(alias = "UIButtonConfigurationIndicatorPopup")]
pub const Popup: Self = Self(2);
}
unsafe impl Encode for UIButtonConfigurationIndicator {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UIButtonConfigurationIndicator {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[unsafe(super(NSObject))]
#[thread_kind = MainThreadOnly]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UIButtonConfiguration;
);
extern_conformance!(
unsafe impl NSCoding for UIButtonConfiguration {}
);
extern_conformance!(
unsafe impl NSCopying for UIButtonConfiguration {}
);
unsafe impl CopyingHelper for UIButtonConfiguration {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for UIButtonConfiguration {}
);
extern_conformance!(
unsafe impl NSSecureCoding for UIButtonConfiguration {}
);
impl UIButtonConfiguration {
extern_methods!(
#[unsafe(method(plainButtonConfiguration))]
#[unsafe(method_family = none)]
pub fn plainButtonConfiguration(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(tintedButtonConfiguration))]
#[unsafe(method_family = none)]
pub fn tintedButtonConfiguration(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(grayButtonConfiguration))]
#[unsafe(method_family = none)]
pub fn grayButtonConfiguration(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(filledButtonConfiguration))]
#[unsafe(method_family = none)]
pub fn filledButtonConfiguration(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(borderlessButtonConfiguration))]
#[unsafe(method_family = none)]
pub fn borderlessButtonConfiguration(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(borderedButtonConfiguration))]
#[unsafe(method_family = none)]
pub fn borderedButtonConfiguration(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(borderedTintedButtonConfiguration))]
#[unsafe(method_family = none)]
pub fn borderedTintedButtonConfiguration(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(borderedProminentButtonConfiguration))]
#[unsafe(method_family = none)]
pub fn borderedProminentButtonConfiguration(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(glassButtonConfiguration))]
#[unsafe(method_family = none)]
pub fn glassButtonConfiguration(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(prominentGlassButtonConfiguration))]
#[unsafe(method_family = none)]
pub fn prominentGlassButtonConfiguration(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(tintedGlassButtonConfiguration))]
#[unsafe(method_family = none)]
pub fn tintedGlassButtonConfiguration(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(clearGlassButtonConfiguration))]
#[unsafe(method_family = none)]
pub fn clearGlassButtonConfiguration(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(prominentClearGlassButtonConfiguration))]
#[unsafe(method_family = none)]
pub fn prominentClearGlassButtonConfiguration(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[cfg(all(
feature = "UIButton",
feature = "UIControl",
feature = "UIResponder",
feature = "UIView"
))]
#[unsafe(method(updatedConfigurationForButton:))]
#[unsafe(method_family = none)]
pub fn updatedConfigurationForButton(&self, button: &UIButton) -> Retained<Self>;
#[cfg(feature = "UIBackgroundConfiguration")]
#[unsafe(method(background))]
#[unsafe(method_family = none)]
pub fn background(&self) -> Retained<UIBackgroundConfiguration>;
#[cfg(feature = "UIBackgroundConfiguration")]
#[unsafe(method(setBackground:))]
#[unsafe(method_family = none)]
pub fn setBackground(&self, background: &UIBackgroundConfiguration);
#[unsafe(method(cornerStyle))]
#[unsafe(method_family = none)]
pub fn cornerStyle(&self) -> UIButtonConfigurationCornerStyle;
#[unsafe(method(setCornerStyle:))]
#[unsafe(method_family = none)]
pub fn setCornerStyle(&self, corner_style: UIButtonConfigurationCornerStyle);
#[unsafe(method(buttonSize))]
#[unsafe(method_family = none)]
pub fn buttonSize(&self) -> UIButtonConfigurationSize;
#[unsafe(method(setButtonSize:))]
#[unsafe(method_family = none)]
pub fn setButtonSize(&self, button_size: UIButtonConfigurationSize);
#[unsafe(method(macIdiomStyle))]
#[unsafe(method_family = none)]
pub fn macIdiomStyle(&self) -> UIButtonConfigurationMacIdiomStyle;
#[unsafe(method(setMacIdiomStyle:))]
#[unsafe(method_family = none)]
pub fn setMacIdiomStyle(&self, mac_idiom_style: UIButtonConfigurationMacIdiomStyle);
#[cfg(feature = "UIColor")]
#[unsafe(method(baseForegroundColor))]
#[unsafe(method_family = none)]
pub fn baseForegroundColor(&self) -> Option<Retained<UIColor>>;
#[cfg(feature = "UIColor")]
#[unsafe(method(setBaseForegroundColor:))]
#[unsafe(method_family = none)]
pub fn setBaseForegroundColor(&self, base_foreground_color: Option<&UIColor>);
#[cfg(feature = "UIColor")]
#[unsafe(method(baseBackgroundColor))]
#[unsafe(method_family = none)]
pub fn baseBackgroundColor(&self) -> Option<Retained<UIColor>>;
#[cfg(feature = "UIColor")]
#[unsafe(method(setBaseBackgroundColor:))]
#[unsafe(method_family = none)]
pub fn setBaseBackgroundColor(&self, base_background_color: Option<&UIColor>);
#[cfg(feature = "UIImage")]
#[unsafe(method(image))]
#[unsafe(method_family = none)]
pub fn image(&self) -> Option<Retained<UIImage>>;
#[cfg(feature = "UIImage")]
#[unsafe(method(setImage:))]
#[unsafe(method_family = none)]
pub fn setImage(&self, image: Option<&UIImage>);
#[cfg(all(
feature = "UIColor",
feature = "UIConfigurationColorTransformer",
feature = "block2"
))]
#[unsafe(method(imageColorTransformer))]
#[unsafe(method_family = none)]
pub unsafe fn imageColorTransformer(&self) -> UIConfigurationColorTransformer;
#[cfg(all(
feature = "UIColor",
feature = "UIConfigurationColorTransformer",
feature = "block2"
))]
#[unsafe(method(setImageColorTransformer:))]
#[unsafe(method_family = none)]
pub unsafe fn setImageColorTransformer(
&self,
image_color_transformer: UIConfigurationColorTransformer,
);
#[cfg(all(
feature = "UIImageConfiguration",
feature = "UIImageSymbolConfiguration"
))]
#[unsafe(method(preferredSymbolConfigurationForImage))]
#[unsafe(method_family = none)]
pub fn preferredSymbolConfigurationForImage(
&self,
) -> Option<Retained<UIImageSymbolConfiguration>>;
#[cfg(all(
feature = "UIImageConfiguration",
feature = "UIImageSymbolConfiguration"
))]
#[unsafe(method(setPreferredSymbolConfigurationForImage:))]
#[unsafe(method_family = none)]
pub fn setPreferredSymbolConfigurationForImage(
&self,
preferred_symbol_configuration_for_image: Option<&UIImageSymbolConfiguration>,
);
#[cfg(feature = "UISymbolContentTransition")]
#[unsafe(method(symbolContentTransition))]
#[unsafe(method_family = none)]
pub fn symbolContentTransition(&self) -> Option<Retained<UISymbolContentTransition>>;
#[cfg(feature = "UISymbolContentTransition")]
#[unsafe(method(setSymbolContentTransition:))]
#[unsafe(method_family = none)]
pub fn setSymbolContentTransition(
&self,
symbol_content_transition: Option<&UISymbolContentTransition>,
);
#[unsafe(method(showsActivityIndicator))]
#[unsafe(method_family = none)]
pub fn showsActivityIndicator(&self) -> bool;
#[unsafe(method(setShowsActivityIndicator:))]
#[unsafe(method_family = none)]
pub fn setShowsActivityIndicator(&self, shows_activity_indicator: bool);
#[cfg(all(
feature = "UIColor",
feature = "UIConfigurationColorTransformer",
feature = "block2"
))]
#[unsafe(method(activityIndicatorColorTransformer))]
#[unsafe(method_family = none)]
pub unsafe fn activityIndicatorColorTransformer(&self) -> UIConfigurationColorTransformer;
#[cfg(all(
feature = "UIColor",
feature = "UIConfigurationColorTransformer",
feature = "block2"
))]
#[unsafe(method(setActivityIndicatorColorTransformer:))]
#[unsafe(method_family = none)]
pub unsafe fn setActivityIndicatorColorTransformer(
&self,
activity_indicator_color_transformer: UIConfigurationColorTransformer,
);
#[unsafe(method(title))]
#[unsafe(method_family = none)]
pub fn title(&self) -> Option<Retained<NSString>>;
#[unsafe(method(setTitle:))]
#[unsafe(method_family = none)]
pub fn setTitle(&self, title: Option<&NSString>);
#[unsafe(method(attributedTitle))]
#[unsafe(method_family = none)]
pub fn attributedTitle(&self) -> Option<Retained<NSAttributedString>>;
#[unsafe(method(setAttributedTitle:))]
#[unsafe(method_family = none)]
pub fn setAttributedTitle(&self, attributed_title: Option<&NSAttributedString>);
#[cfg(feature = "block2")]
#[unsafe(method(titleTextAttributesTransformer))]
#[unsafe(method_family = none)]
pub unsafe fn titleTextAttributesTransformer(
&self,
) -> UIConfigurationTextAttributesTransformer;
#[cfg(feature = "block2")]
#[unsafe(method(setTitleTextAttributesTransformer:))]
#[unsafe(method_family = none)]
pub unsafe fn setTitleTextAttributesTransformer(
&self,
title_text_attributes_transformer: UIConfigurationTextAttributesTransformer,
);
#[cfg(feature = "NSParagraphStyle")]
#[unsafe(method(titleLineBreakMode))]
#[unsafe(method_family = none)]
pub fn titleLineBreakMode(&self) -> NSLineBreakMode;
#[cfg(feature = "NSParagraphStyle")]
#[unsafe(method(setTitleLineBreakMode:))]
#[unsafe(method_family = none)]
pub fn setTitleLineBreakMode(&self, title_line_break_mode: NSLineBreakMode);
#[unsafe(method(subtitle))]
#[unsafe(method_family = none)]
pub fn subtitle(&self) -> Option<Retained<NSString>>;
#[unsafe(method(setSubtitle:))]
#[unsafe(method_family = none)]
pub fn setSubtitle(&self, subtitle: Option<&NSString>);
#[unsafe(method(attributedSubtitle))]
#[unsafe(method_family = none)]
pub fn attributedSubtitle(&self) -> Option<Retained<NSAttributedString>>;
#[unsafe(method(setAttributedSubtitle:))]
#[unsafe(method_family = none)]
pub fn setAttributedSubtitle(&self, attributed_subtitle: Option<&NSAttributedString>);
#[cfg(feature = "block2")]
#[unsafe(method(subtitleTextAttributesTransformer))]
#[unsafe(method_family = none)]
pub unsafe fn subtitleTextAttributesTransformer(
&self,
) -> UIConfigurationTextAttributesTransformer;
#[cfg(feature = "block2")]
#[unsafe(method(setSubtitleTextAttributesTransformer:))]
#[unsafe(method_family = none)]
pub unsafe fn setSubtitleTextAttributesTransformer(
&self,
subtitle_text_attributes_transformer: UIConfigurationTextAttributesTransformer,
);
#[cfg(feature = "NSParagraphStyle")]
#[unsafe(method(subtitleLineBreakMode))]
#[unsafe(method_family = none)]
pub fn subtitleLineBreakMode(&self) -> NSLineBreakMode;
#[cfg(feature = "NSParagraphStyle")]
#[unsafe(method(setSubtitleLineBreakMode:))]
#[unsafe(method_family = none)]
pub fn setSubtitleLineBreakMode(&self, subtitle_line_break_mode: NSLineBreakMode);
#[unsafe(method(indicator))]
#[unsafe(method_family = none)]
pub fn indicator(&self) -> UIButtonConfigurationIndicator;
#[unsafe(method(setIndicator:))]
#[unsafe(method_family = none)]
pub fn setIndicator(&self, indicator: UIButtonConfigurationIndicator);
#[cfg(all(
feature = "UIColor",
feature = "UIConfigurationColorTransformer",
feature = "block2"
))]
#[unsafe(method(indicatorColorTransformer))]
#[unsafe(method_family = none)]
pub unsafe fn indicatorColorTransformer(&self) -> UIConfigurationColorTransformer;
#[cfg(all(
feature = "UIColor",
feature = "UIConfigurationColorTransformer",
feature = "block2"
))]
#[unsafe(method(setIndicatorColorTransformer:))]
#[unsafe(method_family = none)]
pub unsafe fn setIndicatorColorTransformer(
&self,
indicator_color_transformer: UIConfigurationColorTransformer,
);
#[cfg(all(feature = "UIGeometry", feature = "objc2-core-foundation"))]
#[unsafe(method(contentInsets))]
#[unsafe(method_family = none)]
pub fn contentInsets(&self) -> NSDirectionalEdgeInsets;
#[cfg(all(feature = "UIGeometry", feature = "objc2-core-foundation"))]
#[unsafe(method(setContentInsets:))]
#[unsafe(method_family = none)]
pub fn setContentInsets(&self, content_insets: NSDirectionalEdgeInsets);
#[unsafe(method(setDefaultContentInsets))]
#[unsafe(method_family = none)]
pub fn setDefaultContentInsets(&self);
#[cfg(feature = "UIGeometry")]
#[unsafe(method(imagePlacement))]
#[unsafe(method_family = none)]
pub fn imagePlacement(&self) -> NSDirectionalRectEdge;
#[cfg(feature = "UIGeometry")]
#[unsafe(method(setImagePlacement:))]
#[unsafe(method_family = none)]
pub fn setImagePlacement(&self, image_placement: NSDirectionalRectEdge);
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(imagePadding))]
#[unsafe(method_family = none)]
pub fn imagePadding(&self) -> CGFloat;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(setImagePadding:))]
#[unsafe(method_family = none)]
pub fn setImagePadding(&self, image_padding: CGFloat);
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(titlePadding))]
#[unsafe(method_family = none)]
pub fn titlePadding(&self) -> CGFloat;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(setTitlePadding:))]
#[unsafe(method_family = none)]
pub fn setTitlePadding(&self, title_padding: CGFloat);
#[unsafe(method(titleAlignment))]
#[unsafe(method_family = none)]
pub fn titleAlignment(&self) -> UIButtonConfigurationTitleAlignment;
#[unsafe(method(setTitleAlignment:))]
#[unsafe(method_family = none)]
pub fn setTitleAlignment(&self, title_alignment: UIButtonConfigurationTitleAlignment);
#[unsafe(method(automaticallyUpdateForSelection))]
#[unsafe(method_family = none)]
pub fn automaticallyUpdateForSelection(&self) -> bool;
#[unsafe(method(setAutomaticallyUpdateForSelection:))]
#[unsafe(method_family = none)]
pub fn setAutomaticallyUpdateForSelection(&self, automatically_update_for_selection: bool);
);
}