use objc2::__framework_prelude::*;
#[cfg(target_os = "macos")]
use objc2_app_kit::*;
use objc2_foundation::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct ASAuthorizationAppleIDButtonType(pub NSInteger);
impl ASAuthorizationAppleIDButtonType {
#[doc(alias = "ASAuthorizationAppleIDButtonTypeSignIn")]
pub const SignIn: Self = Self(0);
#[doc(alias = "ASAuthorizationAppleIDButtonTypeContinue")]
pub const Continue: Self = Self(1);
#[doc(alias = "ASAuthorizationAppleIDButtonTypeSignUp")]
pub const SignUp: Self = Self(2);
#[doc(alias = "ASAuthorizationAppleIDButtonTypeDefault")]
pub const Default: Self = Self(ASAuthorizationAppleIDButtonType::SignIn.0);
}
unsafe impl Encode for ASAuthorizationAppleIDButtonType {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for ASAuthorizationAppleIDButtonType {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct ASAuthorizationAppleIDButtonStyle(pub NSInteger);
impl ASAuthorizationAppleIDButtonStyle {
#[doc(alias = "ASAuthorizationAppleIDButtonStyleWhite")]
pub const White: Self = Self(0);
#[doc(alias = "ASAuthorizationAppleIDButtonStyleWhiteOutline")]
pub const WhiteOutline: Self = Self(1);
#[doc(alias = "ASAuthorizationAppleIDButtonStyleBlack")]
pub const Black: Self = Self(2);
}
unsafe impl Encode for ASAuthorizationAppleIDButtonStyle {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for ASAuthorizationAppleIDButtonStyle {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[cfg(target_os = "macos")]
unsafe impl NSAccessibility for ASAuthorizationAppleIDButton {}
#[cfg(target_os = "macos")]
unsafe impl NSAccessibilityButton for ASAuthorizationAppleIDButton {}
#[cfg(target_os = "macos")]
unsafe impl NSAccessibilityElementProtocol for ASAuthorizationAppleIDButton {}
#[cfg(target_os = "macos")]
unsafe impl NSAnimatablePropertyContainer for ASAuthorizationAppleIDButton {}
#[cfg(target_os = "macos")]
unsafe impl NSAppearanceCustomization for ASAuthorizationAppleIDButton {}
#[cfg(target_os = "macos")]
unsafe impl NSCoding for ASAuthorizationAppleIDButton {}
#[cfg(target_os = "macos")]
unsafe impl NSDraggingDestination for ASAuthorizationAppleIDButton {}
#[cfg(target_os = "macos")]
unsafe impl NSObjectProtocol for ASAuthorizationAppleIDButton {}
#[cfg(target_os = "macos")]
unsafe impl NSUserInterfaceItemIdentification for ASAuthorizationAppleIDButton {}
extern_methods!(
#[cfg(target_os = "macos")]
unsafe impl ASAuthorizationAppleIDButton {
#[method_id(@__retain_semantics Other buttonWithType:style:)]
pub unsafe fn buttonWithType_style(
r#type: ASAuthorizationAppleIDButtonType,
style: ASAuthorizationAppleIDButtonStyle,
mtm: MainThreadMarker,
) -> Retained<Self>;
#[method_id(@__retain_semantics Init initWithAuthorizationButtonType:authorizationButtonStyle:)]
pub unsafe fn initWithAuthorizationButtonType_authorizationButtonStyle(
this: Allocated<Self>,
r#type: ASAuthorizationAppleIDButtonType,
style: ASAuthorizationAppleIDButtonStyle,
) -> Retained<Self>;
#[method(cornerRadius)]
pub unsafe fn cornerRadius(&self) -> CGFloat;
#[method(setCornerRadius:)]
pub unsafe fn setCornerRadius(&self, corner_radius: CGFloat);
}
);
extern_methods!(
#[cfg(target_os = "macos")]
unsafe impl ASAuthorizationAppleIDButton {
#[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(target_os = "macos")]
unsafe impl ASAuthorizationAppleIDButton {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
}
);
extern_methods!(
#[cfg(target_os = "macos")]
unsafe impl ASAuthorizationAppleIDButton {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
}
);