objc2-clock-kit 0.3.2

Bindings to the ClockKit framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

/// [Apple's documentation](https://developer.apple.com/documentation/clockkit/clkcomplicationfamily?language=objc)
// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CLKComplicationFamily(pub NSInteger);
impl CLKComplicationFamily {
    #[doc(alias = "CLKComplicationFamilyModularSmall")]
    pub const ModularSmall: Self = Self(0);
    #[doc(alias = "CLKComplicationFamilyModularLarge")]
    pub const ModularLarge: Self = Self(1);
    #[doc(alias = "CLKComplicationFamilyUtilitarianSmall")]
    pub const UtilitarianSmall: Self = Self(2);
    #[doc(alias = "CLKComplicationFamilyUtilitarianSmallFlat")]
    pub const UtilitarianSmallFlat: Self = Self(6);
    #[doc(alias = "CLKComplicationFamilyUtilitarianLarge")]
    pub const UtilitarianLarge: Self = Self(3);
    #[doc(alias = "CLKComplicationFamilyCircularSmall")]
    pub const CircularSmall: Self = Self(4);
    #[doc(alias = "CLKComplicationFamilyExtraLarge")]
    pub const ExtraLarge: Self = Self(7);
    #[doc(alias = "CLKComplicationFamilyGraphicCorner")]
    pub const GraphicCorner: Self = Self(8);
    #[doc(alias = "CLKComplicationFamilyGraphicBezel")]
    pub const GraphicBezel: Self = Self(9);
    #[doc(alias = "CLKComplicationFamilyGraphicCircular")]
    pub const GraphicCircular: Self = Self(10);
    #[doc(alias = "CLKComplicationFamilyGraphicRectangular")]
    pub const GraphicRectangular: Self = Self(11);
    #[doc(alias = "CLKComplicationFamilyGraphicExtraLarge")]
    pub const GraphicExtraLarge: Self = Self(12);
}

unsafe impl Encode for CLKComplicationFamily {
    const ENCODING: Encoding = NSInteger::ENCODING;
}

