1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-core-foundation")]
use objc2_core_foundation::*;
use objc2_foundation::*;
#[cfg(feature = "objc2-ui-kit")]
use objc2_ui_kit::*;
use crate::*;
extern_class!(
/// [Apple's documentation](https://developer.apple.com/documentation/carplay/cplistimagerowitemcardelement?language=objc)
#[unsafe(super(CPListImageRowItemElement, NSObject))]
#[thread_kind = MainThreadOnly]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "CPListImageRowItemElement")]
pub struct CPListImageRowItemCardElement;
);
#[cfg(feature = "CPListImageRowItemElement")]
extern_conformance!(
unsafe impl NSObjectProtocol for CPListImageRowItemCardElement {}
);
#[cfg(feature = "CPListImageRowItemElement")]
impl CPListImageRowItemCardElement {
extern_methods!(
#[cfg(feature = "objc2-ui-kit")]
/// Initialize an element that is constituted of an image, boolean to entirely cover the element with the image, title, subtitle and a tint color.
///
/// When providing an image, your app should provide a
/// `UIImage`that is display-ready. If necessary for the image, provide
/// light and dark styles by using an asset from your asset catalog, prepared with light and dark styles
/// or by using
/// `UIImageAsset`to combine two
/// `UIImage`instances into a single image with
/// both styles.
///
/// UIImageAsset is used to combine multiple UIImages with different trait collections into a single UIImage.
///
///
/// Note: The expected image size is given by +[CPListImageRowItemCardElement maximumImageSize] or by +[CPListImageRowItemCardElement maximumFullHeightImageSize] if
/// `showsImageFullHeight`is true. Images provided will be resized to this size if necessary.
///
///
/// To properly size your images, your app should size them to the display scale of the car screen.
/// See -[CPInterfaceController carTraitCollection].
///
///
/// Parameter `image`: The image associated to the element.
///
/// Parameter `showsImageFullHeight`: Determines if the image should entirely cover the card
///
/// Parameter `title`: The title of the element.
///
/// Parameter `subtitle`: The subtitle of the element.
///
/// Parameter `tintColor`: The color used as background if
/// `showsImageFullHeight`is true, part of the gradient color at the bottom of the card otherwise.
#[unsafe(method(initWithImage:showsImageFullHeight:title:subtitle:tintColor:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithImage_showsImageFullHeight_title_subtitle_tintColor(
this: Allocated<Self>,
image: &UIImage,
shows_image_full_height: bool,
title: Option<&NSString>,
subtitle: Option<&NSString>,
tint_color: Option<&UIColor>,
) -> Retained<Self>;
/// The title associated with this element.
#[unsafe(method(title))]
#[unsafe(method_family = none)]
pub unsafe fn title(&self) -> Retained<NSString>;
/// Setter for [`title`][Self::title].
///
/// This is [copied][objc2_foundation::NSCopying::copy] when set.
#[unsafe(method(setTitle:))]
#[unsafe(method_family = none)]
pub unsafe fn setTitle(&self, title: &NSString);
/// The subtitle associated with this element.
#[unsafe(method(subtitle))]
#[unsafe(method_family = none)]
pub unsafe fn subtitle(&self) -> Option<Retained<NSString>>;
/// Setter for [`subtitle`][Self::subtitle].
///
/// This is [copied][objc2_foundation::NSCopying::copy] when set.
#[unsafe(method(setSubtitle:))]
#[unsafe(method_family = none)]
pub unsafe fn setSubtitle(&self, subtitle: Option<&NSString>);
/// A Boolean value indicating whether the element should be fill with the image.
///
///
/// Set the value of this property to
/// `YES`to fill the element with the image or
/// `NO`to use a rounded square image that does not fill the card.
#[unsafe(method(showsImageFullHeight))]
#[unsafe(method_family = none)]
pub unsafe fn showsImageFullHeight(&self) -> bool;
#[cfg(feature = "objc2-ui-kit")]
/// A UIColor used to tint the element. When
/// `showsImageFullHeight`is true, the tint color is applied behind the labels at the bottom of the card. Otherwise, this color is part of the gradient color at the bottom of the card.
///
/// If this value is nil, iOS will use secondarySystemBackground color.
#[unsafe(method(tintColor))]
#[unsafe(method_family = none)]
pub unsafe fn tintColor(&self) -> Option<Retained<UIColor>>;
#[cfg(feature = "objc2-ui-kit")]
/// Setter for [`tintColor`][Self::tintColor].
///
/// This is [copied][objc2_foundation::NSCopying::copy] when set.
#[unsafe(method(setTintColor:))]
#[unsafe(method_family = none)]
pub unsafe fn setTintColor(&self, tint_color: Option<&UIColor>);
#[cfg(feature = "objc2-core-foundation")]
/// The expected image size for the image in your
/// `CPListImageRowItemCardElement`when
/// `showsImageFullHeight`is false. Images provided
/// will be resized to this size.
///
///
/// To properly size your images, your app should size them to the display scale of the car screen.
/// See -[CPInterfaceController carTraitCollection].
#[unsafe(method(maximumImageSize))]
#[unsafe(method_family = none)]
pub unsafe fn maximumImageSize(mtm: MainThreadMarker) -> CGSize;
#[cfg(feature = "objc2-core-foundation")]
/// The expected image size for the image in your
/// `CPListImageRowItemCardElement`when
/// `showsImageFullHeight`is true. Images provided
/// will be resized to this size.
///
///
/// To properly size your images, your app should size them to the display scale of the car screen.
/// See -[CPInterfaceController carTraitCollection].
#[unsafe(method(maximumFullHeightImageSize))]
#[unsafe(method_family = none)]
pub unsafe fn maximumFullHeightImageSize(mtm: MainThreadMarker) -> CGSize;
);
}
/// Methods declared on superclass `CPListImageRowItemElement`.
#[cfg(feature = "CPListImageRowItemElement")]
impl CPListImageRowItemCardElement {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
);
}
/// Methods declared on superclass `NSObject`.
#[cfg(feature = "CPListImageRowItemElement")]
impl CPListImageRowItemCardElement {
extern_methods!(
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
);
}