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:
parent
11ca056757
commit
b0b7441687
@ -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 = (
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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>
|
74
Evergreen/FeedList/FeedListSplitViewController.swift
Normal file
74
Evergreen/FeedList/FeedListSplitViewController.swift
Normal 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
|
||||
}
|
||||
}
|
@ -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) {
|
||||
|
203
Evergreen/FeedList/FeedListWindow.xib
Normal file
203
Evergreen/FeedList/FeedListWindow.xib
Normal 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>
|
@ -11,6 +11,11 @@ import Cocoa
|
||||
class FeedListWindowController : NSWindowController {
|
||||
|
||||
|
||||
public convenience init() {
|
||||
|
||||
self.init(windowNibName: NSNib.Name(rawValue: "FeedListWindow"))
|
||||
}
|
||||
|
||||
@IBAction func addToFeeds(_ sender: AnyObject) {
|
||||
|
||||
}
|
||||
|
@ -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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user