diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-05-02 09:36:46 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-05-02 10:07:15 +0200 |
commit | abd045fb681024e3cd0caffa460d9ca5c92f4a52 (patch) | |
tree | 8e4c3f7ceb60b9933a176474658a5112111b1471 | |
parent | ui: select closest tunnel after deletion (diff) | |
download | wireguard-windows-abd045fb681024e3cd0caffa460d9ca5c92f4a52.tar.xz wireguard-windows-abd045fb681024e3cd0caffa460d9ca5c92f4a52.zip |
ui: separate out about dialog and revamp
Diffstat (limited to '')
-rw-r--r-- | ui/aboutdialog.go | 82 | ||||
-rw-r--r-- | ui/ui.go | 59 |
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() +} @@ -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() -} |