aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard/WireGuard/UI/macOS/View/DeleteTunnelsConfirmationAlert.swift
diff options
context:
space:
mode:
Diffstat (limited to 'WireGuard/WireGuard/UI/macOS/View/DeleteTunnelsConfirmationAlert.swift')
-rw-r--r--WireGuard/WireGuard/UI/macOS/View/DeleteTunnelsConfirmationAlert.swift36
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 }
+ }
+}