Start rebuilding the Feed Directory window using a .xib instead of a storyboard. The storyboard was giving me major grief over the split view. This way I have much better control over the split view.

This commit is contained in:
Brent Simmons 2017-12-27 17:29:22 -08:00
parent 11ca056757
commit b0b7441687
8 changed files with 306 additions and 366 deletions

View File

@ -38,6 +38,7 @@
846E77411F6EF6A100A165E2 /* Database.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 846E77211F6EF5D100A165E2 /* Database.framework */; };
846E77421F6EF6A100A165E2 /* Database.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 846E77211F6EF5D100A165E2 /* Database.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
84702AA41FA27AC0006B8943 /* MarkReadOrUnreadCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84702AA31FA27AC0006B8943 /* MarkReadOrUnreadCommand.swift */; };
847C4C9C1FF44F790090D517 /* FeedListSplitViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847C4C9B1FF44F790090D517 /* FeedListSplitViewController.swift */; };
848F6AE51FC29CFB002D422E /* FaviconDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848F6AE41FC29CFA002D422E /* FaviconDownloader.swift */; };
849A97431ED9EAA9007D329B /* AddFolderWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A97421ED9EAA9007D329B /* AddFolderWindowController.swift */; };
849A97531ED9EAC0007D329B /* AddFeedController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A97511ED9EAC0007D329B /* AddFeedController.swift */; };
@ -77,7 +78,6 @@
849A97A61ED9F94D007D329B /* Preferences.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 849A97A41ED9F94D007D329B /* Preferences.storyboard */; };
849A97A91ED9F9AA007D329B /* AddFeedSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 849A97A71ED9F9AA007D329B /* AddFeedSheet.xib */; };
849A97AC1ED9F9BC007D329B /* AddFolderSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 849A97AA1ED9F9BC007D329B /* AddFolderSheet.xib */; };
849A97AF1ED9FA08007D329B /* FeedList.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 849A97AD1ED9FA08007D329B /* FeedList.storyboard */; };
849A97B21ED9FA69007D329B /* MainWindow.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 849A97B01ED9FA69007D329B /* MainWindow.storyboard */; };
849B897C1F0349D000578A8D /* RSParser.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 849B89751F0349C100578A8D /* RSParser.framework */; };
849B897D1F0349D000578A8D /* RSParser.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 849B89751F0349C100578A8D /* RSParser.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
@ -99,6 +99,7 @@
84B06FFE1ED3818D00F0B54B /* RSTree.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 84B06FFA1ED3818000F0B54B /* RSTree.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
84B0700A1ED3822600F0B54B /* RSTextDrawing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B070071ED3821900F0B54B /* RSTextDrawing.framework */; };
84B0700B1ED3822600F0B54B /* RSTextDrawing.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 84B070071ED3821900F0B54B /* RSTextDrawing.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
84B2FAA41FF47BAC009C4878 /* FeedListWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84B2FAA31FF47BAC009C4878 /* FeedListWindow.xib */; };
84B99C671FAE35E600ECDEDB /* FeedListTreeControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B99C661FAE35E600ECDEDB /* FeedListTreeControllerDelegate.swift */; };
84B99C691FAE36B800ECDEDB /* FeedListFolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B99C681FAE36B800ECDEDB /* FeedListFolder.swift */; };
84B99C6B1FAE370B00ECDEDB /* FeedListFeed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B99C6A1FAE370B00ECDEDB /* FeedListFeed.swift */; };
@ -443,6 +444,7 @@
846E77161F6EF5D000A165E2 /* Database.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Database.xcodeproj; path = Frameworks/Database/Database.xcodeproj; sourceTree = "<group>"; };
846E77301F6EF5D600A165E2 /* Account.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Account.xcodeproj; path = Frameworks/Account/Account.xcodeproj; sourceTree = "<group>"; };
84702AA31FA27AC0006B8943 /* MarkReadOrUnreadCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkReadOrUnreadCommand.swift; sourceTree = "<group>"; };
847C4C9B1FF44F790090D517 /* FeedListSplitViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedListSplitViewController.swift; sourceTree = "<group>"; };
848F6AE41FC29CFA002D422E /* FaviconDownloader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FaviconDownloader.swift; sourceTree = "<group>"; };
849A97421ED9EAA9007D329B /* AddFolderWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddFolderWindowController.swift; sourceTree = "<group>"; };
849A97511ED9EAC0007D329B /* AddFeedController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AddFeedController.swift; path = AddFeed/AddFeedController.swift; sourceTree = "<group>"; };
@ -482,7 +484,6 @@
849A97A51ED9F94D007D329B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Evergreen/Base.lproj/Preferences.storyboard; sourceTree = "<group>"; };
849A97A81ED9F9AA007D329B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Evergreen/Base.lproj/AddFeedSheet.xib; sourceTree = SOURCE_ROOT; };
849A97AB1ED9F9BC007D329B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Evergreen/Base.lproj/AddFolderSheet.xib; sourceTree = SOURCE_ROOT; };
849A97AE1ED9FA08007D329B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Evergreen/Base.lproj/FeedList.storyboard; sourceTree = SOURCE_ROOT; };
849A97B11ED9FA69007D329B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Evergreen/Base.lproj/MainWindow.storyboard; sourceTree = SOURCE_ROOT; };
849B89681F0349C100578A8D /* RSParser.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RSParser.xcodeproj; path = Frameworks/RSParser/RSParser.xcodeproj; sourceTree = "<group>"; };
849C64601ED37A5D003D8FC0 /* Evergreen.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Evergreen.app; sourceTree = BUILT_PRODUCTS_DIR; };
@ -502,6 +503,7 @@
84B06FE01ED3803200F0B54B /* RSFeedFinder.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RSFeedFinder.xcodeproj; path = Frameworks/RSFeedFinder/RSFeedFinder.xcodeproj; sourceTree = "<group>"; };
84B06FF41ED3818000F0B54B /* RSTree.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RSTree.xcodeproj; path = Frameworks/RSTree/RSTree.xcodeproj; sourceTree = "<group>"; };
84B070011ED3821800F0B54B /* RSTextDrawing.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RSTextDrawing.xcodeproj; path = Frameworks/RSTextDrawing/RSTextDrawing.xcodeproj; sourceTree = "<group>"; };
84B2FAA31FF47BAC009C4878 /* FeedListWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = FeedListWindow.xib; sourceTree = "<group>"; };
84B99C661FAE35E600ECDEDB /* FeedListTreeControllerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedListTreeControllerDelegate.swift; sourceTree = "<group>"; };
84B99C681FAE36B800ECDEDB /* FeedListFolder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedListFolder.swift; sourceTree = "<group>"; };
84B99C6A1FAE370B00ECDEDB /* FeedListFeed.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedListFeed.swift; sourceTree = "<group>"; };
@ -787,10 +789,11 @@
849A978B1ED9EE4D007D329B /* Feed List */ = {
isa = PBXGroup;
children = (
849A97AD1ED9FA08007D329B /* FeedList.storyboard */,
84B2FAA31FF47BAC009C4878 /* FeedListWindow.xib */,
849A978C1ED9EE4D007D329B /* FeedListWindowController.swift */,
84F204CD1FAACB660076E152 /* FeedListViewController.swift */,
84F204DD1FAACB8B0076E152 /* FeedListTimelineViewController.swift */,
847C4C9B1FF44F790090D517 /* FeedListSplitViewController.swift */,
84513F8F1FAA63950023A1A9 /* FeedListControlsView.swift */,
84B99C661FAE35E600ECDEDB /* FeedListTreeControllerDelegate.swift */,
84B99C681FAE36B800ECDEDB /* FeedListFolder.swift */,
@ -1363,7 +1366,7 @@
842E45E71ED8C747000A8B52 /* DB5.plist in Resources */,
844B5B691FEA20DF00C7C76A /* SidebarKeyboardShortcuts.plist in Resources */,
849A97AC1ED9F9BC007D329B /* AddFolderSheet.xib in Resources */,
849A97AF1ED9FA08007D329B /* FeedList.storyboard in Resources */,
84B2FAA41FF47BAC009C4878 /* FeedListWindow.xib in Resources */,
84E95CF71FABB3C800552D99 /* FeedList.plist in Resources */,
849C64681ED37A5D003D8FC0 /* Assets.xcassets in Resources */,
849C646B1ED37A5D003D8FC0 /* Main.storyboard in Resources */,
@ -1441,6 +1444,7 @@
84B99C6B1FAE370B00ECDEDB /* FeedListFeed.swift in Sources */,
842611A01FCB72600086A189 /* FeaturedImageDownloader.swift in Sources */,
849A97781ED9EC04007D329B /* TimelineCellLayout.swift in Sources */,
847C4C9C1FF44F790090D517 /* FeedListSplitViewController.swift in Sources */,
849A976C1ED9EBC8007D329B /* TimelineTableRowView.swift in Sources */,
849A977B1ED9EC04007D329B /* UnreadIndicatorView.swift in Sources */,
84B99C9D1FAE83C600ECDEDB /* DeleteFromSidebarCommand.swift in Sources */,
@ -1570,14 +1574,6 @@
name = AddFolderSheet.xib;
sourceTree = "<group>";
};
849A97AD1ED9FA08007D329B /* FeedList.storyboard */ = {
isa = PBXVariantGroup;
children = (
849A97AE1ED9FA08007D329B /* Base */,
);
name = FeedList.storyboard;
sourceTree = "<group>";
};
849A97B01ED9FA69007D329B /* MainWindow.storyboard */ = {
isa = PBXVariantGroup;
children = (

View File

@ -267,7 +267,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations,
@IBAction func showFeedList(_ sender: AnyObject) {
if feedListWindowController == nil {
feedListWindowController = windowControllerWithName("FeedList")
feedListWindowController = FeedListWindowController()
}
feedListWindowController!.showWindow(self)
}

View File

@ -1,353 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="13771" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="wIF-6J-Pki">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="13771"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--Window Controller-->
<scene sceneID="Wez-hg-maV">
<objects>
<windowController id="wIF-6J-Pki" customClass="FeedListWindowController" customModule="Evergreen" customModuleProvider="target" sceneMemberID="viewController">
<window key="window" title="Feed Directory" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" showsToolbarButton="NO" visibleAtLaunch="NO" frameAutosaveName="FeedDirectory" animationBehavior="default" tabbingMode="disallowed" id="48k-xs-Uv2">
<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="425" y="461" width="550" height="400"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<value key="minSize" type="size" width="550" height="400"/>
<value key="maxSize" type="size" width="2048" height="2048"/>
<contentBorderThickness minY="32"/>
<connections>
<outlet property="delegate" destination="wIF-6J-Pki" id="Q8Z-WL-OaK"/>
</connections>
</window>
<connections>
<segue destination="xSv-PY-eVf" kind="relationship" relationship="window.shadowedContentViewController" id="3Xv-Kx-J1B"/>
</connections>
</windowController>
<customObject id="mbL-Ns-5Ky" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-70" y="-667"/>
</scene>
<!--Container View Controller-->
<scene sceneID="CW3-66-yvQ">
<objects>
<viewController id="xSv-PY-eVf" userLabel="Container View Controller" sceneMemberID="viewController">
<view key="view" id="dwE-Xn-QiX">
<rect key="frame" x="0.0" y="0.0" width="450" height="300"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<containerView translatesAutoresizingMaskIntoConstraints="NO" id="8m1-11-DW9">
<rect key="frame" x="0.0" y="32" width="450" height="268"/>
<connections>
<segue destination="78T-I6-t3A" kind="embed" id="cA5-Oa-X83"/>
</connections>
</containerView>
<customView translatesAutoresizingMaskIntoConstraints="NO" id="Ft4-Ss-rki" customClass="FeedListControlsView" customModule="Evergreen" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="450" height="32"/>
<subviews>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cED-gO-Wz0">
<rect key="frame" x="20" y="3" width="120" height="25"/>
<buttonCell key="cell" type="roundTextured" title="Subscribe" bezelStyle="texturedRounded" alignment="center" lineBreakMode="truncatingTail" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="wCg-Qh-DYL">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="addToFeeds:" target="8hc-S9-JQA" id="3bF-MV-9dX"/>
</connections>
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="soC-1m-gwD">
<rect key="frame" x="148" y="3" width="120" height="25"/>
<buttonCell key="cell" type="roundTextured" title="Open Home Page" bezelStyle="texturedRounded" alignment="center" lineBreakMode="truncatingTail" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="cLu-3m-Acf">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="openHomePage:" target="8hc-S9-JQA" id="vrw-8O-CxX"/>
</connections>
</button>
</subviews>
<constraints>
<constraint firstItem="cED-gO-Wz0" firstAttribute="leading" secondItem="Ft4-Ss-rki" secondAttribute="leading" constant="20" symbolic="YES" id="K4b-qF-py1"/>
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="soC-1m-gwD" secondAttribute="trailing" constant="20" symbolic="YES" id="haR-66-HDX"/>
<constraint firstItem="soC-1m-gwD" firstAttribute="leading" secondItem="cED-gO-Wz0" secondAttribute="trailing" constant="8" symbolic="YES" id="idA-4R-yfF"/>
<constraint firstItem="soC-1m-gwD" firstAttribute="baseline" secondItem="cED-gO-Wz0" secondAttribute="baseline" id="imQ-qY-LNB"/>
<constraint firstItem="cED-gO-Wz0" firstAttribute="centerY" secondItem="Ft4-Ss-rki" secondAttribute="centerY" id="yeD-9q-Byh"/>
<constraint firstItem="soC-1m-gwD" firstAttribute="width" secondItem="cED-gO-Wz0" secondAttribute="width" id="zf0-5W-FIg"/>
</constraints>
<connections>
<outlet property="addToFeedsButton" destination="cED-gO-Wz0" id="Xgw-LX-lMV"/>
<outlet property="openHomePageButton" destination="soC-1m-gwD" id="CMD-WS-oSr"/>
</connections>
</customView>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="8m1-11-DW9" secondAttribute="trailing" id="BoV-If-PwH"/>
<constraint firstAttribute="bottom" secondItem="8m1-11-DW9" secondAttribute="bottom" constant="32" id="KZN-54-iEE"/>
<constraint firstAttribute="trailing" secondItem="Ft4-Ss-rki" secondAttribute="trailing" id="YNk-4j-q88"/>
<constraint firstItem="Ft4-Ss-rki" firstAttribute="top" secondItem="8m1-11-DW9" secondAttribute="bottom" id="l1X-gr-ifB"/>
<constraint firstItem="Ft4-Ss-rki" firstAttribute="leading" secondItem="dwE-Xn-QiX" secondAttribute="leading" id="tJv-HT-Ifp"/>
<constraint firstAttribute="bottom" secondItem="Ft4-Ss-rki" secondAttribute="bottom" id="u8t-5y-ERY"/>
<constraint firstItem="8m1-11-DW9" firstAttribute="top" secondItem="dwE-Xn-QiX" secondAttribute="top" id="uyV-cq-K5Z"/>
<constraint firstItem="8m1-11-DW9" firstAttribute="leading" secondItem="dwE-Xn-QiX" secondAttribute="leading" id="yLo-vH-wPm"/>
</constraints>
</view>
</viewController>
<customObject id="8hc-S9-JQA" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="509" y="-617"/>
</scene>
<!--Split View Controller-->
<scene sceneID="3BO-DZ-zW0">
<objects>
<splitViewController id="78T-I6-t3A" sceneMemberID="viewController">
<splitViewItems>
<splitViewItem holdingPriority="260" behavior="sidebar" id="AlW-hU-Zmk"/>
<splitViewItem holdingPriority="255" behavior="contentList" id="3BT-LH-byy"/>
</splitViewItems>
<splitView key="splitView" misplaced="YES" dividerStyle="thin" vertical="YES" id="3RJ-Ag-WxU">
<rect key="frame" x="0.0" y="0.0" width="512" height="400"/>
<autoresizingMask key="autoresizingMask"/>
<connections>
<outlet property="delegate" destination="78T-I6-t3A" id="EL9-7c-F81"/>
</connections>
</splitView>
<connections>
<outlet property="splitView" destination="3RJ-Ag-WxU" id="dk6-DX-Xq1"/>
<segue destination="SJW-Df-ljT" kind="relationship" relationship="splitItems" id="Q4K-31-I6b"/>
<segue destination="QDU-os-daP" kind="relationship" relationship="splitItems" id="RiZ-dP-Ubz"/>
</connections>
</splitViewController>
<customObject id="e1z-Jt-FbB" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-70" y="-148"/>
</scene>
<!--Feed List View Controller-->
<scene sceneID="OoN-9T-0Yf">
<objects>
<viewController id="SJW-Df-ljT" userLabel="Feed List View Controller" customClass="FeedListViewController" customModule="Evergreen" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" id="4Vf-sw-YId">
<rect key="frame" x="0.0" y="0.0" width="450" height="364"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<visualEffectView appearanceType="vibrantLight" blendingMode="behindWindow" material="appearanceBased" state="followsWindowActiveState" translatesAutoresizingMaskIntoConstraints="NO" id="BHi-7T-ecK">
<rect key="frame" x="0.0" y="316" width="450" height="48"/>
<subviews>
<searchField wantsLayer="YES" verticalHuggingPriority="750" textCompletion="NO" translatesAutoresizingMaskIntoConstraints="NO" id="feb-rP-bG9">
<rect key="frame" x="20" y="13" width="410" height="22"/>
<searchFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" borderStyle="bezel" placeholderString="Filter" usesSingleLineMode="YES" bezelStyle="round" sendsSearchStringImmediately="YES" id="Di1-Xb-Yz2">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</searchFieldCell>
</searchField>
<box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="GU6-1g-N91">
<rect key="frame" x="0.0" y="-2" width="450" height="5"/>
</box>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="feb-rP-bG9" secondAttribute="trailing" constant="20" symbolic="YES" id="4Ng-T3-04A"/>
<constraint firstItem="feb-rP-bG9" firstAttribute="leading" secondItem="BHi-7T-ecK" secondAttribute="leading" constant="20" symbolic="YES" id="6jM-xO-6sn"/>
<constraint firstAttribute="bottom" secondItem="GU6-1g-N91" secondAttribute="bottom" id="72u-d4-jxF"/>
<constraint firstItem="feb-rP-bG9" firstAttribute="centerY" secondItem="BHi-7T-ecK" secondAttribute="centerY" id="V7U-xz-w8p"/>
<constraint firstAttribute="trailing" secondItem="GU6-1g-N91" secondAttribute="trailing" id="eoO-JD-MXW"/>
<constraint firstItem="GU6-1g-N91" firstAttribute="leading" secondItem="BHi-7T-ecK" secondAttribute="leading" id="tZq-2u-MLe"/>
<constraint firstAttribute="height" constant="48" id="xFv-uL-Y4I"/>
</constraints>
</visualEffectView>
<scrollView borderType="none" autohidesScrollers="YES" horizontalLineScroll="24" horizontalPageScroll="10" verticalLineScroll="24" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uLp-jc-nMQ">
<rect key="frame" x="0.0" y="0.0" width="450" height="316"/>
<clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="y7D-YW-hrK">
<rect key="frame" x="0.0" y="0.0" width="450" height="316"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<outlineView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" selectionHighlightStyle="sourceList" columnReordering="NO" columnResizing="NO" autosaveColumns="NO" rowHeight="22" rowSizeStyle="small" viewBased="YES" indentationPerLevel="14" outlineTableColumn="s0r-Rt-sSC" id="n3L-hE-QVt">
<rect key="frame" x="0.0" y="0.0" width="450" height="316"/>
<autoresizingMask key="autoresizingMask"/>
<size key="intercellSpacing" width="3" height="2"/>
<color key="backgroundColor" name="_sourceListBackgroundColor" catalog="System" colorSpace="catalog"/>
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
<tableColumns>
<tableColumn identifier="" width="447" minWidth="16" maxWidth="1000" id="s0r-Rt-sSC">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
</tableHeaderCell>
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="Eug-5i-FAp">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
<prototypeCellViews>
<tableCellView identifier="HeaderCell" id="TPW-UP-2mS">
<rect key="frame" x="1" y="1" width="447" height="17"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="WPN-2y-KHq">
<rect key="frame" x="0.0" y="1" width="447" height="14"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="HEADER CELL" id="wYt-Oh-Rxc">
<font key="font" metaFont="smallSystemBold"/>
<color key="textColor" name="headerColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
<connections>
<outlet property="textField" destination="WPN-2y-KHq" id="vqQ-4b-IFc"/>
</connections>
</tableCellView>
<tableCellView identifier="FeedListCell" id="uEB-vq-SnD" customClass="SidebarCell" customModule="Evergreen" customModuleProvider="target">
<rect key="frame" x="1" y="20" width="447" height="17"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="8NA-xf-HSF">
<rect key="frame" x="3" y="0.0" width="17" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<imageCell key="cell" refusesFirstResponder="YES" imageScaling="proportionallyUpOrDown" id="eJc-Zr-x65"/>
</imageView>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="HwU-Ta-d1b" userLabel="Text field">
<rect key="frame" x="25" y="0.0" width="120" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="0ZB-5u-bks">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
<connections>
<outlet property="imageView" destination="8NA-xf-HSF" id="Dd3-ie-DmG"/>
<outlet property="textField" destination="HwU-Ta-d1b" id="rpS-Zx-Wx6"/>
</connections>
</tableCellView>
</prototypeCellViews>
</tableColumn>
</tableColumns>
<connections>
<outlet property="dataSource" destination="SJW-Df-ljT" id="FVU-Py-d01"/>
<outlet property="delegate" destination="SJW-Df-ljT" id="dB1-ku-7kj"/>
</connections>
</outlineView>
</subviews>
<nil key="backgroundColor"/>
</clipView>
<constraints>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="300" id="83U-Lq-1wH"/>
</constraints>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="nXB-WS-VEH">
<rect key="frame" x="-100" y="-100" width="238" height="15"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="lQb-Ke-wPF">
<rect key="frame" x="224" y="17" width="15" height="102"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
</scrollView>
</subviews>
<constraints>
<constraint firstAttribute="bottom" secondItem="uLp-jc-nMQ" secondAttribute="bottom" id="1w7-cf-fRQ"/>
<constraint firstItem="BHi-7T-ecK" firstAttribute="leading" secondItem="4Vf-sw-YId" secondAttribute="leading" id="9L0-IF-VaS"/>
<constraint firstItem="BHi-7T-ecK" firstAttribute="top" secondItem="4Vf-sw-YId" secondAttribute="top" id="Knc-lx-DlG"/>
<constraint firstAttribute="trailing" secondItem="uLp-jc-nMQ" secondAttribute="trailing" id="NkS-mI-WgQ"/>
<constraint firstItem="uLp-jc-nMQ" firstAttribute="leading" secondItem="4Vf-sw-YId" secondAttribute="leading" id="S74-ja-3oL"/>
<constraint firstAttribute="trailing" secondItem="BHi-7T-ecK" secondAttribute="trailing" id="SuU-CD-1EV"/>
<constraint firstItem="uLp-jc-nMQ" firstAttribute="top" secondItem="BHi-7T-ecK" secondAttribute="bottom" id="jBs-MZ-N2t"/>
</constraints>
</view>
<connections>
<outlet property="outlineView" destination="n3L-hE-QVt" id="5bh-jo-RY2"/>
</connections>
</viewController>
<customObject id="JQS-ie-zPj" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-76" y="345"/>
</scene>
<!--Feed List Timeline View Controller-->
<scene sceneID="QyW-6q-e1O">
<objects>
<viewController id="QDU-os-daP" userLabel="Feed List Timeline View Controller" sceneMemberID="viewController">
<view key="view" id="CsT-bh-MV9">
<rect key="frame" x="0.0" y="0.0" width="450" height="300"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<scrollView borderType="none" autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Poi-qx-cU4">
<rect key="frame" x="0.0" y="0.0" width="450" height="300"/>
<clipView key="contentView" id="66Y-uN-Aa0">
<rect key="frame" x="0.0" y="0.0" width="450" height="300"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnReordering="NO" multipleSelection="NO" autosaveColumns="NO" rowSizeStyle="automatic" viewBased="YES" id="umc-nQ-VmL">
<rect key="frame" x="0.0" y="0.0" width="450" height="300"/>
<autoresizingMask key="autoresizingMask"/>
<size key="intercellSpacing" width="3" height="2"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
<tableColumns>
<tableColumn identifier="" width="441.5" minWidth="40" maxWidth="1000" id="yal-lJ-1hJ">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" title="Articles">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
</tableHeaderCell>
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="KMY-1F-mSV">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
<prototypeCellViews>
<tableCellView id="8PV-Cn-35M">
<rect key="frame" x="1" y="1" width="442" height="17"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="l6f-JK-9RY">
<rect key="frame" x="0.0" y="0.0" width="442" height="17"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="qra-j4-lor">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
<connections>
<outlet property="textField" destination="l6f-JK-9RY" id="MYb-1P-Nba"/>
</connections>
</tableCellView>
</prototypeCellViews>
</tableColumn>
</tableColumns>
</tableView>
</subviews>
</clipView>
<constraints>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="300" id="rtQ-OL-S9p"/>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="192" id="wln-51-nAD"/>
</constraints>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="nFN-al-8tX">
<rect key="frame" x="0.0" y="284" width="450" height="16"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="pv8-Pa-0oB">
<rect key="frame" x="224" y="17" width="15" height="102"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
</scrollView>
</subviews>
<constraints>
<constraint firstItem="Poi-qx-cU4" firstAttribute="top" secondItem="CsT-bh-MV9" secondAttribute="top" id="3kN-bv-LU7"/>
<constraint firstItem="Poi-qx-cU4" firstAttribute="leading" secondItem="CsT-bh-MV9" secondAttribute="leading" id="755-Rp-beP"/>
<constraint firstAttribute="bottom" secondItem="Poi-qx-cU4" secondAttribute="bottom" id="bzq-3d-Zyl"/>
<constraint firstAttribute="trailing" secondItem="Poi-qx-cU4" secondAttribute="trailing" id="vQa-2a-RHN"/>
</constraints>
</view>
</viewController>
<customObject id="rDG-GN-fqV" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="455" y="17"/>
</scene>
</scenes>
</document>

View File

@ -0,0 +1,74 @@
//
// FeedListSplitViewController.swift
// Evergreen
//
// Created by Brent Simmons on 12/27/17.
// Copyright © 2017 Ranchero Software. All rights reserved.
//
import Cocoa
import DB5
final class FeedListSplitViewController: NSSplitViewController {
@IBOutlet var sidebarSplitViewItem: NSSplitViewItem!
@IBOutlet var timelineSplitViewItem: NSSplitViewItem!
private var sidebarView: NSView {
return sidebarSplitViewItem.viewController.view
}
private var timelineView: NSView {
return timelineSplitViewItem.viewController.view
}
override func viewDidLoad() {
super.viewDidLoad()
sidebarView.translatesAutoresizingMaskIntoConstraints = false
timelineView.translatesAutoresizingMaskIntoConstraints = false
sidebarSplitViewItem.preferredThicknessFraction = NSSplitViewItem.unspecifiedDimension
sidebarSplitViewItem.canCollapse = false
timelineSplitViewItem.preferredThicknessFraction = NSSplitViewItem.unspecifiedDimension
timelineSplitViewItem.canCollapse = false
let sidebarMinimumThickness = appDelegate.currentTheme.float(forKey: "FeedDirectory.sidebar.minimumThickness")
sidebarSplitViewItem.minimumThickness = sidebarMinimumThickness
let sidebarMaximumThickness = appDelegate.currentTheme.float(forKey: "FeedDirectory.sidebar.maximumThickness")
timelineSplitViewItem.maximumThickness = sidebarMaximumThickness
let sidebarWidth = appDelegate.currentTheme.float(forKey: "FeedDirectory.sidebar.initialWidth")
splitView.setPosition(sidebarWidth, ofDividerAt: 0)
let constraints = timelineView.constraintsAffectingLayout(for: .horizontal)
print(constraints)
}
// MARK: - NSSplitViewDelegate
override func splitView(_ splitView: NSSplitView, canCollapseSubview subview: NSView) -> Bool {
super.splitView(splitView, canCollapseSubview: subview)
let constraints = timelineView.constraintsAffectingLayout(for: .horizontal)
print(constraints)
return false
}
override func splitView(_ splitView: NSSplitView, shouldCollapseSubview subview: NSView, forDoubleClickOnDividerAt dividerIndex: Int) -> Bool {
super.splitView(splitView, shouldCollapseSubview: view, forDoubleClickOnDividerAt: dividerIndex)
let constraints = timelineView.constraintsAffectingLayout(for: .horizontal)
print(constraints)
return false
}
override func splitView(_ splitView: NSSplitView, shouldHideDividerAt dividerIndex: Int) -> Bool {
super.splitView(splitView, shouldHideDividerAt: dividerIndex)
let constraints = timelineView.constraintsAffectingLayout(for: .horizontal)
print(constraints)
return false
}
}

View File

@ -27,6 +27,9 @@ final class FeedListViewController: NSViewController {
NotificationCenter.default.addObserver(self, selector: #selector(faviconDidBecomeAvailable(_:)), name: .FaviconDidBecomeAvailable, object: nil)
}
override func viewWillLayout() {
super.viewWillLayout()
}
// MARK: - Notifications
@objc func faviconDidBecomeAvailable(_ note: Notification) {

View File

@ -0,0 +1,203 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="13771" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="13771"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="FeedListWindowController" customModule="Evergreen" customModuleProvider="target">
<connections>
<outlet property="window" destination="QvC-M9-y7g" id="bzG-LL-nKW"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<window title="Feed Directory" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" showsToolbarButton="NO" visibleAtLaunch="NO" frameAutosaveName="FeedListWindow" animationBehavior="default" tabbingIdentifier="feedList" id="QvC-M9-y7g">
<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="196" y="240" width="480" height="270"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
<rect key="frame" x="0.0" y="0.0" width="480" height="270"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<splitView arrangesAllSubviews="NO" dividerStyle="thin" vertical="YES" translatesAutoresizingMaskIntoConstraints="NO" id="LmW-op-ndf">
<rect key="frame" x="0.0" y="32" width="480" height="238"/>
<subviews>
<visualEffectView appearanceType="vibrantLight" blendingMode="behindWindow" material="appearanceBased" state="followsWindowActiveState" id="fSs-xC-S8k">
<rect key="frame" x="0.0" y="0.0" width="128" height="238"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<subviews>
<customView translatesAutoresizingMaskIntoConstraints="NO" id="Sxr-eg-boM">
<rect key="frame" x="0.0" y="190" width="128" height="48"/>
<subviews>
<searchField wantsLayer="YES" verticalHuggingPriority="750" textCompletion="NO" translatesAutoresizingMaskIntoConstraints="NO" id="791-YX-E38">
<rect key="frame" x="20" y="13" width="88" height="22"/>
<searchFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" borderStyle="bezel" usesSingleLineMode="YES" bezelStyle="round" id="R5K-If-i2f">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</searchFieldCell>
</searchField>
<box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="wey-fS-dNY">
<rect key="frame" x="0.0" y="-2" width="128" height="5"/>
</box>
</subviews>
<constraints>
<constraint firstAttribute="height" constant="48" id="62f-Ja-njN"/>
<constraint firstItem="wey-fS-dNY" firstAttribute="leading" secondItem="Sxr-eg-boM" secondAttribute="leading" id="8Ls-P9-pxs"/>
<constraint firstItem="791-YX-E38" firstAttribute="centerY" secondItem="Sxr-eg-boM" secondAttribute="centerY" id="Z9W-jw-zkI"/>
<constraint firstItem="791-YX-E38" firstAttribute="leading" secondItem="Sxr-eg-boM" secondAttribute="leading" constant="20" symbolic="YES" id="d50-xe-TO4"/>
<constraint firstAttribute="trailing" secondItem="791-YX-E38" secondAttribute="trailing" constant="20" symbolic="YES" id="i0h-PY-4SC"/>
<constraint firstAttribute="bottom" secondItem="wey-fS-dNY" secondAttribute="bottom" id="plH-tG-c0g"/>
<constraint firstAttribute="trailing" secondItem="wey-fS-dNY" secondAttribute="trailing" id="xao-N6-CQq"/>
</constraints>
</customView>
<scrollView fixedFrame="YES" borderType="none" autohidesScrollers="YES" horizontalLineScroll="26" horizontalPageScroll="10" verticalLineScroll="26" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" horizontalScrollElasticity="none" translatesAutoresizingMaskIntoConstraints="NO" id="OF2-9S-uq1">
<rect key="frame" x="-11" y="-81" width="150" height="400"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<clipView key="contentView" ambiguous="YES" drawsBackground="NO" id="tIe-rZ-QVh">
<rect key="frame" x="0.0" y="0.0" width="150" height="400"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<outlineView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" selectionHighlightStyle="sourceList" columnReordering="NO" autosaveColumns="NO" rowHeight="24" rowSizeStyle="automatic" viewBased="YES" floatsGroupRows="NO" indentationPerLevel="16" outlineTableColumn="DDG-fw-BOq" id="QFz-zl-L9q">
<rect key="frame" x="0.0" y="0.0" width="150" height="400"/>
<autoresizingMask key="autoresizingMask"/>
<size key="intercellSpacing" width="3" height="2"/>
<color key="backgroundColor" name="_sourceListBackgroundColor" catalog="System" colorSpace="catalog"/>
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
<tableColumns>
<tableColumn identifier="" width="147" minWidth="16" maxWidth="1000" id="DDG-fw-BOq">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
</tableHeaderCell>
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="U2H-cs-jde">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
<prototypeCellViews>
<tableCellView identifier="HeaderCell" id="rPF-Th-5l6">
<rect key="frame" x="1" y="1" width="147" height="17"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Fp1-HX-EM4">
<rect key="frame" x="0.0" y="1" width="147" height="14"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="HEADER CELL" id="1Rz-3S-1vv">
<font key="font" metaFont="smallSystemBold"/>
<color key="textColor" name="headerColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
<connections>
<outlet property="textField" destination="Fp1-HX-EM4" id="UQs-tV-3wl"/>
</connections>
</tableCellView>
<tableCellView identifier="DataCell" id="oo8-3R-9Qa">
<rect key="frame" x="1" y="20" width="147" height="17"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ddF-Kr-ft0">
<rect key="frame" x="3" y="0.0" width="17" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<imageCell key="cell" refusesFirstResponder="YES" imageScaling="proportionallyDown" image="NSActionTemplate" id="HgG-Pt-2z7"/>
</imageView>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Flq-o4-dtm">
<rect key="frame" x="25" y="0.0" width="122" height="17"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="Wuw-uU-GVp">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
<connections>
<outlet property="imageView" destination="ddF-Kr-ft0" id="0e4-pZ-hDr"/>
<outlet property="textField" destination="Flq-o4-dtm" id="P96-eF-dBi"/>
</connections>
</tableCellView>
</prototypeCellViews>
</tableColumn>
</tableColumns>
</outlineView>
</subviews>
<nil key="backgroundColor"/>
</clipView>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="Hnz-Cp-z1k">
<rect key="frame" x="-100" y="-100" width="238" height="15"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="3bs-fU-WVz">
<rect key="frame" x="224" y="17" width="15" height="102"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
</scrollView>
</subviews>
<constraints>
<constraint firstItem="Sxr-eg-boM" firstAttribute="top" secondItem="fSs-xC-S8k" secondAttribute="top" id="JY1-JZ-cuJ"/>
<constraint firstAttribute="trailing" secondItem="Sxr-eg-boM" secondAttribute="trailing" id="JxU-8e-12v"/>
<constraint firstItem="Sxr-eg-boM" firstAttribute="leading" secondItem="fSs-xC-S8k" secondAttribute="leading" id="rb4-70-MGe"/>
</constraints>
</visualEffectView>
<customView fixedFrame="YES" id="asI-cc-kYO">
<rect key="frame" x="129" y="0.0" width="351" height="238"/>
<autoresizingMask key="autoresizingMask"/>
</customView>
</subviews>
<holdingPriorities>
<real value="260"/>
<real value="250"/>
</holdingPriorities>
</splitView>
<customView translatesAutoresizingMaskIntoConstraints="NO" id="6se-0m-JxY" customClass="FeedListControlsView" customModule="Evergreen" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="480" height="32"/>
<subviews>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="U53-Bq-HP2">
<rect key="frame" x="20" y="3" width="120" height="25"/>
<buttonCell key="cell" type="roundTextured" title="Subscribe" bezelStyle="texturedRounded" alignment="center" lineBreakMode="truncatingTail" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="7OU-tA-nCD">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="X7c-Nn-Xph">
<rect key="frame" x="148" y="3" width="120" height="25"/>
<buttonCell key="cell" type="roundTextured" title="Open Home Page" bezelStyle="texturedRounded" alignment="center" lineBreakMode="truncatingTail" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="yrU-QH-vPM">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
</button>
</subviews>
<constraints>
<constraint firstItem="X7c-Nn-Xph" firstAttribute="leading" secondItem="U53-Bq-HP2" secondAttribute="trailing" constant="8" symbolic="YES" id="0Qa-VX-hdR"/>
<constraint firstItem="U53-Bq-HP2" firstAttribute="leading" secondItem="6se-0m-JxY" secondAttribute="leading" constant="20" symbolic="YES" id="0Sc-2H-DfU"/>
<constraint firstItem="U53-Bq-HP2" firstAttribute="centerY" secondItem="6se-0m-JxY" secondAttribute="centerY" id="9rb-e2-33Q"/>
<constraint firstAttribute="height" constant="32" id="AbU-G5-j4T"/>
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="X7c-Nn-Xph" secondAttribute="trailing" constant="20" symbolic="YES" id="Cjz-4A-F90"/>
<constraint firstItem="X7c-Nn-Xph" firstAttribute="baseline" secondItem="U53-Bq-HP2" secondAttribute="baseline" id="mGj-Qh-qO0"/>
<constraint firstItem="X7c-Nn-Xph" firstAttribute="width" secondItem="U53-Bq-HP2" secondAttribute="width" id="yoX-G2-pWj"/>
</constraints>
</customView>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="6se-0m-JxY" secondAttribute="trailing" id="HKu-uJ-efY"/>
<constraint firstAttribute="trailing" secondItem="LmW-op-ndf" secondAttribute="trailing" id="LJD-YC-Lsl"/>
<constraint firstItem="LmW-op-ndf" firstAttribute="leading" secondItem="EiT-Mj-1SZ" secondAttribute="leading" id="T9a-cw-EEU"/>
<constraint firstItem="6se-0m-JxY" firstAttribute="top" secondItem="LmW-op-ndf" secondAttribute="bottom" id="Vk9-ar-osD"/>
<constraint firstItem="LmW-op-ndf" firstAttribute="top" secondItem="EiT-Mj-1SZ" secondAttribute="top" id="aXq-dQ-TUw"/>
<constraint firstAttribute="bottom" secondItem="6se-0m-JxY" secondAttribute="bottom" id="lip-QF-tl7"/>
<constraint firstItem="6se-0m-JxY" firstAttribute="leading" secondItem="EiT-Mj-1SZ" secondAttribute="leading" id="omW-wJ-Mxf"/>
</constraints>
</view>
<contentBorderThickness minY="32"/>
</window>
</objects>
<resources>
<image name="NSActionTemplate" width="14" height="14"/>
</resources>
</document>

View File

@ -11,6 +11,11 @@ import Cocoa
class FeedListWindowController : NSWindowController {
public convenience init() {
self.init(windowNibName: NSNib.Name(rawValue: "FeedListWindow"))
}
@IBAction func addToFeeds(_ sender: AnyObject) {
}

View File

@ -129,6 +129,18 @@
<string>FFFFFF</string>
</dict>
</dict>
<key>FeedDirectory</key>
<dict>
<key>sidebar</key>
<dict>
<key>initialWidth</key>
<integer>285</integer>
<key>minimumThickness</key>
<string>220</string>
<key>maximumThickness</key>
<string>512</string>
</dict>
</dict>
</dict>
</dict>
</plist>