Removes unused files.
This commit is contained in:
parent
fcdd59dd6b
commit
536aff1070
|
@ -1,7 +0,0 @@
|
||||||
.DS_Store
|
|
||||||
/.build
|
|
||||||
/Packages
|
|
||||||
/*.xcodeproj
|
|
||||||
xcuserdata/
|
|
||||||
DerivedData/
|
|
||||||
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
|
|
|
@ -1,25 +0,0 @@
|
||||||
// swift-tools-version:5.5
|
|
||||||
// The swift-tools-version declares the minimum version of Swift required to build this package.
|
|
||||||
|
|
||||||
import PackageDescription
|
|
||||||
|
|
||||||
let package = Package(
|
|
||||||
name: "NonModalAlertWindow",
|
|
||||||
products: [
|
|
||||||
// Products define the executables and libraries a package produces, and make them visible to other packages.
|
|
||||||
.library(
|
|
||||||
name: "NonModalAlertWindow",
|
|
||||||
targets: ["NonModalAlertWindow"]),
|
|
||||||
],
|
|
||||||
dependencies: [
|
|
||||||
// Dependencies declare other packages that this package depends on.
|
|
||||||
// .package(url: /* package url */, from: "1.0.0"),
|
|
||||||
],
|
|
||||||
targets: [
|
|
||||||
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
|
|
||||||
// Targets can depend on other targets in this package, and on products in packages this package depends on.
|
|
||||||
.target(
|
|
||||||
name: "NonModalAlertWindow",
|
|
||||||
dependencies: []),
|
|
||||||
]
|
|
||||||
)
|
|
|
@ -1,3 +0,0 @@
|
||||||
# NonModalAlertWindow
|
|
||||||
|
|
||||||
A description of this package.
|
|
|
@ -1,147 +0,0 @@
|
||||||
//
|
|
||||||
// NonModalAlertWindowController.swift
|
|
||||||
//
|
|
||||||
// Copyright (c) 2011 The McBopomofo Project.
|
|
||||||
//
|
|
||||||
// Contributors:
|
|
||||||
// Mengjuei Hsieh (@mjhsieh)
|
|
||||||
// Weizhong Yang (@zonble)
|
|
||||||
//
|
|
||||||
// Based on the Syrup Project and the Formosana Library
|
|
||||||
// by Lukhnos Liu (@lukhnos).
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person
|
|
||||||
// obtaining a copy of this software and associated documentation
|
|
||||||
// files (the "Software"), to deal in the Software without
|
|
||||||
// restriction, including without limitation the rights to use,
|
|
||||||
// copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the
|
|
||||||
// Software is furnished to do so, subject to the following
|
|
||||||
// conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be
|
|
||||||
// included in all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
||||||
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
||||||
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
||||||
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
||||||
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
||||||
// OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
//
|
|
||||||
|
|
||||||
import Cocoa
|
|
||||||
|
|
||||||
@objc public protocol NonModalAlertWindowControllerDelegate: AnyObject {
|
|
||||||
func nonModalAlertWindowControllerDidConfirm(_ controller: NonModalAlertWindowController)
|
|
||||||
func nonModalAlertWindowControllerDidCancel(_ controller: NonModalAlertWindowController)
|
|
||||||
}
|
|
||||||
|
|
||||||
@objc public class NonModalAlertWindowController: NSWindowController {
|
|
||||||
@objc (sharedInstance)
|
|
||||||
public static let shared: NonModalAlertWindowController = {
|
|
||||||
NSLog("shaerd???")
|
|
||||||
guard let path = Bundle.main.path(forResource: "NonModalAlertWindow_NonModalAlertWindow", ofType: "bundle"),
|
|
||||||
let modelBudle = Bundle(path: path),
|
|
||||||
let xibPath = modelBudle.path(forResource: "NonModalAlertWindowController", ofType: "nib")
|
|
||||||
else {
|
|
||||||
let controller = NonModalAlertWindowController(windowNibName: "NonModalAlertWindowController")
|
|
||||||
return controller
|
|
||||||
}
|
|
||||||
NSLog("shared path \(path)")
|
|
||||||
NSLog("shared modelBudle \(modelBudle)")
|
|
||||||
NSLog("shared xibPath \(xibPath)")
|
|
||||||
let controller = NonModalAlertWindowController(windowNibPath: xibPath, owner: self)
|
|
||||||
return controller
|
|
||||||
}()
|
|
||||||
|
|
||||||
@IBOutlet weak var titleTextField: NSTextField!
|
|
||||||
@IBOutlet weak var contentTextField: NSTextField!
|
|
||||||
@IBOutlet weak var confirmButton: NSButton!
|
|
||||||
@IBOutlet weak var cancelButton: NSButton!
|
|
||||||
weak var delegate: NonModalAlertWindowControllerDelegate?
|
|
||||||
|
|
||||||
@objc public func show(title: String, content: String, confirmButtonTitle: String, cancelButtonTitle: String?, cancelAsDefault: Bool, delegate: NonModalAlertWindowControllerDelegate?) {
|
|
||||||
if window?.isVisible == true {
|
|
||||||
self.delegate?.nonModalAlertWindowControllerDidCancel(self)
|
|
||||||
}
|
|
||||||
|
|
||||||
self.delegate = delegate
|
|
||||||
|
|
||||||
var oldFrame = confirmButton.frame
|
|
||||||
confirmButton.title = confirmButtonTitle
|
|
||||||
confirmButton.sizeToFit()
|
|
||||||
|
|
||||||
var newFrame = confirmButton.frame
|
|
||||||
newFrame.size.width = max(90, newFrame.size.width + 10)
|
|
||||||
newFrame.origin.x += oldFrame.size.width - newFrame.size.width
|
|
||||||
confirmButton.frame = newFrame
|
|
||||||
|
|
||||||
if let cancelButtonTitle = cancelButtonTitle {
|
|
||||||
cancelButton.title = cancelButtonTitle
|
|
||||||
cancelButton.sizeToFit()
|
|
||||||
var adjustFrame = cancelButton.frame
|
|
||||||
adjustFrame.size.width = max(90, adjustFrame.size.width + 10)
|
|
||||||
adjustFrame.origin.x = newFrame.origin.x - adjustFrame.size.width
|
|
||||||
confirmButton.frame = adjustFrame
|
|
||||||
cancelButton.isHidden = false
|
|
||||||
} else {
|
|
||||||
cancelButton.isHidden = true
|
|
||||||
}
|
|
||||||
|
|
||||||
cancelButton.nextKeyView = confirmButton
|
|
||||||
confirmButton.nextKeyView = cancelButton
|
|
||||||
|
|
||||||
if cancelButtonTitle != nil {
|
|
||||||
if cancelAsDefault {
|
|
||||||
window?.defaultButtonCell = cancelButton.cell as? NSButtonCell
|
|
||||||
} else {
|
|
||||||
cancelButton.keyEquivalent = " "
|
|
||||||
window?.defaultButtonCell = confirmButton.cell as? NSButtonCell
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
window?.defaultButtonCell = confirmButton.cell as? NSButtonCell
|
|
||||||
}
|
|
||||||
|
|
||||||
titleTextField.stringValue = title
|
|
||||||
|
|
||||||
oldFrame = contentTextField.frame
|
|
||||||
contentTextField.stringValue = content
|
|
||||||
|
|
||||||
var infiniteHeightFrame = oldFrame
|
|
||||||
infiniteHeightFrame.size.width -= 4.0
|
|
||||||
infiniteHeightFrame.size.height = 10240
|
|
||||||
newFrame = (content as NSString).boundingRect(with: infiniteHeightFrame.size, options: [.usesLineFragmentOrigin], attributes: [.font: contentTextField.font!])
|
|
||||||
newFrame.size.width = max(newFrame.size.width, oldFrame.size.width)
|
|
||||||
newFrame.size.height += 4.0
|
|
||||||
newFrame.origin = oldFrame.origin
|
|
||||||
newFrame.origin.y -= (newFrame.size.height - oldFrame.size.height)
|
|
||||||
contentTextField.frame = newFrame
|
|
||||||
|
|
||||||
var windowFrame = window?.frame ?? NSRect.zero
|
|
||||||
windowFrame.size.height += (newFrame.size.height - oldFrame.size.height)
|
|
||||||
window?.level = NSWindow.Level(Int(CGShieldingWindowLevel()) + 1)
|
|
||||||
window?.setFrame(windowFrame, display: true)
|
|
||||||
window?.center()
|
|
||||||
window?.makeKeyAndOrderFront(self)
|
|
||||||
NSApp.activate(ignoringOtherApps: true)
|
|
||||||
}
|
|
||||||
|
|
||||||
@IBAction func confirmButtonAction(_ sender: Any) {
|
|
||||||
delegate?.nonModalAlertWindowControllerDidConfirm(self)
|
|
||||||
window?.orderOut(self)
|
|
||||||
}
|
|
||||||
|
|
||||||
@IBAction func cancelButtonAction(_ sender: Any) {
|
|
||||||
cancel(sender)
|
|
||||||
}
|
|
||||||
|
|
||||||
@objc public func cancel(_ sender: Any) {
|
|
||||||
delegate?.nonModalAlertWindowControllerDidCancel(self)
|
|
||||||
delegate = nil
|
|
||||||
window?.orderOut(self)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,85 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="19529" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="macosx"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="19529"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<customObject id="-2" userLabel="File's Owner" customClass="NonModalAlertWindowController" customModule="McBopomofo">
|
|
||||||
<connections>
|
|
||||||
<outlet property="cancelButton" destination="71" id="83"/>
|
|
||||||
<outlet property="confirmButton" destination="5" id="82"/>
|
|
||||||
<outlet property="contentTextField" destination="59" id="79"/>
|
|
||||||
<outlet property="titleTextField" destination="39" id="78"/>
|
|
||||||
<outlet property="window" destination="1" id="3"/>
|
|
||||||
</connections>
|
|
||||||
</customObject>
|
|
||||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
|
||||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
|
||||||
<window allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" visibleAtLaunch="NO" animationBehavior="default" id="1">
|
|
||||||
<windowStyleMask key="styleMask" titled="YES"/>
|
|
||||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
|
||||||
<rect key="contentRect" x="196" y="240" width="420" height="130"/>
|
|
||||||
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
|
|
||||||
<view key="contentView" id="2">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="420" height="130"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<subviews>
|
|
||||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="5">
|
|
||||||
<rect key="frame" x="314" y="13" width="92" height="32"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
|
||||||
<buttonCell key="cell" type="push" title="Button" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="6">
|
|
||||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
|
||||||
<font key="font" metaFont="system"/>
|
|
||||||
</buttonCell>
|
|
||||||
<connections>
|
|
||||||
<action selector="confirmButtonAction:" target="-2" id="85"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="71">
|
|
||||||
<rect key="frame" x="222" y="13" width="92" height="32"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
|
||||||
<buttonCell key="cell" type="push" title="Button" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="73">
|
|
||||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
|
||||||
<font key="font" metaFont="system"/>
|
|
||||||
</buttonCell>
|
|
||||||
<connections>
|
|
||||||
<action selector="cancelButtonAction:" target="-2" id="86"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<imageView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="12">
|
|
||||||
<rect key="frame" x="24" y="50" width="64" height="64"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
|
||||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="AlertIcon" id="13"/>
|
|
||||||
</imageView>
|
|
||||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="39">
|
|
||||||
<rect key="frame" x="103" y="97" width="300" height="17"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
|
||||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Lorem ipsum" id="40">
|
|
||||||
<font key="font" metaFont="systemBold"/>
|
|
||||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
|
||||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
|
||||||
</textFieldCell>
|
|
||||||
</textField>
|
|
||||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" preferredMaxLayoutWidth="296" translatesAutoresizingMaskIntoConstraints="NO" id="59">
|
|
||||||
<rect key="frame" x="103" y="72" width="300" height="17"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
|
||||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Lorem ipsum" id="60">
|
|
||||||
<font key="font" metaFont="smallSystem"/>
|
|
||||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
|
||||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
|
||||||
</textFieldCell>
|
|
||||||
</textField>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<connections>
|
|
||||||
<outlet property="delegate" destination="-2" id="4"/>
|
|
||||||
</connections>
|
|
||||||
<point key="canvasLocation" x="140" y="146"/>
|
|
||||||
</window>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="AlertIcon" width="64" height="64"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
Loading…
Reference in New Issue