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