Revision: 12483
          http://sourceforge.net/p/skim-app/code/12483
Author:   hofman
Date:     2021-10-30 17:50:19 +0000 (Sat, 30 Oct 2021)
Log Message:
-----------
Use auto layout for outer views of main window. Bind container view to content 
layout guide.

Modified Paths:
--------------
    trunk/MainWindow.xib
    trunk/SKMainWindowController.m

Modified: trunk/MainWindow.xib
===================================================================
--- trunk/MainWindow.xib        2021-10-30 09:57:10 UTC (rev 12482)
+++ trunk/MainWindow.xib        2021-10-30 17:50:19 UTC (rev 12483)
@@ -1,9 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" 
toolsVersion="16097.3" targetRuntime="MacOSX.Cocoa" 
propertyAccessControl="none" useAutolayout="YES">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" 
toolsVersion="19162" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" 
useAutolayout="YES">
     <dependencies>
         <deployment identifier="macosx"/>
-        <development version="8000" identifier="xcode"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" 
version="16097.3"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" 
version="19162"/>
         <capability name="documents saved in the Xcode 8 format" 
minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -29,19 +28,17 @@
             <windowStyleMask key="styleMask" titled="YES" closable="YES" 
miniaturizable="YES" resizable="YES"/>
             <windowPositionMask key="initialPositionMask" leftStrut="YES" 
rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
             <rect key="contentRect" x="91" y="260" width="1000" height="600"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="1280" height="777"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="1280" height="775"/>
             <value key="minSize" type="size" width="250" height="130"/>
             <view key="contentView" id="6">
                 <rect key="frame" x="0.0" y="0.0" width="1000" height="600"/>
                 <autoresizingMask key="autoresizingMask" widthSizable="YES" 
heightSizable="YES"/>
                 <subviews>
-                    <customView fixedFrame="YES" 
translatesAutoresizingMaskIntoConstraints="NO" id="1555">
+                    <customView translatesAutoresizingMaskIntoConstraints="NO" 
id="1555">
                         <rect key="frame" x="0.0" y="0.0" width="1000" 
height="600"/>
-                        <autoresizingMask key="autoresizingMask" 
widthSizable="YES" heightSizable="YES"/>
                         <subviews>
-                            <splitView fixedFrame="YES" dividerStyle="thin" 
vertical="YES" translatesAutoresizingMaskIntoConstraints="NO" id="1385" 
customClass="SKSplitView">
+                            <splitView dividerStyle="thin" vertical="YES" 
translatesAutoresizingMaskIntoConstraints="NO" id="1385" 
customClass="SKSplitView">
                                 <rect key="frame" x="0.0" y="22" width="1000" 
height="578"/>
-                                <autoresizingMask key="autoresizingMask" 
widthSizable="YES" heightSizable="YES"/>
                                 <subviews>
                                     <customView fixedFrame="YES" 
translatesAutoresizingMaskIntoConstraints="NO" id="769">
                                         <rect key="frame" x="0.0" y="0.0" 
width="250" height="578"/>
@@ -83,13 +80,30 @@
                                     <outlet property="delegate" 
destination="-2" id="1449"/>
                                 </connections>
                             </splitView>
-                            <customView fixedFrame="YES" 
translatesAutoresizingMaskIntoConstraints="NO" id="2Zw-iS-Qai" 
customClass="SKStatusBar">
+                            <customView 
translatesAutoresizingMaskIntoConstraints="NO" id="2Zw-iS-Qai" 
customClass="SKStatusBar">
                                 <rect key="frame" x="0.0" y="0.0" width="1000" 
height="22"/>
-                                <autoresizingMask key="autoresizingMask" 
widthSizable="YES" flexibleMaxY="YES"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" 
constant="22" id="fGI-iF-w0D"/>
+                                </constraints>
                             </customView>
                         </subviews>
+                        <constraints>
+                            <constraint firstAttribute="trailing" 
secondItem="1385" secondAttribute="trailing" id="1b5-b6-VWW"/>
+                            <constraint firstItem="1385" 
firstAttribute="leading" secondItem="1555" secondAttribute="leading" 
id="WJx-1b-PLu"/>
+                            <constraint firstAttribute="bottom" 
secondItem="2Zw-iS-Qai" secondAttribute="bottom" id="XKu-E1-i9h"/>
+                            <constraint firstItem="2Zw-iS-Qai" 
firstAttribute="leading" secondItem="1555" secondAttribute="leading" 
id="dBf-CM-fnL"/>
+                            <constraint firstItem="1385" firstAttribute="top" 
secondItem="1555" secondAttribute="top" id="jcA-bY-Dqr"/>
+                            <constraint firstAttribute="trailing" 
secondItem="2Zw-iS-Qai" secondAttribute="trailing" id="nue-QT-ufS"/>
+                            <constraint firstItem="2Zw-iS-Qai" 
firstAttribute="top" secondItem="1385" secondAttribute="bottom" 
id="pIq-Xm-48t"/>
+                        </constraints>
                     </customView>
                 </subviews>
