diff options
Diffstat (limited to 'WireGuard/WireGuard/UI/macOS/View/DeleteTunnelsConfirmationAlert.swift')
-rw-r--r-- | WireGuard/WireGuard/UI/macOS/View/DeleteTunnelsConfirmationAlert.swift | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/WireGuard/WireGuard/UI/macOS/View/DeleteTunnelsConfirmationAlert.swift b/WireGuard/WireGuard/UI/macOS/View/DeleteTunnelsConfirmationAlert.swift new file mode 100644 index 0000000..e52ed89 --- /dev/null +++ b/WireGuard/WireGuard/UI/macOS/View/DeleteTunnelsConfirmationAlert.swift @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: MIT +// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved. + +import Cocoa + +class DeleteTunnelsConfirmationAlert: NSAlert { + var alertDeleteButton: NSButton? + var alertCancelButton: NSButton? + + var onDeleteClicked: ((_ completionHandler: @escaping () -> Void) -> Void)? + + override init() { + super.init() + let alertDeleteButton = addButton(withTitle: tr("macDeleteTunnelConfirmationAlertButtonTitleDelete")) + alertDeleteButton.target = self + alertDeleteButton.action = #selector(removeTunnelAlertDeleteClicked) + self.alertDeleteButton = alertDeleteButton + self.alertCancelButton = addButton(withTitle: tr("macDeleteTunnelConfirmationAlertButtonTitleCancel")) + } + + @objc func removeTunnelAlertDeleteClicked() { + alertDeleteButton?.title = tr("macDeleteTunnelConfirmationAlertButtonTitleDeleting") + alertDeleteButton?.isEnabled = false + alertCancelButton?.isEnabled = false + if let onDeleteClicked = onDeleteClicked { + onDeleteClicked { [weak self] in + guard let self = self else { return } + self.window.sheetParent?.endSheet(self.window) + } + } + } + + func beginSheetModal(for sheetWindow: NSWindow) { + beginSheetModal(for: sheetWindow) { _ in } + } +} |