1use 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
12pub type NSLayoutPriority = c_float;
15
16pub static NSLayoutPriorityRequired: NSLayoutPriority = 1000 as _;
18
19pub static NSLayoutPriorityDefaultHigh: NSLayoutPriority = 750 as _;
21
22pub static NSLayoutPriorityDragThatCanResizeWindow: NSLayoutPriority = 510 as _;
24
25pub static NSLayoutPriorityWindowSizeStayPut: NSLayoutPriority = 500 as _;
27
28pub static NSLayoutPriorityDragThatCannotResizeWindow: NSLayoutPriority = 490 as _;
30
31pub static NSLayoutPriorityDefaultLow: NSLayoutPriority = 250 as _;
33
34pub static NSLayoutPriorityFittingSizeCompression: NSLayoutPriority = 50 as _;
36
37#[repr(transparent)]
40#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
41pub struct NSLayoutConstraintOrientation(pub NSInteger);
42impl NSLayoutConstraintOrientation {
43 #[doc(alias = "NSLayoutConstraintOrientationHorizontal")]
44 pub const Horizontal: Self = Self(0);
45 #[doc(alias = "NSLayoutConstraintOrientationVertical")]
46 pub const Vertical: Self = Self(1);
47}
48
49unsafe impl Encode for NSLayoutConstraintOrientation {
50 const ENCODING: Encoding = NSInteger::ENCODING;
51}
52
53unsafe impl RefEncode for NSLayoutConstraintOrientation {
54 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
55}
56
57#[repr(transparent)]
60#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
61pub struct NSLayoutRelation(pub NSInteger);
62impl NSLayoutRelation {
63 #[doc(alias = "NSLayoutRelationLessThanOrEqual")]
64 pub const LessThanOrEqual: Self = Self(-1);
65 #[doc(alias = "NSLayoutRelationEqual")]
66 pub const Equal: Self = Self(0);
67 #[doc(alias = "NSLayoutRelationGreaterThanOrEqual")]
68 pub const GreaterThanOrEqual: Self = Self(1);
69}
70
71unsafe impl Encode for NSLayoutRelation {
72 const ENCODING: Encoding = NSInteger::ENCODING;
73}
74
75unsafe impl RefEncode for NSLayoutRelation {
76 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
77}
78
79#[repr(transparent)]
82#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
83pub struct NSLayoutAttribute(pub NSInteger);
84impl NSLayoutAttribute {
85 #[doc(alias = "NSLayoutAttributeLeft")]
86 pub const Left: Self = Self(1);
87 #[doc(alias = "NSLayoutAttributeRight")]
88 pub const Right: Self = Self(2);
89 #[doc(alias = "NSLayoutAttributeTop")]
90 pub const Top: Self = Self(3);
91 #[doc(alias = "NSLayoutAttributeBottom")]
92 pub const Bottom: Self = Self(4);
93 #[doc(alias = "NSLayoutAttributeLeading")]
94 pub const Leading: Self = Self(5);
95 #[doc(alias = "NSLayoutAttributeTrailing")]
96 pub const Trailing: Self = Self(6);
97 #[doc(alias = "NSLayoutAttributeWidth")]
98 pub const Width: Self = Self(7);
99 #[doc(alias = "NSLayoutAttributeHeight")]
100 pub const Height: Self = Self(8);
101 #[doc(alias = "NSLayoutAttributeCenterX")]
102 pub const CenterX: Self = Self(9);
103 #[doc(alias = "NSLayoutAttributeCenterY")]
104 pub const CenterY: Self = Self(10);
105 #[doc(alias = "NSLayoutAttributeLastBaseline")]
106 pub const LastBaseline: Self = Self(11);
107 #[doc(alias = "NSLayoutAttributeBaseline")]
108 pub const Baseline: Self = Self(NSLayoutAttribute::LastBaseline.0);
109 #[doc(alias = "NSLayoutAttributeFirstBaseline")]
110 pub const FirstBaseline: Self = Self(12);
111 #[doc(alias = "NSLayoutAttributeNotAnAttribute")]
112 pub const NotAnAttribute: Self = Self(0);
113}
114
115unsafe impl Encode for NSLayoutAttribute {
116 const ENCODING: Encoding = NSInteger::ENCODING;
117}
118
119unsafe impl RefEncode for NSLayoutAttribute {
120 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
121}
122
123#[repr(transparent)]
126#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
127pub struct NSLayoutFormatOptions(pub NSUInteger);
128bitflags::bitflags! {
129 impl NSLayoutFormatOptions: NSUInteger {
130 #[doc(alias = "NSLayoutFormatAlignAllLeft")]
131 const AlignAllLeft = 1<<NSLayoutAttribute::Left.0;
132 #[doc(alias = "NSLayoutFormatAlignAllRight")]
133 const AlignAllRight = 1<<NSLayoutAttribute::Right.0;
134 #[doc(alias = "NSLayoutFormatAlignAllTop")]
135 const AlignAllTop = 1<<NSLayoutAttribute::Top.0;
136 #[doc(alias = "NSLayoutFormatAlignAllBottom")]
137 const AlignAllBottom = 1<<NSLayoutAttribute::Bottom.0;
138 #[doc(alias = "NSLayoutFormatAlignAllLeading")]
139 const AlignAllLeading = 1<<NSLayoutAttribute::Leading.0;
140 #[doc(alias = "NSLayoutFormatAlignAllTrailing")]
141 const AlignAllTrailing = 1<<NSLayoutAttribute::Trailing.0;
142 #[doc(alias = "NSLayoutFormatAlignAllCenterX")]
143 const AlignAllCenterX = 1<<NSLayoutAttribute::CenterX.0;
144 #[doc(alias = "NSLayoutFormatAlignAllCenterY")]
145 const AlignAllCenterY = 1<<NSLayoutAttribute::CenterY.0;
146 #[doc(alias = "NSLayoutFormatAlignAllLastBaseline")]
147 const AlignAllLastBaseline = 1<<NSLayoutAttribute::LastBaseline.0;
148 #[doc(alias = "NSLayoutFormatAlignAllFirstBaseline")]
149 const AlignAllFirstBaseline = 1<<NSLayoutAttribute::FirstBaseline.0;
150 #[doc(alias = "NSLayoutFormatAlignAllBaseline")]
151 const AlignAllBaseline = NSLayoutFormatOptions::AlignAllLastBaseline.0;
152 #[doc(alias = "NSLayoutFormatAlignmentMask")]
153 const AlignmentMask = 0xFFFF;
154 #[doc(alias = "NSLayoutFormatDirectionLeadingToTrailing")]
155 const DirectionLeadingToTrailing = 0<<16;
156 #[doc(alias = "NSLayoutFormatDirectionLeftToRight")]
157 const DirectionLeftToRight = 1<<16;
158 #[doc(alias = "NSLayoutFormatDirectionRightToLeft")]
159 const DirectionRightToLeft = 2<<16;
160 #[doc(alias = "NSLayoutFormatDirectionMask")]
161 const DirectionMask = 0x3<<16;
162 }
163}
164
165unsafe impl Encode for NSLayoutFormatOptions {
166 const ENCODING: Encoding = NSUInteger::ENCODING;
167}
168
169unsafe impl RefEncode for NSLayoutFormatOptions {
170 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
171}
172
173extern_class!(
174 #[unsafe(super(NSObject))]
176 #[derive(Debug, PartialEq, Eq, Hash)]
177 pub struct NSLayoutConstraint;
178);
179
180unsafe impl NSObjectProtocol for NSLayoutConstraint {}
181
182impl NSLayoutConstraint {
183 extern_methods!(
184 #[unsafe(method(constraintsWithVisualFormat:options:metrics:views:))]
185 #[unsafe(method_family = none)]
186 pub unsafe fn constraintsWithVisualFormat_options_metrics_views(
187 format: &NSString,
188 opts: NSLayoutFormatOptions,
189 metrics: Option<&NSDictionary<NSString, AnyObject>>,
190 views: &NSDictionary<NSString, AnyObject>,
191 ) -> Retained<NSArray<NSLayoutConstraint>>;
192
193 #[cfg(feature = "objc2-core-foundation")]
194 #[unsafe(method(constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:))]
195 #[unsafe(method_family = none)]
196 pub unsafe fn constraintWithItem_attribute_relatedBy_toItem_attribute_multiplier_constant(
197 view1: &AnyObject,
198 attr1: NSLayoutAttribute,
199 relation: NSLayoutRelation,
200 view2: Option<&AnyObject>,
201 attr2: NSLayoutAttribute,
202 multiplier: CGFloat,
203 c: CGFloat,
204 ) -> Retained<Self>;
205
206 #[unsafe(method(priority))]
207 #[unsafe(method_family = none)]
208 pub unsafe fn priority(&self) -> NSLayoutPriority;
209
210 #[unsafe(method(setPriority:))]
212 #[unsafe(method_family = none)]
213 pub unsafe fn setPriority(&self, priority: NSLayoutPriority);
214
215 #[unsafe(method(shouldBeArchived))]
216 #[unsafe(method_family = none)]
217 pub unsafe fn shouldBeArchived(&self) -> bool;
218
219 #[unsafe(method(setShouldBeArchived:))]
221 #[unsafe(method_family = none)]
222 pub unsafe fn setShouldBeArchived(&self, should_be_archived: bool);
223
224 #[unsafe(method(firstItem))]
225 #[unsafe(method_family = none)]
226 pub unsafe fn firstItem(&self) -> Option<Retained<AnyObject>>;
227
228 #[unsafe(method(secondItem))]
229 #[unsafe(method_family = none)]
230 pub unsafe fn secondItem(&self) -> Option<Retained<AnyObject>>;
231
232 #[unsafe(method(firstAttribute))]
233 #[unsafe(method_family = none)]
234 pub unsafe fn firstAttribute(&self) -> NSLayoutAttribute;
235
236 #[unsafe(method(secondAttribute))]
237 #[unsafe(method_family = none)]
238 pub unsafe fn secondAttribute(&self) -> NSLayoutAttribute;
239
240 #[cfg(feature = "NSLayoutAnchor")]
241 #[unsafe(method(firstAnchor))]
242 #[unsafe(method_family = none)]
243 pub unsafe fn firstAnchor(&self) -> Retained<NSLayoutAnchor>;
244
245 #[cfg(feature = "NSLayoutAnchor")]
246 #[unsafe(method(secondAnchor))]
247 #[unsafe(method_family = none)]
248 pub unsafe fn secondAnchor(&self) -> Option<Retained<NSLayoutAnchor>>;
249
250 #[unsafe(method(relation))]
251 #[unsafe(method_family = none)]
252 pub unsafe fn relation(&self) -> NSLayoutRelation;
253
254 #[cfg(feature = "objc2-core-foundation")]
255 #[unsafe(method(multiplier))]
256 #[unsafe(method_family = none)]
257 pub unsafe fn multiplier(&self) -> CGFloat;
258
259 #[cfg(feature = "objc2-core-foundation")]
260 #[unsafe(method(constant))]
261 #[unsafe(method_family = none)]
262 pub unsafe fn constant(&self) -> CGFloat;
263
264 #[cfg(feature = "objc2-core-foundation")]
265 #[unsafe(method(setConstant:))]
267 #[unsafe(method_family = none)]
268 pub unsafe fn setConstant(&self, constant: CGFloat);
269
270 #[unsafe(method(isActive))]
271 #[unsafe(method_family = none)]
272 pub unsafe fn isActive(&self) -> bool;
273
274 #[unsafe(method(setActive:))]
276 #[unsafe(method_family = none)]
277 pub unsafe fn setActive(&self, active: bool);
278
279 #[unsafe(method(activateConstraints:))]
280 #[unsafe(method_family = none)]
281 pub unsafe fn activateConstraints(constraints: &NSArray<NSLayoutConstraint>);
282
283 #[unsafe(method(deactivateConstraints:))]
284 #[unsafe(method_family = none)]
285 pub unsafe fn deactivateConstraints(constraints: &NSArray<NSLayoutConstraint>);
286 );
287}
288
289impl NSLayoutConstraint {
291 extern_methods!(
292 #[unsafe(method(init))]
293 #[unsafe(method_family = init)]
294 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
295
296 #[unsafe(method(new))]
297 #[unsafe(method_family = new)]
298 pub unsafe fn new() -> Retained<Self>;
299 );
300}
301
302impl NSLayoutConstraint {
304 extern_methods!(
305 #[unsafe(method(identifier))]
306 #[unsafe(method_family = none)]
307 pub unsafe fn identifier(&self) -> Option<Retained<NSString>>;
308
309 #[unsafe(method(setIdentifier:))]
311 #[unsafe(method_family = none)]
312 pub unsafe fn setIdentifier(&self, identifier: Option<&NSString>);
313 );
314}
315
316impl NSLayoutConstraint {
317 extern_methods!();
318}
319
320#[cfg(feature = "NSAnimation")]
321unsafe impl NSAnimatablePropertyContainer for NSLayoutConstraint {}
322
323#[cfg(all(feature = "NSResponder", feature = "NSView"))]
325impl NSView {
326 extern_methods!(
327 #[cfg(feature = "NSLayoutAnchor")]
328 #[unsafe(method(leadingAnchor))]
329 #[unsafe(method_family = none)]
330 pub unsafe fn leadingAnchor(&self) -> Retained<NSLayoutXAxisAnchor>;
331
332 #[cfg(feature = "NSLayoutAnchor")]
333 #[unsafe(method(trailingAnchor))]
334 #[unsafe(method_family = none)]
335 pub unsafe fn trailingAnchor(&self) -> Retained<NSLayoutXAxisAnchor>;
336
337 #[cfg(feature = "NSLayoutAnchor")]
338 #[unsafe(method(leftAnchor))]
339 #[unsafe(method_family = none)]
340 pub unsafe fn leftAnchor(&self) -> Retained<NSLayoutXAxisAnchor>;
341
342 #[cfg(feature = "NSLayoutAnchor")]
343 #[unsafe(method(rightAnchor))]
344 #[unsafe(method_family = none)]
345 pub unsafe fn rightAnchor(&self) -> Retained<NSLayoutXAxisAnchor>;
346
347 #[cfg(feature = "NSLayoutAnchor")]
348 #[unsafe(method(topAnchor))]
349 #[unsafe(method_family = none)]
350 pub unsafe fn topAnchor(&self) -> Retained<NSLayoutYAxisAnchor>;
351
352 #[cfg(feature = "NSLayoutAnchor")]
353 #[unsafe(method(bottomAnchor))]
354 #[unsafe(method_family = none)]
355 pub unsafe fn bottomAnchor(&self) -> Retained<NSLayoutYAxisAnchor>;
356
357 #[cfg(feature = "NSLayoutAnchor")]
358 #[unsafe(method(widthAnchor))]
359 #[unsafe(method_family = none)]
360 pub unsafe fn widthAnchor(&self) -> Retained<NSLayoutDimension>;
361
362 #[cfg(feature = "NSLayoutAnchor")]
363 #[unsafe(method(heightAnchor))]
364 #[unsafe(method_family = none)]
365 pub unsafe fn heightAnchor(&self) -> Retained<NSLayoutDimension>;
366
367 #[cfg(feature = "NSLayoutAnchor")]
368 #[unsafe(method(centerXAnchor))]
369 #[unsafe(method_family = none)]
370 pub unsafe fn centerXAnchor(&self) -> Retained<NSLayoutXAxisAnchor>;
371
372 #[cfg(feature = "NSLayoutAnchor")]
373 #[unsafe(method(centerYAnchor))]
374 #[unsafe(method_family = none)]
375 pub unsafe fn centerYAnchor(&self) -> Retained<NSLayoutYAxisAnchor>;
376
377 #[cfg(feature = "NSLayoutAnchor")]
378 #[unsafe(method(firstBaselineAnchor))]
379 #[unsafe(method_family = none)]
380 pub unsafe fn firstBaselineAnchor(&self) -> Retained<NSLayoutYAxisAnchor>;
381
382 #[cfg(feature = "NSLayoutAnchor")]
383 #[unsafe(method(lastBaselineAnchor))]
384 #[unsafe(method_family = none)]
385 pub unsafe fn lastBaselineAnchor(&self) -> Retained<NSLayoutYAxisAnchor>;
386
387 #[unsafe(method(constraints))]
388 #[unsafe(method_family = none)]
389 pub unsafe fn constraints(&self) -> Retained<NSArray<NSLayoutConstraint>>;
390
391 #[unsafe(method(addConstraint:))]
392 #[unsafe(method_family = none)]
393 pub unsafe fn addConstraint(&self, constraint: &NSLayoutConstraint);
394
395 #[unsafe(method(addConstraints:))]
396 #[unsafe(method_family = none)]
397 pub unsafe fn addConstraints(&self, constraints: &NSArray<NSLayoutConstraint>);
398
399 #[unsafe(method(removeConstraint:))]
400 #[unsafe(method_family = none)]
401 pub unsafe fn removeConstraint(&self, constraint: &NSLayoutConstraint);
402
403 #[unsafe(method(removeConstraints:))]
404 #[unsafe(method_family = none)]
405 pub unsafe fn removeConstraints(&self, constraints: &NSArray<NSLayoutConstraint>);
406 );
407}
408
409#[cfg(all(feature = "NSResponder", feature = "NSWindow"))]
411impl NSWindow {
412 extern_methods!(
413 #[unsafe(method(updateConstraintsIfNeeded))]
414 #[unsafe(method_family = none)]
415 pub unsafe fn updateConstraintsIfNeeded(&self);
416
417 #[unsafe(method(layoutIfNeeded))]
418 #[unsafe(method_family = none)]
419 pub unsafe fn layoutIfNeeded(&self);
420 );
421}
422
423#[cfg(all(feature = "NSResponder", feature = "NSView"))]
425impl NSView {
426 extern_methods!(
427 #[unsafe(method(updateConstraintsForSubtreeIfNeeded))]
428 #[unsafe(method_family = none)]
429 pub unsafe fn updateConstraintsForSubtreeIfNeeded(&self);
430
431 #[unsafe(method(updateConstraints))]
432 #[unsafe(method_family = none)]
433 pub unsafe fn updateConstraints(&self);
434
435 #[unsafe(method(needsUpdateConstraints))]
436 #[unsafe(method_family = none)]
437 pub unsafe fn needsUpdateConstraints(&self) -> bool;
438
439 #[unsafe(method(setNeedsUpdateConstraints:))]
441 #[unsafe(method_family = none)]
442 pub unsafe fn setNeedsUpdateConstraints(&self, needs_update_constraints: bool);
443 );
444}
445
446#[cfg(all(feature = "NSResponder", feature = "NSView"))]
448impl NSView {
449 extern_methods!(
450 #[unsafe(method(translatesAutoresizingMaskIntoConstraints))]
451 #[unsafe(method_family = none)]
452 pub unsafe fn translatesAutoresizingMaskIntoConstraints(&self) -> bool;
453
454 #[unsafe(method(setTranslatesAutoresizingMaskIntoConstraints:))]
456 #[unsafe(method_family = none)]
457 pub unsafe fn setTranslatesAutoresizingMaskIntoConstraints(
458 &self,
459 translates_autoresizing_mask_into_constraints: bool,
460 );
461
462 #[unsafe(method(requiresConstraintBasedLayout))]
463 #[unsafe(method_family = none)]
464 pub unsafe fn requiresConstraintBasedLayout(mtm: MainThreadMarker) -> bool;
465 );
466}
467
468extern "C" {
469 #[cfg(feature = "objc2-core-foundation")]
471 pub static NSViewNoInstrinsicMetric: CGFloat;
472}
473
474extern "C" {
475 #[cfg(feature = "objc2-core-foundation")]
477 pub static NSViewNoIntrinsicMetric: CGFloat;
478}
479
480#[cfg(all(feature = "NSResponder", feature = "NSView"))]
482impl NSView {
483 extern_methods!(
484 #[unsafe(method(alignmentRectForFrame:))]
485 #[unsafe(method_family = none)]
486 pub unsafe fn alignmentRectForFrame(&self, frame: NSRect) -> NSRect;
487
488 #[unsafe(method(frameForAlignmentRect:))]
489 #[unsafe(method_family = none)]
490 pub unsafe fn frameForAlignmentRect(&self, alignment_rect: NSRect) -> NSRect;
491
492 #[unsafe(method(alignmentRectInsets))]
493 #[unsafe(method_family = none)]
494 pub unsafe fn alignmentRectInsets(&self) -> NSEdgeInsets;
495
496 #[cfg(feature = "objc2-core-foundation")]
497 #[unsafe(method(firstBaselineOffsetFromTop))]
498 #[unsafe(method_family = none)]
499 pub unsafe fn firstBaselineOffsetFromTop(&self) -> CGFloat;
500
501 #[cfg(feature = "objc2-core-foundation")]
502 #[unsafe(method(lastBaselineOffsetFromBottom))]
503 #[unsafe(method_family = none)]
504 pub unsafe fn lastBaselineOffsetFromBottom(&self) -> CGFloat;
505
506 #[cfg(feature = "objc2-core-foundation")]
507 #[unsafe(method(baselineOffsetFromBottom))]
508 #[unsafe(method_family = none)]
509 pub unsafe fn baselineOffsetFromBottom(&self) -> CGFloat;
510
511 #[unsafe(method(intrinsicContentSize))]
512 #[unsafe(method_family = none)]
513 pub unsafe fn intrinsicContentSize(&self) -> NSSize;
514
515 #[unsafe(method(invalidateIntrinsicContentSize))]
516 #[unsafe(method_family = none)]
517 pub unsafe fn invalidateIntrinsicContentSize(&self);
518
519 #[unsafe(method(contentHuggingPriorityForOrientation:))]
520 #[unsafe(method_family = none)]
521 pub unsafe fn contentHuggingPriorityForOrientation(
522 &self,
523 orientation: NSLayoutConstraintOrientation,
524 ) -> NSLayoutPriority;
525
526 #[unsafe(method(setContentHuggingPriority:forOrientation:))]
527 #[unsafe(method_family = none)]
528 pub unsafe fn setContentHuggingPriority_forOrientation(
529 &self,
530 priority: NSLayoutPriority,
531 orientation: NSLayoutConstraintOrientation,
532 );
533
534 #[unsafe(method(contentCompressionResistancePriorityForOrientation:))]
535 #[unsafe(method_family = none)]
536 pub unsafe fn contentCompressionResistancePriorityForOrientation(
537 &self,
538 orientation: NSLayoutConstraintOrientation,
539 ) -> NSLayoutPriority;
540
541 #[unsafe(method(setContentCompressionResistancePriority:forOrientation:))]
542 #[unsafe(method_family = none)]
543 pub unsafe fn setContentCompressionResistancePriority_forOrientation(
544 &self,
545 priority: NSLayoutPriority,
546 orientation: NSLayoutConstraintOrientation,
547 );
548
549 #[unsafe(method(isHorizontalContentSizeConstraintActive))]
550 #[unsafe(method_family = none)]
551 pub unsafe fn isHorizontalContentSizeConstraintActive(&self) -> bool;
552
553 #[unsafe(method(setHorizontalContentSizeConstraintActive:))]
555 #[unsafe(method_family = none)]
556 pub unsafe fn setHorizontalContentSizeConstraintActive(
557 &self,
558 horizontal_content_size_constraint_active: bool,
559 );
560
561 #[unsafe(method(isVerticalContentSizeConstraintActive))]
562 #[unsafe(method_family = none)]
563 pub unsafe fn isVerticalContentSizeConstraintActive(&self) -> bool;
564
565 #[unsafe(method(setVerticalContentSizeConstraintActive:))]
567 #[unsafe(method_family = none)]
568 pub unsafe fn setVerticalContentSizeConstraintActive(
569 &self,
570 vertical_content_size_constraint_active: bool,
571 );
572 );
573}
574
575#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
577impl NSControl {
578 extern_methods!(
579 #[cfg(feature = "NSCell")]
580 #[unsafe(method(invalidateIntrinsicContentSizeForCell:))]
581 #[unsafe(method_family = none)]
582 pub unsafe fn invalidateIntrinsicContentSizeForCell(&self, cell: &NSCell);
583 );
584}
585
586#[cfg(all(feature = "NSResponder", feature = "NSWindow"))]
588impl NSWindow {
589 extern_methods!(
590 #[unsafe(method(anchorAttributeForOrientation:))]
591 #[unsafe(method_family = none)]
592 pub unsafe fn anchorAttributeForOrientation(
593 &self,
594 orientation: NSLayoutConstraintOrientation,
595 ) -> NSLayoutAttribute;
596
597 #[unsafe(method(setAnchorAttribute:forOrientation:))]
598 #[unsafe(method_family = none)]
599 pub unsafe fn setAnchorAttribute_forOrientation(
600 &self,
601 attr: NSLayoutAttribute,
602 orientation: NSLayoutConstraintOrientation,
603 );
604 );
605}
606
607#[cfg(all(feature = "NSResponder", feature = "NSView"))]
609impl NSView {
610 extern_methods!(
611 #[unsafe(method(fittingSize))]
612 #[unsafe(method_family = none)]
613 pub unsafe fn fittingSize(&self) -> NSSize;
614 );
615}
616
617#[cfg(all(feature = "NSResponder", feature = "NSView"))]
619impl NSView {
620 extern_methods!(
621 #[unsafe(method(constraintsAffectingLayoutForOrientation:))]
622 #[unsafe(method_family = none)]
623 pub unsafe fn constraintsAffectingLayoutForOrientation(
624 &self,
625 orientation: NSLayoutConstraintOrientation,
626 ) -> Retained<NSArray<NSLayoutConstraint>>;
627
628 #[unsafe(method(hasAmbiguousLayout))]
629 #[unsafe(method_family = none)]
630 pub unsafe fn hasAmbiguousLayout(&self) -> bool;
631
632 #[unsafe(method(exerciseAmbiguityInLayout))]
633 #[unsafe(method_family = none)]
634 pub unsafe fn exerciseAmbiguityInLayout(&self);
635 );
636}
637
638#[cfg(all(feature = "NSResponder", feature = "NSWindow"))]
640impl NSWindow {
641 extern_methods!(
642 #[unsafe(method(visualizeConstraints:))]
643 #[unsafe(method_family = none)]
644 pub unsafe fn visualizeConstraints(
645 &self,
646 constraints: Option<&NSArray<NSLayoutConstraint>>,
647 );
648 );
649}