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
180extern_conformance!(
181 unsafe impl NSObjectProtocol for NSLayoutConstraint {}
182);
183
184impl NSLayoutConstraint {
185 extern_methods!(
186 #[unsafe(method(constraintsWithVisualFormat:options:metrics:views:))]
191 #[unsafe(method_family = none)]
192 pub unsafe fn constraintsWithVisualFormat_options_metrics_views(
193 format: &NSString,
194 opts: NSLayoutFormatOptions,
195 metrics: Option<&NSDictionary<NSString, AnyObject>>,
196 views: &NSDictionary<NSString, AnyObject>,
197 ) -> Retained<NSArray<NSLayoutConstraint>>;
198
199 #[cfg(feature = "objc2-core-foundation")]
200 #[unsafe(method(constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:))]
205 #[unsafe(method_family = none)]
206 pub unsafe fn constraintWithItem_attribute_relatedBy_toItem_attribute_multiplier_constant(
207 view1: &AnyObject,
208 attr1: NSLayoutAttribute,
209 relation: NSLayoutRelation,
210 view2: Option<&AnyObject>,
211 attr2: NSLayoutAttribute,
212 multiplier: CGFloat,
213 c: CGFloat,
214 ) -> Retained<Self>;
215
216 #[unsafe(method(priority))]
217 #[unsafe(method_family = none)]
218 pub fn priority(&self) -> NSLayoutPriority;
219
220 #[unsafe(method(setPriority:))]
222 #[unsafe(method_family = none)]
223 pub fn setPriority(&self, priority: NSLayoutPriority);
224
225 #[unsafe(method(shouldBeArchived))]
226 #[unsafe(method_family = none)]
227 pub fn shouldBeArchived(&self) -> bool;
228
229 #[unsafe(method(setShouldBeArchived:))]
231 #[unsafe(method_family = none)]
232 pub fn setShouldBeArchived(&self, should_be_archived: bool);
233
234 #[unsafe(method(firstItem))]
238 #[unsafe(method_family = none)]
239 pub unsafe fn firstItem(&self) -> Option<Retained<AnyObject>>;
240
241 #[unsafe(method(secondItem))]
245 #[unsafe(method_family = none)]
246 pub unsafe fn secondItem(&self) -> Option<Retained<AnyObject>>;
247
248 #[unsafe(method(firstAttribute))]
249 #[unsafe(method_family = none)]
250 pub fn firstAttribute(&self) -> NSLayoutAttribute;
251
252 #[unsafe(method(secondAttribute))]
253 #[unsafe(method_family = none)]
254 pub fn secondAttribute(&self) -> NSLayoutAttribute;
255
256 #[cfg(feature = "NSLayoutAnchor")]
257 #[unsafe(method(firstAnchor))]
258 #[unsafe(method_family = none)]
259 pub fn firstAnchor(&self) -> Retained<NSLayoutAnchor>;
260
261 #[cfg(feature = "NSLayoutAnchor")]
262 #[unsafe(method(secondAnchor))]
263 #[unsafe(method_family = none)]
264 pub fn secondAnchor(&self) -> Option<Retained<NSLayoutAnchor>>;
265
266 #[unsafe(method(relation))]
267 #[unsafe(method_family = none)]
268 pub fn relation(&self) -> NSLayoutRelation;
269
270 #[cfg(feature = "objc2-core-foundation")]
271 #[unsafe(method(multiplier))]
272 #[unsafe(method_family = none)]
273 pub fn multiplier(&self) -> CGFloat;
274
275 #[cfg(feature = "objc2-core-foundation")]
276 #[unsafe(method(constant))]
277 #[unsafe(method_family = none)]
278 pub fn constant(&self) -> CGFloat;
279
280 #[cfg(feature = "objc2-core-foundation")]
281 #[unsafe(method(setConstant:))]
283 #[unsafe(method_family = none)]
284 pub fn setConstant(&self, constant: CGFloat);
285
286 #[unsafe(method(isActive))]
287 #[unsafe(method_family = none)]
288 pub fn isActive(&self) -> bool;
289
290 #[unsafe(method(setActive:))]
292 #[unsafe(method_family = none)]
293 pub fn setActive(&self, active: bool);
294
295 #[unsafe(method(activateConstraints:))]
296 #[unsafe(method_family = none)]
297 pub fn activateConstraints(constraints: &NSArray<NSLayoutConstraint>);
298
299 #[unsafe(method(deactivateConstraints:))]
300 #[unsafe(method_family = none)]
301 pub fn deactivateConstraints(constraints: &NSArray<NSLayoutConstraint>);
302 );
303}
304
305impl NSLayoutConstraint {
307 extern_methods!(
308 #[unsafe(method(init))]
309 #[unsafe(method_family = init)]
310 pub fn init(this: Allocated<Self>) -> Retained<Self>;
311
312 #[unsafe(method(new))]
313 #[unsafe(method_family = new)]
314 pub fn new() -> Retained<Self>;
315 );
316}
317
318impl DefaultRetained for NSLayoutConstraint {
319 #[inline]
320 fn default_retained() -> Retained<Self> {
321 Self::new()
322 }
323}
324
325impl NSLayoutConstraint {
327 extern_methods!(
328 #[unsafe(method(identifier))]
329 #[unsafe(method_family = none)]
330 pub fn identifier(&self) -> Option<Retained<NSString>>;
331
332 #[unsafe(method(setIdentifier:))]
336 #[unsafe(method_family = none)]
337 pub fn setIdentifier(&self, identifier: Option<&NSString>);
338 );
339}
340
341impl NSLayoutConstraint {
342 extern_methods!();
343}
344
345#[cfg(feature = "NSAnimation")]
346extern_conformance!(
347 unsafe impl NSAnimatablePropertyContainer for NSLayoutConstraint {}
348);
349
350#[cfg(all(feature = "NSResponder", feature = "NSView"))]
352impl NSView {
353 extern_methods!(
354 #[cfg(feature = "NSLayoutAnchor")]
355 #[unsafe(method(leadingAnchor))]
356 #[unsafe(method_family = none)]
357 pub fn leadingAnchor(&self) -> Retained<NSLayoutXAxisAnchor>;
358
359 #[cfg(feature = "NSLayoutAnchor")]
360 #[unsafe(method(trailingAnchor))]
361 #[unsafe(method_family = none)]
362 pub fn trailingAnchor(&self) -> Retained<NSLayoutXAxisAnchor>;
363
364 #[cfg(feature = "NSLayoutAnchor")]
365 #[unsafe(method(leftAnchor))]
366 #[unsafe(method_family = none)]
367 pub fn leftAnchor(&self) -> Retained<NSLayoutXAxisAnchor>;
368
369 #[cfg(feature = "NSLayoutAnchor")]
370 #[unsafe(method(rightAnchor))]
371 #[unsafe(method_family = none)]
372 pub fn rightAnchor(&self) -> Retained<NSLayoutXAxisAnchor>;
373
374 #[cfg(feature = "NSLayoutAnchor")]
375 #[unsafe(method(topAnchor))]
376 #[unsafe(method_family = none)]
377 pub fn topAnchor(&self) -> Retained<NSLayoutYAxisAnchor>;
378
379 #[cfg(feature = "NSLayoutAnchor")]
380 #[unsafe(method(bottomAnchor))]
381 #[unsafe(method_family = none)]
382 pub fn bottomAnchor(&self) -> Retained<NSLayoutYAxisAnchor>;
383
384 #[cfg(feature = "NSLayoutAnchor")]
385 #[unsafe(method(widthAnchor))]
386 #[unsafe(method_family = none)]
387 pub fn widthAnchor(&self) -> Retained<NSLayoutDimension>;
388
389 #[cfg(feature = "NSLayoutAnchor")]
390 #[unsafe(method(heightAnchor))]
391 #[unsafe(method_family = none)]
392 pub fn heightAnchor(&self) -> Retained<NSLayoutDimension>;
393
394 #[cfg(feature = "NSLayoutAnchor")]
395 #[unsafe(method(centerXAnchor))]
396 #[unsafe(method_family = none)]
397 pub fn centerXAnchor(&self) -> Retained<NSLayoutXAxisAnchor>;
398
399 #[cfg(feature = "NSLayoutAnchor")]
400 #[unsafe(method(centerYAnchor))]
401 #[unsafe(method_family = none)]
402 pub fn centerYAnchor(&self) -> Retained<NSLayoutYAxisAnchor>;
403
404 #[cfg(feature = "NSLayoutAnchor")]
405 #[unsafe(method(firstBaselineAnchor))]
406 #[unsafe(method_family = none)]
407 pub fn firstBaselineAnchor(&self) -> Retained<NSLayoutYAxisAnchor>;
408
409 #[cfg(feature = "NSLayoutAnchor")]
410 #[unsafe(method(lastBaselineAnchor))]
411 #[unsafe(method_family = none)]
412 pub fn lastBaselineAnchor(&self) -> Retained<NSLayoutYAxisAnchor>;
413
414 #[unsafe(method(constraints))]
415 #[unsafe(method_family = none)]
416 pub fn constraints(&self) -> Retained<NSArray<NSLayoutConstraint>>;
417
418 #[unsafe(method(addConstraint:))]
419 #[unsafe(method_family = none)]
420 pub fn addConstraint(&self, constraint: &NSLayoutConstraint);
421
422 #[unsafe(method(addConstraints:))]
423 #[unsafe(method_family = none)]
424 pub fn addConstraints(&self, constraints: &NSArray<NSLayoutConstraint>);
425
426 #[unsafe(method(removeConstraint:))]
427 #[unsafe(method_family = none)]
428 pub fn removeConstraint(&self, constraint: &NSLayoutConstraint);
429
430 #[unsafe(method(removeConstraints:))]
431 #[unsafe(method_family = none)]
432 pub fn removeConstraints(&self, constraints: &NSArray<NSLayoutConstraint>);
433 );
434}
435
436#[cfg(all(feature = "NSResponder", feature = "NSWindow"))]
438impl NSWindow {
439 extern_methods!(
440 #[unsafe(method(updateConstraintsIfNeeded))]
441 #[unsafe(method_family = none)]
442 pub fn updateConstraintsIfNeeded(&self);
443
444 #[unsafe(method(layoutIfNeeded))]
445 #[unsafe(method_family = none)]
446 pub fn layoutIfNeeded(&self);
447 );
448}
449
450#[cfg(all(feature = "NSResponder", feature = "NSView"))]
452impl NSView {
453 extern_methods!(
454 #[unsafe(method(updateConstraintsForSubtreeIfNeeded))]
455 #[unsafe(method_family = none)]
456 pub fn updateConstraintsForSubtreeIfNeeded(&self);
457
458 #[unsafe(method(updateConstraints))]
459 #[unsafe(method_family = none)]
460 pub fn updateConstraints(&self);
461
462 #[unsafe(method(needsUpdateConstraints))]
463 #[unsafe(method_family = none)]
464 pub fn needsUpdateConstraints(&self) -> bool;
465
466 #[unsafe(method(setNeedsUpdateConstraints:))]
468 #[unsafe(method_family = none)]
469 pub fn setNeedsUpdateConstraints(&self, needs_update_constraints: bool);
470 );
471}
472
473#[cfg(all(feature = "NSResponder", feature = "NSView"))]
475impl NSView {
476 extern_methods!(
477 #[unsafe(method(translatesAutoresizingMaskIntoConstraints))]
478 #[unsafe(method_family = none)]
479 pub fn translatesAutoresizingMaskIntoConstraints(&self) -> bool;
480
481 #[unsafe(method(setTranslatesAutoresizingMaskIntoConstraints:))]
483 #[unsafe(method_family = none)]
484 pub fn setTranslatesAutoresizingMaskIntoConstraints(
485 &self,
486 translates_autoresizing_mask_into_constraints: bool,
487 );
488
489 #[unsafe(method(requiresConstraintBasedLayout))]
490 #[unsafe(method_family = none)]
491 pub fn requiresConstraintBasedLayout(mtm: MainThreadMarker) -> bool;
492 );
493}
494
495extern "C" {
496 #[cfg(feature = "objc2-core-foundation")]
498 #[deprecated]
499 pub static NSViewNoInstrinsicMetric: CGFloat;
500}
501
502extern "C" {
503 #[cfg(feature = "objc2-core-foundation")]
505 pub static NSViewNoIntrinsicMetric: CGFloat;
506}
507
508#[cfg(all(feature = "NSResponder", feature = "NSView"))]
510impl NSView {
511 extern_methods!(
512 #[unsafe(method(alignmentRectForFrame:))]
513 #[unsafe(method_family = none)]
514 pub fn alignmentRectForFrame(&self, frame: NSRect) -> NSRect;
515
516 #[unsafe(method(frameForAlignmentRect:))]
517 #[unsafe(method_family = none)]
518 pub fn frameForAlignmentRect(&self, alignment_rect: NSRect) -> NSRect;
519
520 #[unsafe(method(alignmentRectInsets))]
521 #[unsafe(method_family = none)]
522 pub fn alignmentRectInsets(&self) -> NSEdgeInsets;
523
524 #[cfg(feature = "objc2-core-foundation")]
525 #[unsafe(method(firstBaselineOffsetFromTop))]
526 #[unsafe(method_family = none)]
527 pub fn firstBaselineOffsetFromTop(&self) -> CGFloat;
528
529 #[cfg(feature = "objc2-core-foundation")]
530 #[unsafe(method(lastBaselineOffsetFromBottom))]
531 #[unsafe(method_family = none)]
532 pub fn lastBaselineOffsetFromBottom(&self) -> CGFloat;
533
534 #[cfg(feature = "objc2-core-foundation")]
535 #[unsafe(method(baselineOffsetFromBottom))]
536 #[unsafe(method_family = none)]
537 pub fn baselineOffsetFromBottom(&self) -> CGFloat;
538
539 #[unsafe(method(intrinsicContentSize))]
540 #[unsafe(method_family = none)]
541 pub fn intrinsicContentSize(&self) -> NSSize;
542
543 #[unsafe(method(invalidateIntrinsicContentSize))]
544 #[unsafe(method_family = none)]
545 pub fn invalidateIntrinsicContentSize(&self);
546
547 #[unsafe(method(contentHuggingPriorityForOrientation:))]
548 #[unsafe(method_family = none)]
549 pub fn contentHuggingPriorityForOrientation(
550 &self,
551 orientation: NSLayoutConstraintOrientation,
552 ) -> NSLayoutPriority;
553
554 #[unsafe(method(setContentHuggingPriority:forOrientation:))]
555 #[unsafe(method_family = none)]
556 pub fn setContentHuggingPriority_forOrientation(
557 &self,
558 priority: NSLayoutPriority,
559 orientation: NSLayoutConstraintOrientation,
560 );
561
562 #[unsafe(method(contentCompressionResistancePriorityForOrientation:))]
563 #[unsafe(method_family = none)]
564 pub fn contentCompressionResistancePriorityForOrientation(
565 &self,
566 orientation: NSLayoutConstraintOrientation,
567 ) -> NSLayoutPriority;
568
569 #[unsafe(method(setContentCompressionResistancePriority:forOrientation:))]
570 #[unsafe(method_family = none)]
571 pub fn setContentCompressionResistancePriority_forOrientation(
572 &self,
573 priority: NSLayoutPriority,
574 orientation: NSLayoutConstraintOrientation,
575 );
576
577 #[unsafe(method(isHorizontalContentSizeConstraintActive))]
578 #[unsafe(method_family = none)]
579 pub fn isHorizontalContentSizeConstraintActive(&self) -> bool;
580
581 #[unsafe(method(setHorizontalContentSizeConstraintActive:))]
583 #[unsafe(method_family = none)]
584 pub fn setHorizontalContentSizeConstraintActive(
585 &self,
586 horizontal_content_size_constraint_active: bool,
587 );
588
589 #[unsafe(method(isVerticalContentSizeConstraintActive))]
590 #[unsafe(method_family = none)]
591 pub fn isVerticalContentSizeConstraintActive(&self) -> bool;
592
593 #[unsafe(method(setVerticalContentSizeConstraintActive:))]
595 #[unsafe(method_family = none)]
596 pub fn setVerticalContentSizeConstraintActive(
597 &self,
598 vertical_content_size_constraint_active: bool,
599 );
600 );
601}
602
603#[cfg(all(feature = "NSControl", feature = "NSResponder", feature = "NSView"))]
605impl NSControl {
606 extern_methods!(
607 #[cfg(feature = "NSCell")]
608 #[unsafe(method(invalidateIntrinsicContentSizeForCell:))]
609 #[unsafe(method_family = none)]
610 pub fn invalidateIntrinsicContentSizeForCell(&self, cell: &NSCell);
611 );
612}
613
614#[cfg(all(feature = "NSResponder", feature = "NSWindow"))]
616impl NSWindow {
617 extern_methods!(
618 #[unsafe(method(anchorAttributeForOrientation:))]
619 #[unsafe(method_family = none)]
620 pub fn anchorAttributeForOrientation(
621 &self,
622 orientation: NSLayoutConstraintOrientation,
623 ) -> NSLayoutAttribute;
624
625 #[unsafe(method(setAnchorAttribute:forOrientation:))]
626 #[unsafe(method_family = none)]
627 pub fn setAnchorAttribute_forOrientation(
628 &self,
629 attr: NSLayoutAttribute,
630 orientation: NSLayoutConstraintOrientation,
631 );
632 );
633}
634
635#[cfg(all(feature = "NSResponder", feature = "NSView"))]
637impl NSView {
638 extern_methods!(
639 #[unsafe(method(fittingSize))]
640 #[unsafe(method_family = none)]
641 pub fn fittingSize(&self) -> NSSize;
642 );
643}
644
645#[cfg(all(feature = "NSResponder", feature = "NSView"))]
647impl NSView {
648 extern_methods!(
649 #[unsafe(method(constraintsAffectingLayoutForOrientation:))]
650 #[unsafe(method_family = none)]
651 pub fn constraintsAffectingLayoutForOrientation(
652 &self,
653 orientation: NSLayoutConstraintOrientation,
654 ) -> Retained<NSArray<NSLayoutConstraint>>;
655
656 #[unsafe(method(hasAmbiguousLayout))]
657 #[unsafe(method_family = none)]
658 pub fn hasAmbiguousLayout(&self) -> bool;
659
660 #[unsafe(method(exerciseAmbiguityInLayout))]
661 #[unsafe(method_family = none)]
662 pub fn exerciseAmbiguityInLayout(&self);
663 );
664}
665
666#[cfg(all(feature = "NSResponder", feature = "NSWindow"))]
668impl NSWindow {
669 extern_methods!(
670 #[unsafe(method(visualizeConstraints:))]
671 #[unsafe(method_family = none)]
672 pub fn visualizeConstraints(&self, constraints: Option<&NSArray<NSLayoutConstraint>>);
673 );
674}