aboutsummaryrefslogtreecommitdiffstats
path: root/WireGuard
diff options
context:
space:
mode:
authorRoopesh Chander <roop@roopc.net>2019-01-12 00:20:02 +0530
committerRoopesh Chander <roop@roopc.net>2019-01-14 14:52:37 +0530
commit26ea353933bc93e6fd624b0914347de44cff667a (patch)
treee760c788b4970523e29e5e28c8ea59ff117c5380 /WireGuard
parentmacOS: Add app icon (diff)
downloadwireguard-apple-26ea353933bc93e6fd624b0914347de44cff667a.tar.xz
wireguard-apple-26ea353933bc93e6fd624b0914347de44cff667a.zip
macOS: Add About dialog
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to 'WireGuard')
-rw-r--r--WireGuard/WireGuard/Base.lproj/Localizable.strings6
-rw-r--r--WireGuard/WireGuard/UI/macOS/StatusMenu.swift18
2 files changed, 24 insertions, 0 deletions
diff --git a/WireGuard/WireGuard/Base.lproj/Localizable.strings b/WireGuard/WireGuard/Base.lproj/Localizable.strings
index cf73bf3..ab42116 100644
--- a/WireGuard/WireGuard/Base.lproj/Localizable.strings
+++ b/WireGuard/WireGuard/Base.lproj/Localizable.strings
@@ -232,6 +232,7 @@
"macMenuAddEmptyTunnel" = "Add empty tunnel...";
"macMenuExportLog" = "Export log to file...";
"macMenuExportTunnels" = "Export tunnels to zip...";
+"macMenuAbout" = "About WireGuard";
"macMenuQuit" = "Quit";
// Mac manage tunnels window
@@ -292,3 +293,8 @@
"macAlertInfoUnrecognizedPeerKey" = "Valid keys are: 'PublicKey', 'PresharedKey', 'AllowedIPs', 'Endpoint' and 'PersistentKeepalive'";
"macAlertMultipleEntriesForKey (%@)" = "There should be only one entry per section for key '%@'";
+
+// Mac about dialog
+
+"macAppVersion (%@)" = "App version: %@";
+"macGoBackendVersion (%@)" = "Go backend version: %@";
diff --git a/WireGuard/WireGuard/UI/macOS/StatusMenu.swift b/WireGuard/WireGuard/UI/macOS/StatusMenu.swift
index 3a22d25..78e71ba 100644
--- a/WireGuard/WireGuard/UI/macOS/StatusMenu.swift
+++ b/WireGuard/WireGuard/UI/macOS/StatusMenu.swift
@@ -123,6 +123,9 @@ class StatusMenu: NSMenu {
}
func addApplicationItems() {
+ let aboutItem = NSMenuItem(title: tr("macMenuAbout"), action: #selector(aboutClicked), keyEquivalent: "")
+ aboutItem.target = self
+ addItem(aboutItem)
let quitItem = NSMenuItem(title: tr("macMenuQuit"), action: #selector(NSApplication.terminate), keyEquivalent: "")
quitItem.target = NSApp
addItem(quitItem)
@@ -148,6 +151,21 @@ class StatusMenu: NSMenu {
manageTunnelsWindow.makeKeyAndOrderFront(self)
ImportPanelPresenter.presentImportPanel(tunnelsManager: tunnelsManager, sourceVC: manageTunnelsRootVC!)
}
+
+ @objc func aboutClicked() {
+ var appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "Unknown"
+ if let appBuild = Bundle.main.infoDictionary?["CFBundleVersion"] as? String {
+ appVersion += " (\(appBuild))"
+ }
+ let appVersionString = [
+ tr(format: "macAppVersion (%@)", appVersion),
+ tr(format: "macGoBackendVersion (%@)", WIREGUARD_GO_VERSION)
+ ].joined(separator: "\n")
+ NSApp.orderFrontStandardAboutPanel(options: [
+ .applicationVersion: appVersionString,
+ .version: ""
+ ])
+ }
}
extension StatusMenu {