objc2_car_play/generated/
CPSessionConfiguration.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6
7use crate::*;
8
9/// [Apple's documentation](https://developer.apple.com/documentation/carplay/cplimitableuserinterface?language=objc)
10// NS_OPTIONS
11#[repr(transparent)]
12#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
13pub struct CPLimitableUserInterface(pub NSUInteger);
14bitflags::bitflags! {
15    impl CPLimitableUserInterface: NSUInteger {
16        #[doc(alias = "CPLimitableUserInterfaceKeyboard")]
17        const Keyboard = 1<<0;
18        #[doc(alias = "CPLimitableUserInterfaceLists")]
19        const Lists = 1<<1;
20    }
21}
22
23unsafe impl Encode for CPLimitableUserInterface {
24    const ENCODING: Encoding = NSUInteger::ENCODING;
25}
26
27unsafe impl RefEncode for CPLimitableUserInterface {
28    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
29}
30
31/// [Apple's documentation](https://developer.apple.com/documentation/carplay/cpcontentstyle?language=objc)
32// NS_OPTIONS
33#[repr(transparent)]
34#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
35pub struct CPContentStyle(pub NSUInteger);
36bitflags::bitflags! {
37    impl CPContentStyle: NSUInteger {
38        #[doc(alias = "CPContentStyleLight")]
39        const Light = 1<<0;
40        #[doc(alias = "CPContentStyleDark")]
41        const Dark = 1<<1;
42    }
43}
44
45unsafe impl Encode for CPContentStyle {
46    const ENCODING: Encoding = NSUInteger::ENCODING;
47}
48
49unsafe impl RefEncode for CPContentStyle {
50    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
51}
52
53extern_class!(
54    /// [Apple's documentation](https://developer.apple.com/documentation/carplay/cpsessionconfiguration?language=objc)
55    #[unsafe(super(NSObject))]
56    #[derive(Debug, PartialEq, Eq, Hash)]
57    pub struct CPSessionConfiguration;
58);
59
60extern_conformance!(
61    unsafe impl NSObjectProtocol for CPSessionConfiguration {}
62);
63
64impl CPSessionConfiguration {
65    extern_methods!(
66        #[unsafe(method(initWithDelegate:))]
67        #[unsafe(method_family = init)]
68        pub unsafe fn initWithDelegate(
69            this: Allocated<Self>,
70            delegate: &ProtocolObject<dyn CPSessionConfigurationDelegate>,
71        ) -> Retained<Self>;
72
73        #[unsafe(method(init))]
74        #[unsafe(method_family = init)]
75        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
76
77        #[unsafe(method(new))]
78        #[unsafe(method_family = new)]
79        pub unsafe fn new() -> Retained<Self>;
80
81        #[unsafe(method(limitedUserInterfaces))]
82        #[unsafe(method_family = none)]
83        pub unsafe fn limitedUserInterfaces(&self) -> CPLimitableUserInterface;
84
85        #[unsafe(method(contentStyle))]
86        #[unsafe(method_family = none)]
87        pub unsafe fn contentStyle(&self) -> CPContentStyle;
88
89        #[unsafe(method(delegate))]
90        #[unsafe(method_family = none)]
91        pub unsafe fn delegate(
92            &self,
93            mtm: MainThreadMarker,
94        ) -> Option<Retained<ProtocolObject<dyn CPSessionConfigurationDelegate>>>;
95
96        /// Setter for [`delegate`][Self::delegate].
97        ///
98        /// This is a [weak property][objc2::topics::weak_property].
99        #[unsafe(method(setDelegate:))]
100        #[unsafe(method_family = none)]
101        pub unsafe fn setDelegate(
102            &self,
103            delegate: Option<&ProtocolObject<dyn CPSessionConfigurationDelegate>>,
104        );
105    );
106}
107
108extern_protocol!(
109    /// [Apple's documentation](https://developer.apple.com/documentation/carplay/cpsessionconfigurationdelegate?language=objc)
110    pub unsafe trait CPSessionConfigurationDelegate:
111        NSObjectProtocol + MainThreadOnly
112    {
113        #[optional]
114        #[unsafe(method(sessionConfiguration:limitedUserInterfacesChanged:))]
115        #[unsafe(method_family = none)]
116        unsafe fn sessionConfiguration_limitedUserInterfacesChanged(
117            &self,
118            session_configuration: &CPSessionConfiguration,
119            limited_user_interfaces: CPLimitableUserInterface,
120        );
121
122        #[optional]
123        #[unsafe(method(sessionConfiguration:contentStyleChanged:))]
124        #[unsafe(method_family = none)]
125        unsafe fn sessionConfiguration_contentStyleChanged(
126            &self,
127            session_configuration: &CPSessionConfiguration,
128            content_style: CPContentStyle,
129        );
130    }
131);