Add Panic Button UI.
This commit is contained in:
parent
5150e7af95
commit
c459bd1a4e
@ -67,6 +67,8 @@
|
|||||||
849C64761ED37A5D003D8FC0 /* EvergreenTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849C64751ED37A5D003D8FC0 /* EvergreenTests.swift */; };
|
849C64761ED37A5D003D8FC0 /* EvergreenTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849C64751ED37A5D003D8FC0 /* EvergreenTests.swift */; };
|
||||||
84A6B6941FB8D43C006754AC /* DinosaursWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84A6B6931FB8D43C006754AC /* DinosaursWindow.xib */; };
|
84A6B6941FB8D43C006754AC /* DinosaursWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84A6B6931FB8D43C006754AC /* DinosaursWindow.xib */; };
|
||||||
84A6B6961FB8DBD2006754AC /* DinosaursWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84A6B6951FB8DBD2006754AC /* DinosaursWindowController.swift */; };
|
84A6B6961FB8DBD2006754AC /* DinosaursWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84A6B6951FB8DBD2006754AC /* DinosaursWindowController.swift */; };
|
||||||
|
84AFBB3C1FBE76D800BA41CF /* PanicButtonWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84AFBB3B1FBE76D800BA41CF /* PanicButtonWindowController.swift */; };
|
||||||
|
84AFBB3E1FBE770200BA41CF /* PanicButtonWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 84AFBB3D1FBE770200BA41CF /* PanicButtonWindow.xib */; };
|
||||||
84B06FAE1ED37DBD00F0B54B /* RSCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B06FA91ED37DAD00F0B54B /* RSCore.framework */; };
|
84B06FAE1ED37DBD00F0B54B /* RSCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B06FA91ED37DAD00F0B54B /* RSCore.framework */; };
|
||||||
84B06FAF1ED37DBD00F0B54B /* RSCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 84B06FA91ED37DAD00F0B54B /* RSCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
84B06FAF1ED37DBD00F0B54B /* RSCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 84B06FA91ED37DAD00F0B54B /* RSCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||||
84B06FB21ED37DBD00F0B54B /* RSDatabase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B06F9D1ED37DA000F0B54B /* RSDatabase.framework */; };
|
84B06FB21ED37DBD00F0B54B /* RSDatabase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B06F9D1ED37DA000F0B54B /* RSDatabase.framework */; };
|
||||||
@ -449,6 +451,8 @@
|
|||||||
849C64771ED37A5D003D8FC0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
849C64771ED37A5D003D8FC0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
84A6B6931FB8D43C006754AC /* DinosaursWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DinosaursWindow.xib; sourceTree = "<group>"; };
|
84A6B6931FB8D43C006754AC /* DinosaursWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DinosaursWindow.xib; sourceTree = "<group>"; };
|
||||||
84A6B6951FB8DBD2006754AC /* DinosaursWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DinosaursWindowController.swift; sourceTree = "<group>"; };
|
84A6B6951FB8DBD2006754AC /* DinosaursWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DinosaursWindowController.swift; sourceTree = "<group>"; };
|
||||||
|
84AFBB3B1FBE76D800BA41CF /* PanicButtonWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PanicButtonWindowController.swift; sourceTree = "<group>"; };
|
||||||
|
84AFBB3D1FBE770200BA41CF /* PanicButtonWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PanicButtonWindow.xib; sourceTree = "<group>"; };
|
||||||
84B06F961ED37DA000F0B54B /* RSDatabase.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RSDatabase.xcodeproj; path = Frameworks/RSDatabase/RSDatabase.xcodeproj; sourceTree = "<group>"; };
|
84B06F961ED37DA000F0B54B /* RSDatabase.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RSDatabase.xcodeproj; path = Frameworks/RSDatabase/RSDatabase.xcodeproj; sourceTree = "<group>"; };
|
||||||
84B06FA21ED37DAC00F0B54B /* RSCore.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RSCore.xcodeproj; path = Frameworks/RSCore/RSCore.xcodeproj; sourceTree = "<group>"; };
|
84B06FA21ED37DAC00F0B54B /* RSCore.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RSCore.xcodeproj; path = Frameworks/RSCore/RSCore.xcodeproj; sourceTree = "<group>"; };
|
||||||
84B06FB61ED37E8B00F0B54B /* RSWeb.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RSWeb.xcodeproj; path = Frameworks/RSWeb/RSWeb.xcodeproj; sourceTree = "<group>"; };
|
84B06FB61ED37E8B00F0B54B /* RSWeb.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RSWeb.xcodeproj; path = Frameworks/RSWeb/RSWeb.xcodeproj; sourceTree = "<group>"; };
|
||||||
@ -525,6 +529,7 @@
|
|||||||
849A97811ED9EC63007D329B /* Status Bar */,
|
849A97811ED9EC63007D329B /* Status Bar */,
|
||||||
849A97551ED9EAC3007D329B /* Add Feed */,
|
849A97551ED9EAC3007D329B /* Add Feed */,
|
||||||
849A97411ED9EAA9007D329B /* Add Folder */,
|
849A97411ED9EAA9007D329B /* Add Folder */,
|
||||||
|
84AFBB3A1FBE76D800BA41CF /* PanicButton */,
|
||||||
);
|
);
|
||||||
name = MainWindow;
|
name = MainWindow;
|
||||||
path = Evergreen/MainWindow;
|
path = Evergreen/MainWindow;
|
||||||
@ -779,6 +784,15 @@
|
|||||||
path = Evergreen/Dinosaurs;
|
path = Evergreen/Dinosaurs;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
84AFBB3A1FBE76D800BA41CF /* PanicButton */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
84AFBB3D1FBE770200BA41CF /* PanicButtonWindow.xib */,
|
||||||
|
84AFBB3B1FBE76D800BA41CF /* PanicButtonWindowController.swift */,
|
||||||
|
);
|
||||||
|
path = PanicButton;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
84B06F971ED37DA000F0B54B /* Products */ = {
|
84B06F971ED37DA000F0B54B /* Products */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@ -1208,6 +1222,7 @@
|
|||||||
849A978F1ED9EE72007D329B /* DefaultFeeds.plist in Resources */,
|
849A978F1ED9EE72007D329B /* DefaultFeeds.plist in Resources */,
|
||||||
849A979D1ED9EFEB007D329B /* template.html in Resources */,
|
849A979D1ED9EFEB007D329B /* template.html in Resources */,
|
||||||
849A97A91ED9F9AA007D329B /* AddFeedSheet.xib in Resources */,
|
849A97A91ED9F9AA007D329B /* AddFeedSheet.xib in Resources */,
|
||||||
|
84AFBB3E1FBE770200BA41CF /* PanicButtonWindow.xib in Resources */,
|
||||||
842E45E71ED8C747000A8B52 /* DB5.plist in Resources */,
|
842E45E71ED8C747000A8B52 /* DB5.plist in Resources */,
|
||||||
849A97AC1ED9F9BC007D329B /* AddFolderSheet.xib in Resources */,
|
849A97AC1ED9F9BC007D329B /* AddFolderSheet.xib in Resources */,
|
||||||
849A97AF1ED9FA08007D329B /* FeedList.storyboard in Resources */,
|
849A97AF1ED9FA08007D329B /* FeedList.storyboard in Resources */,
|
||||||
@ -1252,6 +1267,7 @@
|
|||||||
849A979F1ED9F130007D329B /* SidebarCell.swift in Sources */,
|
849A979F1ED9F130007D329B /* SidebarCell.swift in Sources */,
|
||||||
849A97651ED9EB96007D329B /* SidebarTreeControllerDelegate.swift in Sources */,
|
849A97651ED9EB96007D329B /* SidebarTreeControllerDelegate.swift in Sources */,
|
||||||
849A97671ED9EB96007D329B /* UnreadCountView.swift in Sources */,
|
849A97671ED9EB96007D329B /* UnreadCountView.swift in Sources */,
|
||||||
|
84AFBB3C1FBE76D800BA41CF /* PanicButtonWindowController.swift in Sources */,
|
||||||
84E95D241FB1087500552D99 /* ArticlePasteboardWriter.swift in Sources */,
|
84E95D241FB1087500552D99 /* ArticlePasteboardWriter.swift in Sources */,
|
||||||
84A6B6961FB8DBD2006754AC /* DinosaursWindowController.swift in Sources */,
|
84A6B6961FB8DBD2006754AC /* DinosaursWindowController.swift in Sources */,
|
||||||
849A975B1ED9EB0D007D329B /* ArticleUtilities.swift in Sources */,
|
849A975B1ED9EB0D007D329B /* ArticleUtilities.swift in Sources */,
|
||||||
|
@ -33,6 +33,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations {
|
|||||||
var keyboardShortcutsWindowController: WebViewWindowController?
|
var keyboardShortcutsWindowController: WebViewWindowController?
|
||||||
var inspectorWindowController: InspectorWindowController?
|
var inspectorWindowController: InspectorWindowController?
|
||||||
var logWindowController: LogWindowController?
|
var logWindowController: LogWindowController?
|
||||||
|
var panicButtonWindowController: PanicButtonWindowController?
|
||||||
|
|
||||||
let log = Log()
|
let log = Log()
|
||||||
let themeLoader = VSThemeLoader()
|
let themeLoader = VSThemeLoader()
|
||||||
private let appNewsURLString = "https://ranchero.com/evergreen/feed.json"
|
private let appNewsURLString = "https://ranchero.com/evergreen/feed.json"
|
||||||
@ -75,6 +77,12 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations {
|
|||||||
addFolderWindowController!.runSheetOnWindow(window)
|
addFolderWindowController!.runSheetOnWindow(window)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func hitPanicButton(with window: NSWindow) {
|
||||||
|
|
||||||
|
panicButtonWindowController = PanicButtonWindowController()
|
||||||
|
panicButtonWindowController!.runSheetOnWindow(window)
|
||||||
|
}
|
||||||
|
|
||||||
// MARK: - NSApplicationDelegate
|
// MARK: - NSApplicationDelegate
|
||||||
|
|
||||||
func applicationDidFinishLaunching(_ note: Notification) {
|
func applicationDidFinishLaunching(_ note: Notification) {
|
||||||
@ -355,6 +363,12 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations {
|
|||||||
|
|
||||||
Browser.open("https://ranchero.com/evergreen/help/1.0/", inBackground: false)
|
Browser.open("https://ranchero.com/evergreen/help/1.0/", inBackground: false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@IBAction func hitPanicButton(_ sender: Any?) {
|
||||||
|
|
||||||
|
createAndShowMainWindow()
|
||||||
|
hitPanicButton(with: mainWindowController!.window!)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private extension AppDelegate {
|
private extension AppDelegate {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="13770" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="13526" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="13770"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="13526"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<scenes>
|
<scenes>
|
||||||
<!--Application-->
|
<!--Application-->
|
||||||
@ -426,6 +426,12 @@
|
|||||||
<action selector="markAllAsRead:" target="Ady-hI-5gd" id="154-2D-ONk"/>
|
<action selector="markAllAsRead:" target="Ady-hI-5gd" id="154-2D-ONk"/>
|
||||||
</connections>
|
</connections>
|
||||||
</menuItem>
|
</menuItem>
|
||||||
|
<menuItem title="Hit Panic Button…" id="ilK-aW-oAO">
|
||||||
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
|
<connections>
|
||||||
|
<action selector="hitPanicButton:" target="Ady-hI-5gd" id="Y12-ll-3qL"/>
|
||||||
|
</connections>
|
||||||
|
</menuItem>
|
||||||
<menuItem isSeparatorItem="YES" id="qgr-Gl-Xhw"/>
|
<menuItem isSeparatorItem="YES" id="qgr-Gl-Xhw"/>
|
||||||
<menuItem title="Open in Browser" keyEquivalent="" id="4iQ-1v-dTa">
|
<menuItem title="Open in Browser" keyEquivalent="" id="4iQ-1v-dTa">
|
||||||
<connections>
|
<connections>
|
||||||
|
@ -158,6 +158,11 @@ class MainWindowController : NSWindowController, NSUserInterfaceValidations {
|
|||||||
|
|
||||||
splitViewController!.toggleSidebar(sender)
|
splitViewController!.toggleSidebar(sender)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@IBAction func hitPanicButton(_ sender: Any?) {
|
||||||
|
|
||||||
|
appDelegate.hitPanicButton(with: window!)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Private
|
// MARK: - Private
|
||||||
|
115
Evergreen/MainWindow/PanicButton/PanicButtonWindow.xib
Normal file
115
Evergreen/MainWindow/PanicButton/PanicButtonWindow.xib
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="13526" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||||
|
<dependencies>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="13526"/>
|
||||||
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<customObject id="-2" userLabel="File's Owner" customClass="PanicButtonWindowController" customModule="Evergreen" customModuleProvider="target">
|
||||||
|
<connections>
|
||||||
|
<outlet property="window" destination="QvC-M9-y7g" id="Wap-SV-du3"/>
|
||||||
|
</connections>
|
||||||
|
</customObject>
|
||||||
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
|
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||||
|
<window title="Panic Button" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" releasedWhenClosed="NO" showsToolbarButton="NO" visibleAtLaunch="NO" animationBehavior="default" id="QvC-M9-y7g">
|
||||||
|
<windowStyleMask key="styleMask" titled="YES"/>
|
||||||
|
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||||
|
<rect key="contentRect" x="196" y="240" width="312" height="154"/>
|
||||||
|
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="877"/>
|
||||||
|
<view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="312" height="159"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<subviews>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="Ode-W8-yv9">
|
||||||
|
<rect key="frame" x="18" y="120" width="276" height="19"/>
|
||||||
|
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Mark as read all articles older than:" id="SJM-bW-FQa">
|
||||||
|
<font key="font" metaFont="systemBold" size="16"/>
|
||||||
|
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="K4S-qc-mF1">
|
||||||
|
<rect key="frame" x="18" y="88" width="277" height="26"/>
|
||||||
|
<popUpButtonCell key="cell" type="push" title="Today" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="vQJ-dr-QTR" id="t0a-rZ-E6n">
|
||||||
|
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="menu"/>
|
||||||
|
<menu key="menu" id="hYC-dE-D9W">
|
||||||
|
<items>
|
||||||
|
<menuItem title="Today" id="vQJ-dr-QTR"/>
|
||||||
|
<menuItem title="Yesterday" id="CzD-fs-1pk"/>
|
||||||
|
<menuItem title="Two weeks" id="50m-a0-Pq1"/>
|
||||||
|
<menuItem title="One month" id="cfI-Uu-C7Q"/>
|
||||||
|
<menuItem title="Two months" id="C0t-0J-lGc"/>
|
||||||
|
<menuItem title="Six months" id="8hi-Xr-7TE"/>
|
||||||
|
</items>
|
||||||
|
</menu>
|
||||||
|
</popUpButtonCell>
|
||||||
|
</popUpButton>
|
||||||
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" textCompletion="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dod-yG-835">
|
||||||
|
<rect key="frame" x="18" y="49" width="276" height="34"/>
|
||||||
|
<textFieldCell key="cell" allowsUndo="NO" sendsActionOnEndEditing="YES" title="This will mark older articles everywhere as read, not just selected articles." id="aVk-QT-g09">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="disabledControlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ePr-Wl-khT">
|
||||||
|
<rect key="frame" x="134" y="13" width="82" height="32"/>
|
||||||
|
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="lXW-en-9Cq">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<string key="keyEquivalent" base64-UTF8="YES">
|
||||||
|
Gw
|
||||||
|
</string>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="cancel:" target="-2" id="qsE-qW-4YY"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="wcO-KR-YAV">
|
||||||
|
<rect key="frame" x="216" y="13" width="82" height="32"/>
|
||||||
|
<buttonCell key="cell" type="push" title="OK" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="F8H-bo-vL9">
|
||||||
|
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<string key="keyEquivalent" base64-UTF8="YES">
|
||||||
|
DQ
|
||||||
|
</string>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="performPanic:" target="-2" id="lKT-ae-Grv"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="K53-ff-yBH">
|
||||||
|
<rect key="frame" x="6" y="25" width="138" height="17"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="This doesn’t work yet." id="6Kn-qd-351">
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<color key="textColor" name="systemRedColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="wcO-KR-YAV" firstAttribute="bottom" secondItem="ePr-Wl-khT" secondAttribute="bottom" id="799-aJ-02m"/>
|
||||||
|
<constraint firstItem="dod-yG-835" firstAttribute="leading" secondItem="EiT-Mj-1SZ" secondAttribute="leading" constant="20" symbolic="YES" id="BUx-cq-8jk"/>
|
||||||
|
<constraint firstItem="K4S-qc-mF1" firstAttribute="leading" secondItem="EiT-Mj-1SZ" secondAttribute="leading" constant="20" symbolic="YES" id="Quv-Zo-RmQ"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="wcO-KR-YAV" secondAttribute="bottom" constant="20" symbolic="YES" id="Rdb-Q2-xMP"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="wcO-KR-YAV" secondAttribute="trailing" constant="20" symbolic="YES" id="WiX-Z0-HbZ"/>
|
||||||
|
<constraint firstItem="ePr-Wl-khT" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="EiT-Mj-1SZ" secondAttribute="leading" constant="128" id="cIZ-AF-Wbi"/>
|
||||||
|
<constraint firstItem="dod-yG-835" firstAttribute="top" secondItem="K4S-qc-mF1" secondAttribute="bottom" constant="8" symbolic="YES" id="dQc-nk-1ko"/>
|
||||||
|
<constraint firstItem="wcO-KR-YAV" firstAttribute="top" secondItem="dod-yG-835" secondAttribute="bottom" constant="8" symbolic="YES" id="f7E-hd-FvR"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="Ode-W8-yv9" secondAttribute="trailing" constant="20" symbolic="YES" id="fYe-e2-q2M"/>
|
||||||
|
<constraint firstItem="Ode-W8-yv9" firstAttribute="leading" secondItem="EiT-Mj-1SZ" secondAttribute="leading" constant="20" symbolic="YES" id="fxX-Xh-pRL"/>
|
||||||
|
<constraint firstItem="Ode-W8-yv9" firstAttribute="top" secondItem="EiT-Mj-1SZ" secondAttribute="top" constant="20" symbolic="YES" id="k8j-dV-9vN"/>
|
||||||
|
<constraint firstItem="wcO-KR-YAV" firstAttribute="leading" secondItem="ePr-Wl-khT" secondAttribute="trailing" constant="12" symbolic="YES" id="lkE-WG-4n9"/>
|
||||||
|
<constraint firstItem="wcO-KR-YAV" firstAttribute="width" secondItem="ePr-Wl-khT" secondAttribute="width" id="rjw-ZT-cDy"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="dod-yG-835" secondAttribute="trailing" constant="20" symbolic="YES" id="vqu-wC-Wdx"/>
|
||||||
|
<constraint firstItem="K4S-qc-mF1" firstAttribute="top" secondItem="Ode-W8-yv9" secondAttribute="bottom" constant="8" symbolic="YES" id="w5M-sz-xBb"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="K4S-qc-mF1" secondAttribute="trailing" constant="20" symbolic="YES" id="wjo-GM-Gn9"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
<point key="canvasLocation" x="248" y="82"/>
|
||||||
|
</window>
|
||||||
|
</objects>
|
||||||
|
</document>
|
@ -0,0 +1,43 @@
|
|||||||
|
//
|
||||||
|
// PanicButtonWindowController.swift
|
||||||
|
// Evergreen
|
||||||
|
//
|
||||||
|
// Created by Brent Simmons on 11/16/17.
|
||||||
|
// Copyright © 2017 Ranchero Software. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Cocoa
|
||||||
|
|
||||||
|
final class PanicButtonWindowController: NSWindowController {
|
||||||
|
|
||||||
|
var hostWindow: NSWindow?
|
||||||
|
|
||||||
|
convenience init() {
|
||||||
|
|
||||||
|
self.init(windowNibName: NSNib.Name(rawValue: "PanicButtonWindow"))
|
||||||
|
}
|
||||||
|
|
||||||
|
func runSheetOnWindow(_ w: NSWindow) {
|
||||||
|
|
||||||
|
hostWindow = w
|
||||||
|
hostWindow!.beginSheet(window!) { (returnCode: NSApplication.ModalResponse) -> Void in
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func closeSheet(_ response: NSApplication.ModalResponse) {
|
||||||
|
|
||||||
|
hostWindow!.endSheet(window!, returnCode: response)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Actions
|
||||||
|
|
||||||
|
@IBAction func cancel(_ sender: AnyObject) {
|
||||||
|
|
||||||
|
closeSheet(.cancel)
|
||||||
|
}
|
||||||
|
|
||||||
|
@IBAction func performPanic(_ sender: AnyObject) {
|
||||||
|
|
||||||
|
closeSheet(.OK)
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user