unsafe impl RefEncode for CLKComplicationFamily {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

/// [Apple's documentation](https://developer.apple.com/documentation/clockkit/clkcomplicationtimetraveldirections?language=objc)
// NS_OPTIONS
#[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CLKComplicationTimeTravelDirections(pub NSUInteger);
bitflags::bitflags! {
    impl CLKComplicationTimeTravelDirections: NSUInteger {
        #[doc(alias = "CLKComplicationTimeTravelDirectionNone")]
#[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
        const None = 0;
        #[doc(alias = "CLKComplicationTimeTravelDirectionForward")]
#[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
        const Forward = 1<<0;
        #[doc(alias = "CLKComplicationTimeTravelDirectionBackward")]
#[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
        const Backward = 1<<1;
    }
}

unsafe impl Encode for CLKComplicationTimeTravelDirections {
    const ENCODING: Encoding = NSUInteger::ENCODING;
}

unsafe impl RefEncode for CLKComplicationTimeTravelDirections {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

/// [Apple's documentation](https://developer.apple.com/documentation/clockkit/clkcomplicationprivacybehavior?language=objc)
// NS_ENUM
#[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CLKComplicationPrivacyBehavior(pub NSUInteger);
impl CLKComplicationPrivacyBehavior {
    #[doc(alias = "CLKComplicationPrivacyBehaviorShowOnLockScreen")]
    #[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
    pub const ShowOnLockScreen: Self = Self(0);
    #[doc(alias = "CLKComplicationPrivacyBehaviorHideOnLockScreen")]
    #[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
    pub const HideOnLockScreen: Self = Self(1);
}

unsafe impl Encode for CLKComplicationPrivacyBehavior {
    const ENCODING: Encoding = NSUInteger::ENCODING;
}

unsafe impl RefEncode for CLKComplicationPrivacyBehavior {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

/// [Apple's documentation](https://developer.apple.com/documentation/clockkit/clkcomplicationtimelineanimationbehavior?language=objc)
// NS_ENUM
#[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CLKComplicationTimelineAnimationBehavior(pub NSUInteger);
impl CLKComplicationTimelineAnimationBehavior {
    #[doc(alias = "CLKComplicationTimelineAnimationBehaviorNever")]
    #[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
    pub const Never: Self = Self(0);
    #[doc(alias = "CLKComplicationTimelineAnimationBehaviorGrouped")]
    #[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
    pub const Grouped: Self = Self(1);
    #[doc(alias = "CLKComplicationTimelineAnimationBehaviorAlways")]
    #[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
    pub const Always: Self = Self(2);
}

unsafe impl Encode for CLKComplicationTimelineAnimationBehavior {
    const ENCODING: Encoding = NSUInteger::ENCODING;
}

unsafe impl RefEncode for CLKComplicationTimelineAnimationBehavior {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

/// [Apple's documentation](https://developer.apple.com/documentation/clockkit/clkcomplicationcolumnalignment?language=objc)
// NS_ENUM
#[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CLKComplicationColumnAlignment(pub NSInteger);
impl CLKComplicationColumnAlignment {
    #[doc(alias = "CLKComplicationColumnAlignmentLeading")]
    #[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
    pub const Leading: Self = Self(0);
    #[doc(alias = "CLKComplicationColumnAlignmentTrailing")]
    #[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
    pub const Trailing: Self = Self(1);
    #[doc(alias = "CLKComplicationColumnAlignmentLeft")]
    #[deprecated]
    pub const Left: Self = Self(CLKComplicationColumnAlignment::Leading.0);
    #[doc(alias = "CLKComplicationColumnAlignmentRight")]
    #[deprecated]
    pub const Right: Self = Self(CLKComplicationColumnAlignment::Trailing.0);
}

unsafe impl Encode for CLKComplicationColumnAlignment {
    const ENCODING: Encoding = NSInteger::ENCODING;
}

unsafe impl RefEncode for CLKComplicationColumnAlignment {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

/// [Apple's documentation](https://developer.apple.com/documentation/clockkit/clkcomplicationringstyle?language=objc)
// NS_ENUM
#[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CLKComplicationRingStyle(pub NSInteger);
impl CLKComplicationRingStyle {
    #[doc(alias = "CLKComplicationRingStyleClosed")]
    #[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
    pub const Closed: Self = Self(0);
    #[doc(alias = "CLKComplicationRingStyleOpen")]
    #[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
    pub const Open: Self = Self(1);
}

unsafe impl Encode for CLKComplicationRingStyle {
    const ENCODING: Encoding = NSInteger::ENCODING;
}

unsafe impl RefEncode for CLKComplicationRingStyle {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

/// [Apple's documentation](https://developer.apple.com/documentation/clockkit/clkgaugeproviderstyle?language=objc)
// NS_ENUM
#[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CLKGaugeProviderStyle(pub NSInteger);
impl CLKGaugeProviderStyle {
    #[doc(alias = "CLKGaugeProviderStyleRing")]
    #[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
    pub const Ring: Self = Self(0);
    #[doc(alias = "CLKGaugeProviderStyleFill")]
    #[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
    pub const Fill: Self = Self(1);
}

unsafe impl Encode for CLKGaugeProviderStyle {
    const ENCODING: Encoding = NSInteger::ENCODING;
}

unsafe impl RefEncode for CLKGaugeProviderStyle {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/clockkit/clksimplegaugeproviderfillfractionempty?language=objc)
    #[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
    pub static CLKSimpleGaugeProviderFillFractionEmpty: c_float;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/clockkit/clklaunchedtimelineentrydatekey?language=objc)
    #[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
    pub static CLKLaunchedTimelineEntryDateKey: Option<&'static NSString>;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/clockkit/clklaunchedcomplicationidentifierkey?language=objc)
    #[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
    pub static CLKLaunchedComplicationIdentifierKey: Option<&'static NSString>;
}

extern "C" {
    /// [Apple's documentation](https://developer.apple.com/documentation/clockkit/clkdefaultcomplicationidentifier?language=objc)
    pub static CLKDefaultComplicationIdentifier: Option<&'static NSString>;
}

#[deprecated = "On watchOS 9.0 or later, use WidgetKit instead"]
#[inline]
pub unsafe extern "C-unwind" fn CLKAllComplicationFamilies() -> Option<Retained<NSArray<NSNumber>>>
{
    extern "C-unwind" {
        fn CLKAllComplicationFamilies() -> *mut NSArray<NSNumber>;
    }
    let ret = unsafe { CLKAllComplicationFamilies() };
    unsafe { Retained::retain_autoreleased(ret) }
}