objc2_app_kit/generated/
NSStringDrawing.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
10use crate::*;
11
12extern_class!(
13    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsstringdrawingcontext?language=objc)
14    #[unsafe(super(NSObject))]
15    #[derive(Debug, PartialEq, Eq, Hash)]
16    pub struct NSStringDrawingContext;
17);
18
19extern_conformance!(
20    unsafe impl NSObjectProtocol for NSStringDrawingContext {}
21);
22
23impl NSStringDrawingContext {
24    extern_methods!(
25        #[cfg(feature = "objc2-core-foundation")]
26        #[unsafe(method(minimumScaleFactor))]
27        #[unsafe(method_family = none)]
28        pub fn minimumScaleFactor(&self) -> CGFloat;
29
30        #[cfg(feature = "objc2-core-foundation")]
31        /// Setter for [`minimumScaleFactor`][Self::minimumScaleFactor].
32        #[unsafe(method(setMinimumScaleFactor:))]
33        #[unsafe(method_family = none)]
34        pub fn setMinimumScaleFactor(&self, minimum_scale_factor: CGFloat);
35
36        #[cfg(feature = "objc2-core-foundation")]
37        #[unsafe(method(actualScaleFactor))]
38        #[unsafe(method_family = none)]
39        pub fn actualScaleFactor(&self) -> CGFloat;
40
41        #[cfg(feature = "objc2-core-foundation")]
42        #[unsafe(method(totalBounds))]
43        #[unsafe(method_family = none)]
44        pub fn totalBounds(&self) -> CGRect;
45    );
46}
47
48/// Methods declared on superclass `NSObject`.
49impl NSStringDrawingContext {
50    extern_methods!(
51        #[unsafe(method(init))]
52        #[unsafe(method_family = init)]
53        pub fn init(this: Allocated<Self>) -> Retained<Self>;
54
55        #[unsafe(method(new))]
56        #[unsafe(method_family = new)]
57        pub fn new() -> Retained<Self>;
58    );
59}
60
61impl DefaultRetained for NSStringDrawingContext {
62    #[inline]
63    fn default_retained() -> Retained<Self> {
64        Self::new()
65    }
66}
67
68mod private_NSStringDrawing {
69    pub trait Sealed {}
70}
71
72/// Category on [`NSString`].
73pub unsafe trait NSStringDrawing:
74    ClassType + Sized + private_NSStringDrawing::Sealed
75{
76    extern_methods!(
77        #[cfg(feature = "objc2-core-foundation")]
78        /// # Safety
79        ///
80        /// `attrs` generic should be of the correct type.
81        #[unsafe(method(sizeWithAttributes:))]
82        #[unsafe(method_family = none)]
83        unsafe fn sizeWithAttributes(
84            &self,
85            attrs: Option<&NSDictionary<NSAttributedStringKey, AnyObject>>,
86        ) -> CGSize;
87
88        #[cfg(feature = "objc2-core-foundation")]
89        /// # Safety
90        ///
91        /// `attrs` generic should be of the correct type.
92        #[unsafe(method(drawAtPoint:withAttributes:))]
93        #[unsafe(method_family = none)]
94        unsafe fn drawAtPoint_withAttributes(
95            &self,
96            point: CGPoint,
97            attrs: Option<&NSDictionary<NSAttributedStringKey, AnyObject>>,
98        );
99
100        #[cfg(feature = "objc2-core-foundation")]
101        /// # Safety
102        ///
103        /// `attrs` generic should be of the correct type.
104        #[unsafe(method(drawInRect:withAttributes:))]
105        #[unsafe(method_family = none)]
106        unsafe fn drawInRect_withAttributes(
107            &self,
108            rect: CGRect,
109            attrs: Option<&NSDictionary<NSAttributedStringKey, AnyObject>>,
110        );
111    );
112}
113
114impl private_NSStringDrawing::Sealed for NSString {}
115unsafe impl NSStringDrawing for NSString {}
116
117mod private_NSAttributedStringNSStringDrawing {
118    pub trait Sealed {}
119}
120
121/// Category "NSStringDrawing" on [`NSAttributedString`].
122#[doc(alias = "NSStringDrawing")]
123pub unsafe trait NSAttributedStringNSStringDrawing:
124    ClassType + Sized + private_NSAttributedStringNSStringDrawing::Sealed
125{
126    extern_methods!(
127        #[cfg(feature = "objc2-core-foundation")]
128        #[unsafe(method(size))]
129        #[unsafe(method_family = none)]
130        fn size(&self) -> CGSize;
131
132        #[cfg(feature = "objc2-core-foundation")]
133        #[unsafe(method(drawAtPoint:))]
134        #[unsafe(method_family = none)]
135        fn drawAtPoint(&self, point: CGPoint);
136
137        #[cfg(feature = "objc2-core-foundation")]
138        #[unsafe(method(drawInRect:))]
139        #[unsafe(method_family = none)]
140        fn drawInRect(&self, rect: CGRect);
141    );
142}
143
144impl private_NSAttributedStringNSStringDrawing::Sealed for NSAttributedString {}
145unsafe impl NSAttributedStringNSStringDrawing for NSAttributedString {}
146
147/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsstringdrawingoptions?language=objc)
148// NS_OPTIONS
149#[repr(transparent)]
150#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
151pub struct NSStringDrawingOptions(pub NSInteger);
152bitflags::bitflags! {
153    impl NSStringDrawingOptions: NSInteger {
154        #[doc(alias = "NSStringDrawingUsesLineFragmentOrigin")]
155        const UsesLineFragmentOrigin = 1<<0;
156        #[doc(alias = "NSStringDrawingUsesFontLeading")]
157        const UsesFontLeading = 1<<1;
158        #[doc(alias = "NSStringDrawingUsesDeviceMetrics")]
159        const UsesDeviceMetrics = 1<<3;
160        #[doc(alias = "NSStringDrawingTruncatesLastVisibleLine")]
161        const TruncatesLastVisibleLine = 1<<5;
162/// Specifies the behavior for resolving ``NSTextAlignment.natural`` to the visual alignment.
163///
164/// When set, the resolved visual alignment is determined by the resolved base writing direction; otherwise, it is using the user’s preferred language.
165        #[doc(alias = "NSStringDrawingOptionsResolvesNaturalAlignmentWithBaseWritingDirection")]
166        const OptionsResolvesNaturalAlignmentWithBaseWritingDirection = 1<<9;
167/// Specifies the behavior for resolving ``NSTextAlignment.natural`` to the visual alignment.
168///
169/// When set, the resolved visual alignment is determined by the resolved base writing direction; otherwise, it is using the user’s preferred language.
170        #[doc(alias = "NSStringDrawingDisableScreenFontSubstitution")]
171#[deprecated]
172        const DisableScreenFontSubstitution = 1<<2;
173/// Specifies the behavior for resolving ``NSTextAlignment.natural`` to the visual alignment.
174///
175/// When set, the resolved visual alignment is determined by the resolved base writing direction; otherwise, it is using the user’s preferred language.
176        #[doc(alias = "NSStringDrawingOneShot")]
177#[deprecated]
178        const OneShot = 1<<4;
179    }
180}
181
182unsafe impl Encode for NSStringDrawingOptions {
183    const ENCODING: Encoding = NSInteger::ENCODING;
184}
185
186unsafe impl RefEncode for NSStringDrawingOptions {
187    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
188}
189
190mod private_NSStringNSExtendedStringDrawing {
191    pub trait Sealed {}
192}
193
194/// Category "NSExtendedStringDrawing" on [`NSString`].
195#[doc(alias = "NSExtendedStringDrawing")]
196pub unsafe trait NSStringNSExtendedStringDrawing:
197    ClassType + Sized + private_NSStringNSExtendedStringDrawing::Sealed
198{
199    extern_methods!(
200        #[cfg(feature = "objc2-core-foundation")]
201        /// # Safety
202        ///
203        /// `attributes` generic should be of the correct type.
204        #[unsafe(method(drawWithRect:options:attributes:context:))]
205        #[unsafe(method_family = none)]
206        unsafe fn drawWithRect_options_attributes_context(
207            &self,
208            rect: CGRect,
209            options: NSStringDrawingOptions,
210            attributes: Option<&NSDictionary<NSAttributedStringKey, AnyObject>>,
211            context: Option<&NSStringDrawingContext>,
212        );
213
214        #[cfg(feature = "objc2-core-foundation")]
215        /// # Safety
216        ///
217        /// `attributes` generic should be of the correct type.
218        #[unsafe(method(boundingRectWithSize:options:attributes:context:))]
219        #[unsafe(method_family = none)]
220        unsafe fn boundingRectWithSize_options_attributes_context(
221            &self,
222            size: CGSize,
223            options: NSStringDrawingOptions,
224            attributes: Option<&NSDictionary<NSAttributedStringKey, AnyObject>>,
225            context: Option<&NSStringDrawingContext>,
226        ) -> CGRect;
227    );
228}
229
230impl private_NSStringNSExtendedStringDrawing::Sealed for NSString {}
231unsafe impl NSStringNSExtendedStringDrawing for NSString {}
232
233mod private_NSAttributedStringNSExtendedStringDrawing {
234    pub trait Sealed {}
235}
236
237/// Category "NSExtendedStringDrawing" on [`NSAttributedString`].
238#[doc(alias = "NSExtendedStringDrawing")]
239pub unsafe trait NSAttributedStringNSExtendedStringDrawing:
240    ClassType + Sized + private_NSAttributedStringNSExtendedStringDrawing::Sealed
241{
242    extern_methods!(
243        #[cfg(feature = "objc2-core-foundation")]
244        #[unsafe(method(drawWithRect:options:context:))]
245        #[unsafe(method_family = none)]
246        fn drawWithRect_options_context(
247            &self,
248            rect: CGRect,
249            options: NSStringDrawingOptions,
250            context: Option<&NSStringDrawingContext>,
251        );
252
253        #[cfg(feature = "objc2-core-foundation")]
254        #[unsafe(method(boundingRectWithSize:options:context:))]
255        #[unsafe(method_family = none)]
256        fn boundingRectWithSize_options_context(
257            &self,
258            size: CGSize,
259            options: NSStringDrawingOptions,
260            context: Option<&NSStringDrawingContext>,
261        ) -> CGRect;
262    );
263}
264
265impl private_NSAttributedStringNSExtendedStringDrawing::Sealed for NSAttributedString {}
266unsafe impl NSAttributedStringNSExtendedStringDrawing for NSAttributedString {}
267
268mod private_NSStringDrawingDeprecated {
269    pub trait Sealed {}
270}
271
272/// Category on [`NSString`].
273///
274/// ********************** Deprecated ***********************
275pub unsafe trait NSStringDrawingDeprecated:
276    ClassType + Sized + private_NSStringDrawingDeprecated::Sealed
277{
278    extern_methods!(
279        /// # Safety
280        ///
281        /// `attributes` generic should be of the correct type.
282        #[unsafe(method(drawWithRect:options:attributes:))]
283        #[unsafe(method_family = none)]
284        unsafe fn drawWithRect_options_attributes(
285            &self,
286            rect: NSRect,
287            options: NSStringDrawingOptions,
288            attributes: Option<&NSDictionary<NSAttributedStringKey, AnyObject>>,
289        );
290
291        /// # Safety
292        ///
293        /// `attributes` generic should be of the correct type.
294        #[unsafe(method(boundingRectWithSize:options:attributes:))]
295        #[unsafe(method_family = none)]
296        unsafe fn boundingRectWithSize_options_attributes(
297            &self,
298            size: NSSize,
299            options: NSStringDrawingOptions,
300            attributes: Option<&NSDictionary<NSAttributedStringKey, AnyObject>>,
301        ) -> NSRect;
302    );
303}
304
305impl private_NSStringDrawingDeprecated::Sealed for NSString {}
306unsafe impl NSStringDrawingDeprecated for NSString {}
307
308mod private_NSAttributedStringNSStringDrawingDeprecated {
309    pub trait Sealed {}
310}
311
312/// Category "NSStringDrawingDeprecated" on [`NSAttributedString`].
313#[doc(alias = "NSStringDrawingDeprecated")]
314pub unsafe trait NSAttributedStringNSStringDrawingDeprecated:
315    ClassType + Sized + private_NSAttributedStringNSStringDrawingDeprecated::Sealed
316{
317    extern_methods!(
318        #[unsafe(method(drawWithRect:options:))]
319        #[unsafe(method_family = none)]
320        fn drawWithRect_options(&self, rect: NSRect, options: NSStringDrawingOptions);
321
322        #[unsafe(method(boundingRectWithSize:options:))]
323        #[unsafe(method_family = none)]
324        fn boundingRectWithSize_options(
325            &self,
326            size: NSSize,
327            options: NSStringDrawingOptions,
328        ) -> NSRect;
329    );
330}
331
332impl private_NSAttributedStringNSStringDrawingDeprecated::Sealed for NSAttributedString {}
333unsafe impl NSAttributedStringNSStringDrawingDeprecated for NSAttributedString {}