objc2_app_kit/generated/
NSFontDescriptor.rs1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6#[cfg(feature = "objc2-core-foundation")]
7use objc2_core_foundation::*;
8#[cfg(feature = "objc2-core-text")]
9#[cfg(target_vendor = "apple")]
10use objc2_core_text::*;
11use objc2_foundation::*;
12
13use crate::*;
14
15pub type NSFontSymbolicTraits = u32;
17
18#[repr(transparent)]
21#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
22pub struct NSFontDescriptorSymbolicTraits(pub u32);
23bitflags::bitflags! {
24 impl NSFontDescriptorSymbolicTraits: u32 {
25 #[doc(alias = "NSFontDescriptorTraitItalic")]
26 const TraitItalic = 1<<0;
27 #[doc(alias = "NSFontDescriptorTraitBold")]
28 const TraitBold = 1<<1;
29 #[doc(alias = "NSFontDescriptorTraitExpanded")]
30 const TraitExpanded = 1<<5;
31 #[doc(alias = "NSFontDescriptorTraitCondensed")]
32 const TraitCondensed = 1<<6;
33 #[doc(alias = "NSFontDescriptorTraitMonoSpace")]
34 const TraitMonoSpace = 1<<10;
35 #[doc(alias = "NSFontDescriptorTraitVertical")]
36 const TraitVertical = 1<<11;
37 #[doc(alias = "NSFontDescriptorTraitUIOptimized")]
38 const TraitUIOptimized = 1<<12;
39 #[doc(alias = "NSFontDescriptorTraitTightLeading")]
40 const TraitTightLeading = 1<<15;
41 #[doc(alias = "NSFontDescriptorTraitLooseLeading")]
42 const TraitLooseLeading = 1<<16;
43 #[doc(alias = "NSFontDescriptorTraitEmphasized")]
44 const TraitEmphasized = NSFontDescriptorSymbolicTraits::TraitBold.0;
45 #[doc(alias = "NSFontDescriptorClassMask")]
46 const ClassMask = 0xF0000000;
47 #[doc(alias = "NSFontDescriptorClassUnknown")]
48 const ClassUnknown = 0<<28;
49 #[doc(alias = "NSFontDescriptorClassOldStyleSerifs")]
50 const ClassOldStyleSerifs = 1<<28;
51 #[doc(alias = "NSFontDescriptorClassTransitionalSerifs")]
52 const ClassTransitionalSerifs = 2<<28;
53 #[doc(alias = "NSFontDescriptorClassModernSerifs")]
54 const ClassModernSerifs = 3<<28;
55 #[doc(alias = "NSFontDescriptorClassClarendonSerifs")]
56 const ClassClarendonSerifs = 4<<28;
57 #[doc(alias = "NSFontDescriptorClassSlabSerifs")]
58 const ClassSlabSerifs = 5<<28;
59 #[doc(alias = "NSFontDescriptorClassFreeformSerifs")]
60 const ClassFreeformSerifs = 7<<28;
61 #[doc(alias = "NSFontDescriptorClassSansSerif")]
62 const ClassSansSerif = 8<<28;
63 #[doc(alias = "NSFontDescriptorClassOrnamentals")]
64 const ClassOrnamentals = 9<<28;
65 #[doc(alias = "NSFontDescriptorClassScripts")]
66 const ClassScripts = 10<<28;
67 #[doc(alias = "NSFontDescriptorClassSymbolic")]
68 const ClassSymbolic = 12<<28;
69 }
70}
71
72unsafe impl Encode for NSFontDescriptorSymbolicTraits {
73 const ENCODING: Encoding = u32::ENCODING;
74}
75
76unsafe impl RefEncode for NSFontDescriptorSymbolicTraits {
77 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
78}
79
80pub type NSFontDescriptorAttributeName = NSString;
83
84pub type NSFontDescriptorTraitKey = NSString;
87
88pub type NSFontDescriptorVariationKey = NSString;
91
92pub type NSFontDescriptorFeatureKey = NSString;
95
96#[cfg(feature = "objc2-core-foundation")]
99pub type NSFontWeight = CGFloat;
100
101#[cfg(feature = "objc2-core-foundation")]
104pub type NSFontWidth = CGFloat;
105
106pub type NSFontDescriptorSystemDesign = NSString;
109
110pub type NSFontTextStyle = NSString;
113
114pub type NSFontTextStyleOptionKey = NSString;
117
118extern_class!(
119 #[unsafe(super(NSObject))]
121 #[derive(Debug, PartialEq, Eq, Hash)]
122 pub struct NSFontDescriptor;
123);
124
125#[cfg(feature = "objc2-core-text")]
126#[cfg(target_vendor = "apple")]
127impl AsRef<NSFontDescriptor> for CTFontDescriptor {
128 #[inline]
129 fn as_ref(&self) -> &NSFontDescriptor {
130 unsafe { &*((self as *const Self).cast()) }
131 }
132}
133
134#[cfg(feature = "objc2-core-text")]
135#[cfg(target_vendor = "apple")]
136impl AsRef<CTFontDescriptor> for NSFontDescriptor {
137 #[inline]
138 fn as_ref(&self) -> &CTFontDescriptor {
139 unsafe { &*((self as *const Self).cast()) }
140 }
141}
142
143extern_conformance!(
144 unsafe impl NSCoding for NSFontDescriptor {}
145);
146
147extern_conformance!(
148 unsafe impl NSCopying for NSFontDescriptor {}
149);
150
151unsafe impl CopyingHelper for NSFontDescriptor {
152 type Result = Self;
153}
154
155extern_conformance!(
156 unsafe impl NSObjectProtocol for NSFontDescriptor {}
157);
158
159extern_conformance!(
160 unsafe impl NSSecureCoding for NSFontDescriptor {}
161);
162
163impl NSFontDescriptor {
164 extern_methods!(
165 #[unsafe(method(postscriptName))]
166 #[unsafe(method_family = none)]
167 pub fn postscriptName(&self) -> Option<Retained<NSString>>;
168
169 #[cfg(feature = "objc2-core-foundation")]
170 #[unsafe(method(pointSize))]
171 #[unsafe(method_family = none)]
172 pub fn pointSize(&self) -> CGFloat;
173
174 #[unsafe(method(matrix))]
175 #[unsafe(method_family = none)]
176 pub fn matrix(&self) -> Option<Retained<NSAffineTransform>>;
177
178 #[unsafe(method(symbolicTraits))]
179 #[unsafe(method_family = none)]
180 pub fn symbolicTraits(&self) -> NSFontDescriptorSymbolicTraits;
181
182 #[unsafe(method(requiresFontAssetRequest))]
183 #[unsafe(method_family = none)]
184 pub fn requiresFontAssetRequest(&self) -> bool;
185
186 #[unsafe(method(objectForKey:))]
187 #[unsafe(method_family = none)]
188 pub fn objectForKey(
189 &self,
190 attribute: &NSFontDescriptorAttributeName,
191 ) -> Option<Retained<AnyObject>>;
192
193 #[unsafe(method(fontAttributes))]
194 #[unsafe(method_family = none)]
195 pub fn fontAttributes(
196 &self,
197 ) -> Retained<NSDictionary<NSFontDescriptorAttributeName, AnyObject>>;
198
199 #[unsafe(method(fontDescriptorWithFontAttributes:))]
203 #[unsafe(method_family = none)]
204 pub unsafe fn fontDescriptorWithFontAttributes(
205 attributes: Option<&NSDictionary<NSFontDescriptorAttributeName, AnyObject>>,
206 ) -> Retained<NSFontDescriptor>;
207
208 #[cfg(feature = "objc2-core-foundation")]
209 #[unsafe(method(fontDescriptorWithName:size:))]
210 #[unsafe(method_family = none)]
211 pub fn fontDescriptorWithName_size(
212 font_name: &NSString,
213 size: CGFloat,
214 ) -> Retained<NSFontDescriptor>;
215
216 #[unsafe(method(fontDescriptorWithName:matrix:))]
217 #[unsafe(method_family = none)]
218 pub fn fontDescriptorWithName_matrix(
219 font_name: &NSString,
220 matrix: &NSAffineTransform,
221 ) -> Retained<NSFontDescriptor>;
222
223 #[unsafe(method(initWithFontAttributes:))]
227 #[unsafe(method_family = init)]
228 pub unsafe fn initWithFontAttributes(
229 this: Allocated<Self>,
230 attributes: Option<&NSDictionary<NSFontDescriptorAttributeName, AnyObject>>,
231 ) -> Retained<Self>;
232
233 #[unsafe(method(matchingFontDescriptorsWithMandatoryKeys:))]
234 #[unsafe(method_family = none)]
235 pub fn matchingFontDescriptorsWithMandatoryKeys(
236 &self,
237 mandatory_keys: Option<&NSSet<NSFontDescriptorAttributeName>>,
238 ) -> Retained<NSArray<NSFontDescriptor>>;
239
240 #[unsafe(method(matchingFontDescriptorWithMandatoryKeys:))]
241 #[unsafe(method_family = none)]
242 pub fn matchingFontDescriptorWithMandatoryKeys(
243 &self,
244 mandatory_keys: Option<&NSSet<NSFontDescriptorAttributeName>>,
245 ) -> Option<Retained<NSFontDescriptor>>;
246
247 #[unsafe(method(fontDescriptorByAddingAttributes:))]
251 #[unsafe(method_family = none)]
252 pub unsafe fn fontDescriptorByAddingAttributes(
253 &self,
254 attributes: &NSDictionary<NSFontDescriptorAttributeName, AnyObject>,
255 ) -> Retained<NSFontDescriptor>;
256
257 #[unsafe(method(fontDescriptorWithSymbolicTraits:))]
258 #[unsafe(method_family = none)]
259 pub fn fontDescriptorWithSymbolicTraits(
260 &self,
261 symbolic_traits: NSFontDescriptorSymbolicTraits,
262 ) -> Retained<NSFontDescriptor>;
263
264 #[cfg(feature = "objc2-core-foundation")]
265 #[unsafe(method(fontDescriptorWithSize:))]
266 #[unsafe(method_family = none)]
267 pub fn fontDescriptorWithSize(&self, new_point_size: CGFloat)
268 -> Retained<NSFontDescriptor>;
269
270 #[unsafe(method(fontDescriptorWithMatrix:))]
271 #[unsafe(method_family = none)]
272 pub fn fontDescriptorWithMatrix(
273 &self,
274 matrix: &NSAffineTransform,
275 ) -> Retained<NSFontDescriptor>;
276
277 #[unsafe(method(fontDescriptorWithFace:))]
278 #[unsafe(method_family = none)]
279 pub fn fontDescriptorWithFace(&self, new_face: &NSString) -> Retained<NSFontDescriptor>;
280
281 #[unsafe(method(fontDescriptorWithFamily:))]
282 #[unsafe(method_family = none)]
283 pub fn fontDescriptorWithFamily(&self, new_family: &NSString)
284 -> Retained<NSFontDescriptor>;
285
286 #[unsafe(method(fontDescriptorWithDesign:))]
287 #[unsafe(method_family = none)]
288 pub fn fontDescriptorWithDesign(
289 &self,
290 design: &NSFontDescriptorSystemDesign,
291 ) -> Option<Retained<Self>>;
292 );
293}
294
295impl NSFontDescriptor {
297 extern_methods!(
298 #[unsafe(method(init))]
299 #[unsafe(method_family = init)]
300 pub fn init(this: Allocated<Self>) -> Retained<Self>;
301
302 #[unsafe(method(new))]
303 #[unsafe(method_family = new)]
304 pub fn new() -> Retained<Self>;
305 );
306}
307
308impl DefaultRetained for NSFontDescriptor {
309 #[inline]
310 fn default_retained() -> Retained<Self> {
311 Self::new()
312 }
313}
314
315extern "C" {
316 pub static NSFontFamilyAttribute: &'static NSFontDescriptorAttributeName;
318}
319
320extern "C" {
321 pub static NSFontNameAttribute: &'static NSFontDescriptorAttributeName;
323}
324
325extern "C" {
326 pub static NSFontFaceAttribute: &'static NSFontDescriptorAttributeName;
328}
329
330extern "C" {
331 pub static NSFontSizeAttribute: &'static NSFontDescriptorAttributeName;
333}
334
335extern "C" {
336 pub static NSFontVisibleNameAttribute: &'static NSFontDescriptorAttributeName;
338}
339
340extern "C" {
341 pub static NSFontMatrixAttribute: &'static NSFontDescriptorAttributeName;
343}
344
345extern "C" {
346 pub static NSFontVariationAttribute: &'static NSFontDescriptorAttributeName;
348}
349
350extern "C" {
351 pub static NSFontCharacterSetAttribute: &'static NSFontDescriptorAttributeName;
353}
354
355extern "C" {
356 pub static NSFontCascadeListAttribute: &'static NSFontDescriptorAttributeName;
358}
359
360extern "C" {
361 pub static NSFontTraitsAttribute: &'static NSFontDescriptorAttributeName;
363}
364
365extern "C" {
366 pub static NSFontFixedAdvanceAttribute: &'static NSFontDescriptorAttributeName;
368}
369
370extern "C" {
371 pub static NSFontFeatureSettingsAttribute: &'static NSFontDescriptorAttributeName;
373}
374
375extern "C" {
376 pub static NSFontSymbolicTrait: &'static NSFontDescriptorTraitKey;
378}
379
380extern "C" {
381 pub static NSFontWeightTrait: &'static NSFontDescriptorTraitKey;
383}
384
385extern "C" {
386 pub static NSFontWidthTrait: &'static NSFontDescriptorTraitKey;
388}
389
390extern "C" {
391 pub static NSFontSlantTrait: &'static NSFontDescriptorTraitKey;
393}
394
395extern "C" {
396 pub static NSFontVariationAxisIdentifierKey: &'static NSFontDescriptorVariationKey;
398}
399
400extern "C" {
401 pub static NSFontVariationAxisMinimumValueKey: &'static NSFontDescriptorVariationKey;
403}
404
405extern "C" {
406 pub static NSFontVariationAxisMaximumValueKey: &'static NSFontDescriptorVariationKey;
408}
409
410extern "C" {
411 pub static NSFontVariationAxisDefaultValueKey: &'static NSFontDescriptorVariationKey;
413}
414
415extern "C" {
416 pub static NSFontVariationAxisNameKey: &'static NSFontDescriptorVariationKey;
418}
419
420extern "C" {
421 pub static NSFontFeatureTypeIdentifierKey: &'static NSFontDescriptorFeatureKey;
423}
424
425extern "C" {
426 pub static NSFontFeatureSelectorIdentifierKey: &'static NSFontDescriptorFeatureKey;
428}
429
430extern "C" {
431 #[cfg(feature = "objc2-core-foundation")]
433 pub static NSFontWeightUltraLight: NSFontWeight;
434}
435
436extern "C" {
437 #[cfg(feature = "objc2-core-foundation")]
439 pub static NSFontWeightThin: NSFontWeight;
440}
441
442extern "C" {
443 #[cfg(feature = "objc2-core-foundation")]
445 pub static NSFontWeightLight: NSFontWeight;
446}
447
448extern "C" {
449 #[cfg(feature = "objc2-core-foundation")]
451 pub static NSFontWeightRegular: NSFontWeight;
452}
453
454extern "C" {
455 #[cfg(feature = "objc2-core-foundation")]
457 pub static NSFontWeightMedium: NSFontWeight;
458}
459
460extern "C" {
461 #[cfg(feature = "objc2-core-foundation")]
463 pub static NSFontWeightSemibold: NSFontWeight;
464}
465
466extern "C" {
467 #[cfg(feature = "objc2-core-foundation")]
469 pub static NSFontWeightBold: NSFontWeight;
470}
471
472extern "C" {
473 #[cfg(feature = "objc2-core-foundation")]
475 pub static NSFontWeightHeavy: NSFontWeight;
476}
477
478extern "C" {
479 #[cfg(feature = "objc2-core-foundation")]
481 pub static NSFontWeightBlack: NSFontWeight;
482}
483
484extern "C" {
485 #[cfg(feature = "objc2-core-foundation")]
487 pub static NSFontWidthCompressed: NSFontWidth;
488}
489
490extern "C" {
491 #[cfg(feature = "objc2-core-foundation")]
493 pub static NSFontWidthCondensed: NSFontWidth;
494}
495
496extern "C" {
497 #[cfg(feature = "objc2-core-foundation")]
499 pub static NSFontWidthStandard: NSFontWidth;
500}
501
502extern "C" {
503 #[cfg(feature = "objc2-core-foundation")]
505 pub static NSFontWidthExpanded: NSFontWidth;
506}
507
508extern "C" {
509 pub static NSFontDescriptorSystemDesignDefault: &'static NSFontDescriptorSystemDesign;
511}
512
513extern "C" {
514 pub static NSFontDescriptorSystemDesignSerif: &'static NSFontDescriptorSystemDesign;
516}
517
518extern "C" {
519 pub static NSFontDescriptorSystemDesignMonospaced: &'static NSFontDescriptorSystemDesign;
521}
522
523extern "C" {
524 pub static NSFontDescriptorSystemDesignRounded: &'static NSFontDescriptorSystemDesign;
526}
527
528extern "C" {
529 pub static NSFontTextStyleLargeTitle: &'static NSFontTextStyle;
531}
532
533extern "C" {
534 pub static NSFontTextStyleTitle1: &'static NSFontTextStyle;
536}
537
538extern "C" {
539 pub static NSFontTextStyleTitle2: &'static NSFontTextStyle;
541}
542
543extern "C" {
544 pub static NSFontTextStyleTitle3: &'static NSFontTextStyle;
546}
547
548extern "C" {
549 pub static NSFontTextStyleHeadline: &'static NSFontTextStyle;
551}
552
553extern "C" {
554 pub static NSFontTextStyleSubheadline: &'static NSFontTextStyle;
556}
557
558extern "C" {
559 pub static NSFontTextStyleBody: &'static NSFontTextStyle;
561}
562
563extern "C" {
564 pub static NSFontTextStyleCallout: &'static NSFontTextStyle;
566}
567
568extern "C" {
569 pub static NSFontTextStyleFootnote: &'static NSFontTextStyle;
571}
572
573extern "C" {
574 pub static NSFontTextStyleCaption1: &'static NSFontTextStyle;
576}
577
578extern "C" {
579 pub static NSFontTextStyleCaption2: &'static NSFontTextStyle;
581}
582
583pub type NSFontFamilyClass = u32;
585
586pub const NSFontUnknownClass: c_int = 0 << 28;
588pub const NSFontOldStyleSerifsClass: c_int = 1 << 28;
590pub const NSFontTransitionalSerifsClass: c_int = 2 << 28;
592pub const NSFontModernSerifsClass: c_int = 3 << 28;
594pub const NSFontClarendonSerifsClass: c_int = 4 << 28;
596pub const NSFontSlabSerifsClass: c_int = 5 << 28;
598pub const NSFontFreeformSerifsClass: c_int = 7 << 28;
600pub const NSFontSansSerifClass: c_int = 8 << 28;
602pub const NSFontOrnamentalsClass: c_int = 9 << 28;
604pub const NSFontScriptsClass: c_int = 10 << 28;
606pub const NSFontSymbolicClass: c_int = 12 << 28;
608
609pub const NSFontFamilyClassMask: c_uint = 0xF0000000;
611
612pub const NSFontItalicTrait: c_uint = 1 << 0;
614pub const NSFontBoldTrait: c_uint = 1 << 1;
616pub const NSFontExpandedTrait: c_uint = 1 << 5;
618pub const NSFontCondensedTrait: c_uint = 1 << 6;
620pub const NSFontMonoSpaceTrait: c_uint = 1 << 10;
622pub const NSFontVerticalTrait: c_uint = 1 << 11;
624pub const NSFontUIOptimizedTrait: c_uint = 1 << 12;
626
627extern "C" {
628 #[deprecated]
630 pub static NSFontColorAttribute: &'static NSString;
631}
632
633impl NSFontDescriptor {
635 extern_methods!(
636 #[unsafe(method(preferredFontDescriptorForTextStyle:options:))]
640 #[unsafe(method_family = none)]
641 pub unsafe fn preferredFontDescriptorForTextStyle_options(
642 style: &NSFontTextStyle,
643 options: &NSDictionary<NSFontTextStyleOptionKey, AnyObject>,
644 ) -> Retained<NSFontDescriptor>;
645 );
646}