aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/ui
diff options
context:
space:
mode:
Diffstat (limited to 'ui')
-rw-r--r--ui/aboutdialog.go82
-rw-r--r--ui/ui.go59
2 files changed, 82 insertions, 59 deletions
diff --git a/ui/aboutdialog.go b/ui/aboutdialog.go
new file mode 100644
index 00000000..7fa9231a
--- /dev/null
+++ b/ui/aboutdialog.go
@@ -0,0 +1,82 @@
+/* SPDX-License-Identifier: MIT
+ *
+ * Copyright (C) 2019 WireGuard LLC. All Rights Reserved.
+ */
+
+package ui
+
+import (
+ "fmt"
+ "runtime"
+
+ "github.com/lxn/walk"
+ "github.com/lxn/win"
+ "golang.org/x/sys/windows"
+ "golang.zx2c4.com/wireguard/device"
+ "golang.zx2c4.com/wireguard/windows/version"
+)
+
+func onAbout(owner walk.Form) {
+ vbl := walk.NewVBoxLayout()
+ vbl.SetMargins(walk.Margins{80, 20, 80, 20})
+ vbl.SetSpacing(10)
+
+ dlg, _ := walk.NewDialogWithFixedSize(owner)
+ dlg.SetTitle("About WireGuard")
+ dlg.SetLayout(vbl)
+ dlg.SetIcon(iconProvider.wireguardIcon)
+
+ font, _ := walk.NewFont("Segoe UI", 9, 0)
+ dlg.SetFont(font)
+
+ iv, _ := walk.NewImageView(dlg)
+ logo, _ := walk.NewIconFromResourceWithSize("$wireguard.ico", walk.Size{owner.DPI() * 4 / 3, owner.DPI() * 4 / 3}) //TODO: calculate DPI dynamically
+ iv.SetCursor(walk.CursorHand())
+ iv.MouseUp().Attach(func(x, y int, button walk.MouseButton) {
+ if button == walk.LeftButton {
+ win.ShellExecute(dlg.Handle(), nil, windows.StringToUTF16Ptr("https://www.wireguard.com/"), nil, nil, win.SW_SHOWNORMAL)
+ }
+ })
+ iv.SetImage(logo)
+
+ wgLbl, _ := walk.NewTextLabel(dlg)
+ wgFont, _ := walk.NewFont("Segoe UI", 16, walk.FontBold)
+ wgLbl.SetFont(wgFont)
+ wgLbl.SetTextAlignment(walk.AlignHCenterVNear)
+ wgLbl.SetText("WireGuard")
+
+ detailsLbl, _ := walk.NewTextLabel(dlg)
+ detailsLbl.SetTextAlignment(walk.AlignHCenterVNear)
+ detailsLbl.SetText(fmt.Sprintf("App version: %s\nGo backend version: %s\nGolang version: %s %s\n%s", version.RunningVersion(), device.WireGuardGoVersion, runtime.Version(), runtime.GOARCH, version.OsName()))
+
+ copyrightLbl, _ := walk.NewTextLabel(dlg)
+ copyrightFont, _ := walk.NewFont("Segoe UI", 7, 0)
+ copyrightLbl.SetFont(copyrightFont)
+ copyrightLbl.SetTextAlignment(walk.AlignHCenterVNear)
+ copyrightLbl.SetText("Copyright © 2015-2019 Jason A. Donenfeld. All Rights Reserved.")
+
+ buttonCP, _ := walk.NewComposite(dlg)
+ hbl := walk.NewHBoxLayout()
+ hbl.SetMargins(walk.Margins{VNear: 10})
+ buttonCP.SetLayout(hbl)
+ walk.NewHSpacer(buttonCP)
+ closePB, _ := walk.NewPushButton(buttonCP)
+ closePB.SetAlignment(walk.AlignHCenterVNear)
+ closePB.SetText("Close")
+ closePB.Clicked().Attach(func() {
+ dlg.Accept()
+ })
+ donatePB, _ := walk.NewPushButton(buttonCP)
+ donatePB.SetAlignment(walk.AlignHCenterVNear)
+ donatePB.SetText("♥ Donate!")
+ donatePB.Clicked().Attach(func() {
+ win.ShellExecute(dlg.Handle(), nil, windows.StringToUTF16Ptr("https://www.wireguard.com/donations/"), nil, nil, win.SW_SHOWNORMAL)
+ dlg.Accept()
+ })
+ walk.NewHSpacer(buttonCP)
+
+ dlg.SetDefaultButton(donatePB)
+ dlg.SetCancelButton(closePB)
+
+ dlg.Run()
+}
diff --git a/ui/ui.go b/ui/ui.go
index 4aeb4f42..93422c22 100644
--- a/ui/ui.go
+++ b/ui/ui.go
@@ -8,7 +8,6 @@ package ui
import (
"fmt"
"github.com/lxn/walk"
- "golang.zx2c4.com/wireguard/device"
"golang.zx2c4.com/wireguard/windows/service"
"golang.zx2c4.com/wireguard/windows/updater"
"golang.zx2c4.com/wireguard/windows/version"
@@ -115,61 +114,3 @@ func onQuit() {
shouldQuitManagerWhenExiting = true
walk.App().Exit(0)
}
-
-func onAbout(owner walk.Form) {
- vbl := walk.NewVBoxLayout()
- vbl.SetMargins(walk.Margins{80, 20, 80, 20})
- vbl.SetSpacing(10)
-
- dlg, _ := walk.NewDialogWithFixedSize(owner)
- dlg.SetTitle("About WireGuard")
- dlg.SetLayout(vbl)
- dlg.SetIcon(iconProvider.wireguardIcon)
-
- font, _ := walk.NewFont("Segoe UI", 9, 0)
- dlg.SetFont(font)
-
- iv, _ := walk.NewImageView(dlg)
- logo, _ := walk.NewIconFromResourceWithSize("$wireguard.ico", walk.Size{owner.DPI() * 4 / 3, owner.DPI() * 4 / 3})
- iv.SetImage(logo)
- wgFont, _ := walk.NewFont("Segoe UI", 16, walk.FontBold)
-
- wgLbl, _ := walk.NewLabel(dlg)
- wgLbl.SetFont(wgFont)
- wgLbl.SetTextAlignment(walk.AlignCenter)
- wgLbl.SetText("WireGuard")
-
- detailsLbl, _ := walk.NewTextLabel(dlg)
- detailsLbl.SetTextAlignment(walk.AlignHCenterVNear)
-
- detailsLbl.SetText(fmt.Sprintf(`App version: %s
-Go backend version: %s
-Golang version: %s %s
-%s
-
-Copyright © 2015-2019 WireGuard LLC.
-All Rights Reserved.`,
- version.RunningVersion(), device.WireGuardGoVersion, runtime.Version(), runtime.GOARCH, version.OsName()))
-
- hbl := walk.NewHBoxLayout()
- hbl.SetMargins(walk.Margins{VNear: 10})
-
- buttonCP, _ := walk.NewComposite(dlg)
- buttonCP.SetLayout(hbl)
-
- walk.NewHSpacer(buttonCP)
-
- closePB, _ := walk.NewPushButton(buttonCP)
- closePB.SetAlignment(walk.AlignHCenterVNear)
- closePB.SetText("Close")
- closePB.Clicked().Attach(func() {
- dlg.Accept()
- })
-
- walk.NewHSpacer(buttonCP)
-
- dlg.SetDefaultButton(closePB)
- dlg.SetCancelButton(closePB)
-
- dlg.Run()
-}