Revision: 25813
          http://sourceforge.net/p/bibdesk/svn/25813
Author:   hofman
Date:     2021-05-01 15:42:38 +0000 (Sat, 01 May 2021)
Log Message:
-----------
Add constraints to preference view when it uses auto layout

Modified Paths:
--------------
    trunk/bibdesk/BDSKPreferenceController.m

Modified: trunk/bibdesk/BDSKPreferenceController.m
===================================================================
--- trunk/bibdesk/BDSKPreferenceController.m    2021-05-01 14:04:24 UTC (rev 
25812)
+++ trunk/bibdesk/BDSKPreferenceController.m    2021-05-01 15:42:38 UTC (rev 
25813)
@@ -611,12 +611,21 @@
     
     BOOL wasIcons = [oldView isEqual:[self iconView]];
     BOOL isIcons = [view isEqual:[self iconView]];
+    NSArray *oontrolsConstraints = nil;
     NSArray *constraints = nil;
     if (wasIcons)
+        oontrolsConstraints = [NSArray arrayWithObjects:
+            [NSLayoutConstraint constraintWithItem:controlView 
attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual 
toItem:contentView attribute:NSLayoutAttributeLeading multiplier:1.0 
constant:0.0],
+            [NSLayoutConstraint constraintWithItem:controlView 
attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual 
toItem:contentView attribute:NSLayoutAttributeTrailing multiplier:1.0 
constant:0.0],
+            [NSLayoutConstraint constraintWithItem:controlView 
attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual 
toItem:contentView attribute:NSLayoutAttributeBottom multiplier:1.0 
constant:0.0], nil];
+    if ([view translatesAutoresizingMaskIntoConstraints] == NO) {
         constraints = [NSArray arrayWithObjects:
-                       [NSLayoutConstraint constraintWithItem:controlView 
attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual 
toItem:contentView attribute:NSLayoutAttributeLeading multiplier:1.0 
constant:0.0],
-                       [NSLayoutConstraint constraintWithItem:controlView 
attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual 
toItem:contentView attribute:NSLayoutAttributeTrailing multiplier:1.0 
constant:0.0],
-                       [NSLayoutConstraint constraintWithItem:controlView 
attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual 
toItem:contentView attribute:NSLayoutAttributeBottom multiplier:1.0 
constant:0.0], nil];
+            [NSLayoutConstraint constraintWithItem:view 
attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual 
toItem:contentView attribute:NSLayoutAttributeLeading multiplier:1.0 
constant:0.0],
+            [NSLayoutConstraint constraintWithItem:view 
attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual 
toItem:contentView attribute:NSLayoutAttributeCenterX multiplier:1.0 
constant:0.0],
+            [NSLayoutConstraint constraintWithItem:view 
attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual 
toItem:isIcons ? contentView : controlView attribute:isIcons ? 
NSLayoutAttributeBottom : NSLayoutAttributeTop multiplier:1.0 constant:0.0], 
nil];
+        if (isIcons == NO)
+            [[constraints firstObject] setPriority:100.0];
+    }
     
     NSTimeInterval duration = [NSAnimationContext 
defaultAnimationTimeInterval];
     if (display && duration > 0.0) {
@@ -627,7 +636,7 @@
                     [[controlView animator] removeFromSuperview];
                 } else if (wasIcons) {
                     [[contentView animator] addSubview:controlView];
-                    [contentView addConstraints:constraints];
+                    [contentView addConstraints:oontrolsConstraints];
                 }
                 if ([oldView superview]) {
                     [[contentView animator] replaceSubview:oldView with:view];
@@ -634,6 +643,8 @@
                 } else {
                     [[contentView animator] addSubview:view];
                 }
+                if (constraints)
+                    [contentView addConstraints:constraints];
                 [[window animator] setFrame:contentRect display:YES];
             }
             completionHandler:^{
@@ -644,11 +655,13 @@
             [controlView removeFromSuperview];
         } else if (wasIcons) {
             [contentView addSubview:controlView];
-            [contentView addConstraints:constraints];
+            [contentView addConstraints:oontrolsConstraints];
         }
         // don't use replaceSubview:with: because oldView can be nil here
         [oldView removeFromSuperview];
         [contentView addSubview:view];
+        if (constraints)
+            [contentView addConstraints:constraints];
         [window setFrame:contentRect display:display];
         [window recalculateKeyViewLoop];
     }

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
Bibdesk-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to