+                <constraints>
+                    <constraint firstAttribute="trailing" secondItem="1555" 
secondAttribute="trailing" id="IGa-3K-I9y"/>
+                    <constraint firstItem="1555" firstAttribute="leading" 
secondItem="6" secondAttribute="leading" id="SMo-Gf-RaZ"/>
+                    <constraint firstItem="1555" firstAttribute="top" 
secondItem="6" secondAttribute="top" id="SYV-oE-O1E"/>
+                    <constraint firstAttribute="bottom" secondItem="1555" 
secondAttribute="bottom" id="lPc-En-3fe"/>
+                </constraints>
             </view>
             <connections>
                 <outlet property="delegate" destination="-2" id="43"/>

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2021-10-30 09:57:10 UTC (rev 12482)
+++ trunk/SKMainWindowController.m      2021-10-30 17:50:19 UTC (rev 12483)
@@ -166,8 +166,6 @@
 
 #define WINDOW_KEY @"window"
 
-#define CONTENTLAYOUTRECT_KEY @"contentLayoutRect"
-
 #define SKMainWindowFrameAutosaveName @"SKMainWindow"
 
 static char SKPDFAnnotationPropertiesObservationContext;
@@ -176,8 +174,6 @@
 
 static char SKMainWindowAppObservationContext;
 
-static char SKMainWindowContentLayoutRectObservationContext;
-
 static char SKMainWindowThumbnailSelectionObservationContext;
 
 #define SKLeftSidePaneWidthKey @"SKLeftSidePaneWidth"
@@ -335,7 +331,6 @@
         [[NSProcessInfo processInfo] endActivity:activity];
         SKDESTROY(activity);
     }
-    [mainWindow removeObserver:self forKeyPath:CONTENTLAYOUTRECT_KEY 
context:&SKMainWindowContentLayoutRectObservationContext];
     [overviewView removeObserver:self forKeyPath:@"selectionIndexes" 
context:&SKMainWindowThumbnailSelectionObservationContext];
     [[NSNotificationCenter defaultCenter] removeObserver:self];
     [self stopObservingNotes:[self notes]];
@@ -409,8 +404,15 @@
 #pragma clang diagnostic ignored "-Wpartial-availability"
         [window setToolbarStyle:NSWindowToolbarStyleExpanded];
 #pragma clang diagnostic pop
-    [[splitView superview] setFrame:[window contentLayoutRect]];
-    [window addObserver:self forKeyPath:CONTENTLAYOUTRECT_KEY options:0 
context:&SKMainWindowContentLayoutRectObservationContext];
+    NSView *view = [splitView superview];
+    NSLayoutConstraint *constraint = nil;
+    for (constraint in [[window contentView] constraints]) {
+        if ([constraint firstItem] == view && [constraint firstAttribute] == 
NSLayoutAttributeTop) {
+            [constraint setActive:NO];
+            [[NSLayoutConstraint constraintWithItem:view 
attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:[window 
contentLayoutGuide] attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0] 
setActive:YES];
+            break;
+        }
+    }
     
     [self setWindowFrameAutosaveNameOrCascade:SKMainWindowFrameAutosaveName];
     
@@ -2441,12 +2443,6 @@
         [pdfView setBackgroundColor:backgroundColor];
         [secondaryPdfView setBackgroundColor:backgroundColor];
         
-    } else if (context == &SKMainWindowContentLayoutRectObservationContext) {
-
-        NSView *view = [self hasOverview] ? overviewContentView : splitView;
-        if ([[view window] isEqual:mainWindow])
-            [[view superview] setFrame:[mainWindow contentLayoutRect]];
-        
     } else if (context == &SKMainWindowThumbnailSelectionObservationContext) {
         
         NSIndexSet *indexes = [overviewView selectionIndexes];

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



_______________________________________________
Skim-app-commit mailing list
Skim-app-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to