objc2_tv_ui_kit/generated/
TVMediaItemContentConfiguration.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#[cfg(feature = "objc2-core-foundation")]
7use objc2_core_foundation::*;
8use objc2_foundation::*;
9#[cfg(feature = "objc2-quartz-core")]
10use objc2_quartz_core::*;
11use objc2_ui_kit::*;
12
13use crate::*;
14
15/// [Apple's documentation](https://developer.apple.com/documentation/tvuikit/tvmediaitemcontenttexttransform?language=objc)
16// NS_ENUM
17#[repr(transparent)]
18#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
19pub struct TVMediaItemContentTextTransform(pub NSInteger);
20impl TVMediaItemContentTextTransform {
21    #[doc(alias = "TVMediaItemContentTextTransformNone")]
22    pub const None: Self = Self(0);
23    #[doc(alias = "TVMediaItemContentTextTransformUppercase")]
24    pub const Uppercase: Self = Self(1);
25    #[doc(alias = "TVMediaItemContentTextTransformLowercase")]
26    pub const Lowercase: Self = Self(2);
27    #[doc(alias = "TVMediaItemContentTextTransformCapitalized")]
28    pub const Capitalized: Self = Self(3);
29}
30
31unsafe impl Encode for TVMediaItemContentTextTransform {
32    const ENCODING: Encoding = NSInteger::ENCODING;
33}
34
35unsafe impl RefEncode for TVMediaItemContentTextTransform {
36    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
37}
38
39extern_class!(
40    /// [Apple's documentation](https://developer.apple.com/documentation/tvuikit/tvmediaitemcontentconfiguration?language=objc)
41    #[unsafe(super(NSObject))]
42    #[thread_kind = MainThreadOnly]
43    #[derive(Debug, PartialEq, Eq, Hash)]
44    pub struct TVMediaItemContentConfiguration;
45);
46
47extern_conformance!(
48    unsafe impl NSCoding for TVMediaItemContentConfiguration {}
49);
50
51extern_conformance!(
52    unsafe impl NSCopying for TVMediaItemContentConfiguration {}
53);
54
55unsafe impl CopyingHelper for TVMediaItemContentConfiguration {
56    type Result = Self;
57}
58
59extern_conformance!(
60    unsafe impl NSObjectProtocol for TVMediaItemContentConfiguration {}
61);
62
63extern_conformance!(
64    unsafe impl NSSecureCoding for TVMediaItemContentConfiguration {}
65);
66
67extern_conformance!(
68    unsafe impl UIContentConfiguration for TVMediaItemContentConfiguration {}
69);
70
71impl TVMediaItemContentConfiguration {
72    extern_methods!(
73        /// Returns the default configuration for a wide cell with a 16:9 aspect ratio.
74        #[unsafe(method(wideCellConfiguration))]
75        #[unsafe(method_family = none)]
76        pub unsafe fn wideCellConfiguration(mtm: MainThreadMarker) -> Retained<Self>;
77
78        /// The image to display.
79        #[unsafe(method(image))]
80        #[unsafe(method_family = none)]
81        pub unsafe fn image(&self) -> Option<Retained<UIImage>>;
82
83        /// Setter for [`image`][Self::image].
84        #[unsafe(method(setImage:))]
85        #[unsafe(method_family = none)]
86        pub unsafe fn setImage(&self, image: Option<&UIImage>);
87
88        /// The primary text.
89        #[unsafe(method(text))]
90        #[unsafe(method_family = none)]
91        pub unsafe fn text(&self) -> Option<Retained<NSString>>;
92
93        /// Setter for [`text`][Self::text].
94        ///
95        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
96        #[unsafe(method(setText:))]
97        #[unsafe(method_family = none)]
98        pub unsafe fn setText(&self, text: Option<&NSString>);
99
100        /// Additional properties to configure the primary text.
101        #[unsafe(method(textProperties))]
102        #[unsafe(method_family = none)]
103        pub unsafe fn textProperties(&self) -> Retained<TVMediaItemContentTextProperties>;
104
105        /// The secondary text.
106        #[unsafe(method(secondaryText))]
107        #[unsafe(method_family = none)]
108        pub unsafe fn secondaryText(&self) -> Option<Retained<NSString>>;
109
110        /// Setter for [`secondaryText`][Self::secondaryText].
111        ///
112        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
113        #[unsafe(method(setSecondaryText:))]
114        #[unsafe(method_family = none)]
115        pub unsafe fn setSecondaryText(&self, secondary_text: Option<&NSString>);
116
117        /// Additional properties to configure the secondary text.
118        #[unsafe(method(secondaryTextProperties))]
119        #[unsafe(method_family = none)]
120        pub unsafe fn secondaryTextProperties(&self) -> Retained<TVMediaItemContentTextProperties>;
121
122        /// Playback progress to display. Value is clamped between 0.0 and 1.0.
123        #[unsafe(method(playbackProgress))]
124        #[unsafe(method_family = none)]
125        pub unsafe fn playbackProgress(&self) -> c_float;
126
127        /// Setter for [`playbackProgress`][Self::playbackProgress].
128        #[unsafe(method(setPlaybackProgress:))]
129        #[unsafe(method_family = none)]
130        pub unsafe fn setPlaybackProgress(&self, playback_progress: c_float);
131
132        /// Optional text to display in a badge that is displayed in the top corner of the content.
133        #[unsafe(method(badgeText))]
134        #[unsafe(method_family = none)]
135        pub unsafe fn badgeText(&self) -> Option<Retained<NSString>>;
136
137        /// Setter for [`badgeText`][Self::badgeText].
138        ///
139        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
140        #[unsafe(method(setBadgeText:))]
141        #[unsafe(method_family = none)]
142        pub unsafe fn setBadgeText(&self, badge_text: Option<&NSString>);
143
144        /// Additional properties to configure the badge.
145        #[unsafe(method(badgeProperties))]
146        #[unsafe(method_family = none)]
147        pub unsafe fn badgeProperties(&self) -> Retained<TVMediaItemContentBadgeProperties>;
148
149        /// Setter for [`badgeProperties`][Self::badgeProperties].
150        ///
151        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
152        #[unsafe(method(setBadgeProperties:))]
153        #[unsafe(method_family = none)]
154        pub unsafe fn setBadgeProperties(
155            &self,
156            badge_properties: &TVMediaItemContentBadgeProperties,
157        );
158
159        /// The overlayView will be placed above the image, and automatically resized to fill frame.
160        /// Enable preservesSuperviewLayoutMargins to inherit layoutMargins.
161        #[unsafe(method(overlayView))]
162        #[unsafe(method_family = none)]
163        pub unsafe fn overlayView(&self) -> Option<Retained<UIView>>;
164
165        /// Setter for [`overlayView`][Self::overlayView].
166        #[unsafe(method(setOverlayView:))]
167        #[unsafe(method_family = none)]
168        pub unsafe fn setOverlayView(&self, overlay_view: Option<&UIView>);
169
170        #[unsafe(method(new))]
171        #[unsafe(method_family = new)]
172        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
173
174        #[unsafe(method(init))]
175        #[unsafe(method_family = init)]
176        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
177    );
178}
179
180extern_class!(
181    /// [Apple's documentation](https://developer.apple.com/documentation/tvuikit/tvmediaitemcontentview?language=objc)
182    #[unsafe(super(UIView, UIResponder, NSObject))]
183    #[derive(Debug, PartialEq, Eq, Hash)]
184    pub struct TVMediaItemContentView;
185);
186
187#[cfg(feature = "objc2-quartz-core")]
188extern_conformance!(
189    unsafe impl CALayerDelegate for TVMediaItemContentView {}
190);
191
192extern_conformance!(
193    unsafe impl NSCoding for TVMediaItemContentView {}
194);
195
196extern_conformance!(
197    unsafe impl NSObjectProtocol for TVMediaItemContentView {}
198);
199
200extern_conformance!(
201    unsafe impl UIAppearance for TVMediaItemContentView {}
202);
203
204extern_conformance!(
205    unsafe impl UIAppearanceContainer for TVMediaItemContentView {}
206);
207
208extern_conformance!(
209    unsafe impl UIContentView for TVMediaItemContentView {}
210);
211
212extern_conformance!(
213    unsafe impl UICoordinateSpace for TVMediaItemContentView {}
214);
215
216extern_conformance!(
217    unsafe impl UIDynamicItem for TVMediaItemContentView {}
218);
219
220extern_conformance!(
221    unsafe impl UIFocusEnvironment for TVMediaItemContentView {}
222);
223
224extern_conformance!(
225    unsafe impl UIFocusItem for TVMediaItemContentView {}
226);
227
228extern_conformance!(
229    unsafe impl UIFocusItemContainer for TVMediaItemContentView {}
230);
231
232extern_conformance!(
233    unsafe impl UIResponderStandardEditActions for TVMediaItemContentView {}
234);
235
236extern_conformance!(
237    unsafe impl UITraitEnvironment for TVMediaItemContentView {}
238);
239
240impl TVMediaItemContentView {
241    extern_methods!(
242        #[unsafe(method(initWithConfiguration:))]
243        #[unsafe(method_family = init)]
244        pub unsafe fn initWithConfiguration(
245            this: Allocated<Self>,
246            configuration: &TVMediaItemContentConfiguration,
247        ) -> Retained<Self>;
248
249        #[unsafe(method(configuration))]
250        #[unsafe(method_family = none)]
251        pub unsafe fn configuration(&self) -> Retained<TVMediaItemContentConfiguration>;
252
253        /// Setter for [`configuration`][Self::configuration].
254        ///
255        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
256        #[unsafe(method(setConfiguration:))]
257        #[unsafe(method_family = none)]
258        pub unsafe fn setConfiguration(&self, configuration: &TVMediaItemContentConfiguration);
259
260        /// The content view may display itself in a larger frame when focused.
261        /// This layout guide can be used to align other elements with the image view's focused frame.
262        #[unsafe(method(focusedFrameGuide))]
263        #[unsafe(method_family = none)]
264        pub unsafe fn focusedFrameGuide(&self) -> Retained<UILayoutGuide>;
265
266        #[cfg(feature = "objc2-core-foundation")]
267        #[unsafe(method(initWithFrame:))]
268        #[unsafe(method_family = init)]
269        pub unsafe fn initWithFrame(this: Allocated<Self>, frame: CGRect) -> Retained<Self>;
270
271        #[unsafe(method(init))]
272        #[unsafe(method_family = init)]
273        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
274
275        #[unsafe(method(new))]
276        #[unsafe(method_family = new)]
277        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
278    );
279}
280
281/// Methods declared on superclass `UIView`.
282impl TVMediaItemContentView {
283    extern_methods!(
284        /// # Safety
285        ///
286        /// `coder` possibly has further requirements.
287        #[unsafe(method(initWithCoder:))]
288        #[unsafe(method_family = init)]
289        pub unsafe fn initWithCoder(
290            this: Allocated<Self>,
291            coder: &NSCoder,
292        ) -> Option<Retained<Self>>;
293    );
294}
295
296extern_class!(
297    /// [Apple's documentation](https://developer.apple.com/documentation/tvuikit/tvmediaitemcontenttextproperties?language=objc)
298    #[unsafe(super(NSObject))]
299    #[derive(Debug, PartialEq, Eq, Hash)]
300    pub struct TVMediaItemContentTextProperties;
301);
302
303extern_conformance!(
304    unsafe impl NSCoding for TVMediaItemContentTextProperties {}
305);
306
307extern_conformance!(
308    unsafe impl NSCopying for TVMediaItemContentTextProperties {}
309);
310
311unsafe impl CopyingHelper for TVMediaItemContentTextProperties {
312    type Result = Self;
313}
314
315extern_conformance!(
316    unsafe impl NSObjectProtocol for TVMediaItemContentTextProperties {}
317);
318
319extern_conformance!(
320    unsafe impl NSSecureCoding for TVMediaItemContentTextProperties {}
321);
322
323impl TVMediaItemContentTextProperties {
324    extern_methods!(
325        /// The font used for the text.
326        #[unsafe(method(font))]
327        #[unsafe(method_family = none)]
328        pub unsafe fn font(&self) -> Retained<UIFont>;
329
330        /// Setter for [`font`][Self::font].
331        ///
332        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
333        #[unsafe(method(setFont:))]
334        #[unsafe(method_family = none)]
335        pub unsafe fn setFont(&self, font: &UIFont);
336
337        /// The color of the text.
338        #[unsafe(method(color))]
339        #[unsafe(method_family = none)]
340        pub unsafe fn color(&self) -> Retained<UIColor>;
341
342        /// Setter for [`color`][Self::color].
343        ///
344        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
345        #[unsafe(method(setColor:))]
346        #[unsafe(method_family = none)]
347        pub unsafe fn setColor(&self, color: &UIColor);
348
349        /// A transform that is applied to the text before it is displayed.
350        #[unsafe(method(transform))]
351        #[unsafe(method_family = none)]
352        pub unsafe fn transform(&self) -> TVMediaItemContentTextTransform;
353
354        /// Setter for [`transform`][Self::transform].
355        #[unsafe(method(setTransform:))]
356        #[unsafe(method_family = none)]
357        pub unsafe fn setTransform(&self, transform: TVMediaItemContentTextTransform);
358
359        #[unsafe(method(new))]
360        #[unsafe(method_family = new)]
361        pub unsafe fn new() -> Retained<Self>;
362
363        #[unsafe(method(init))]
364        #[unsafe(method_family = init)]
365        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
366    );
367}
368
369extern_class!(
370    /// [Apple's documentation](https://developer.apple.com/documentation/tvuikit/tvmediaitemcontentbadgeproperties?language=objc)
371    #[unsafe(super(NSObject))]
372    #[derive(Debug, PartialEq, Eq, Hash)]
373    pub struct TVMediaItemContentBadgeProperties;
374);
375
376extern_conformance!(
377    unsafe impl NSCoding for TVMediaItemContentBadgeProperties {}
378);
379
380extern_conformance!(
381    unsafe impl NSCopying for TVMediaItemContentBadgeProperties {}
382);
383
384unsafe impl CopyingHelper for TVMediaItemContentBadgeProperties {
385    type Result = Self;
386}
387
388extern_conformance!(
389    unsafe impl NSObjectProtocol for TVMediaItemContentBadgeProperties {}
390);
391
392extern_conformance!(
393    unsafe impl NSSecureCoding for TVMediaItemContentBadgeProperties {}
394);
395
396impl TVMediaItemContentBadgeProperties {
397    extern_methods!(
398        /// Returns the properties for a default styled badge.
399        #[unsafe(method(defaultBadgeProperties))]
400        #[unsafe(method_family = none)]
401        pub unsafe fn defaultBadgeProperties() -> Retained<Self>;
402
403        /// Returns the properties for a badge representing live content.
404        #[unsafe(method(liveContentBadgeProperties))]
405        #[unsafe(method_family = none)]
406        pub unsafe fn liveContentBadgeProperties() -> Retained<Self>;
407
408        /// The background tint color of the badge.
409        #[unsafe(method(backgroundColor))]
410        #[unsafe(method_family = none)]
411        pub unsafe fn backgroundColor(&self) -> Retained<UIColor>;
412
413        /// Setter for [`backgroundColor`][Self::backgroundColor].
414        ///
415        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
416        #[unsafe(method(setBackgroundColor:))]
417        #[unsafe(method_family = none)]
418        pub unsafe fn setBackgroundColor(&self, background_color: &UIColor);
419
420        /// The font used for the badge text.
421        #[unsafe(method(font))]
422        #[unsafe(method_family = none)]
423        pub unsafe fn font(&self) -> Retained<UIFont>;
424
425        /// Setter for [`font`][Self::font].
426        ///
427        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
428        #[unsafe(method(setFont:))]
429        #[unsafe(method_family = none)]
430        pub unsafe fn setFont(&self, font: &UIFont);
431
432        /// The color of the badge text.
433        #[unsafe(method(color))]
434        #[unsafe(method_family = none)]
435        pub unsafe fn color(&self) -> Retained<UIColor>;
436
437        /// Setter for [`color`][Self::color].
438        ///
439        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
440        #[unsafe(method(setColor:))]
441        #[unsafe(method_family = none)]
442        pub unsafe fn setColor(&self, color: &UIColor);
443
444        /// A transform that is applied to the badge text before it is displayed.
445        #[unsafe(method(transform))]
446        #[unsafe(method_family = none)]
447        pub unsafe fn transform(&self) -> TVMediaItemContentTextTransform;
448
449        /// Setter for [`transform`][Self::transform].
450        #[unsafe(method(setTransform:))]
451        #[unsafe(method_family = none)]
452        pub unsafe fn setTransform(&self, transform: TVMediaItemContentTextTransform);
453
454        #[unsafe(method(new))]
455        #[unsafe(method_family = new)]
456        pub unsafe fn new() -> Retained<Self>;
457
458        #[unsafe(method(init))]
459        #[unsafe(method_family = init)]
460        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
461    );
462}
463
464mod private_NSCollectionLayoutSectionTVMediaItemContentConfiguration {
465    pub trait Sealed {}
466}
467
468/// Category "TVMediaItemContentConfiguration" on [`NSCollectionLayoutSection`].
469#[doc(alias = "TVMediaItemContentConfiguration")]
470pub unsafe trait NSCollectionLayoutSectionTVMediaItemContentConfiguration:
471    ClassType + Sized + private_NSCollectionLayoutSectionTVMediaItemContentConfiguration::Sealed
472{
473    extern_methods!(
474        /// Creates an orthogonal scrolling section with the system default sizing and spacing.
475        #[unsafe(method(orthogonalLayoutSectionForMediaItems))]
476        #[unsafe(method_family = none)]
477        unsafe fn orthogonalLayoutSectionForMediaItems(
478            mtm: MainThreadMarker,
479        ) -> Retained<NSCollectionLayoutSection>;
480    );
481}
482
483impl private_NSCollectionLayoutSectionTVMediaItemContentConfiguration::Sealed
484    for NSCollectionLayoutSection
485{
486}
487unsafe impl NSCollectionLayoutSectionTVMediaItemContentConfiguration for NSCollectionLayoutSection {}