diff options
author | lawl <github@dumbinter.net> | 2020-07-14 13:03:11 +0200 |
---|---|---|
committer | lawl <github@dumbinter.net> | 2020-07-14 13:03:11 +0200 |
commit | d87c8153c7c23200dbddbea899794be111cfc621 (patch) | |
tree | 97ca0234cfe4a4bc5d18c8d3573a32f95d073a8a /ui.go | |
parent | 1a18fce4f339b6cc934d517e5ea091c2f31be193 (diff) | |
download | noisetorch-d87c8153c7c23200dbddbea899794be111cfc621.tar.gz noisetorch-d87c8153c7c23200dbddbea899794be111cfc621.zip |
Add context menu for licenses, code, version
Also implement a separate view to display version.
Add a dummy view to display all licenses incl. dependencies.
Diffstat (limited to 'ui.go')
-rw-r--r-- | ui.go | 66 |
1 files changed, 64 insertions, 2 deletions
@@ -4,9 +4,11 @@ import ( "fmt" "image/color" "log" + "os/exec" "time" "github.com/aarzilli/nucular" + "github.com/aarzilli/nucular/label" "github.com/lawl/pulseaudio" ) @@ -19,6 +21,9 @@ type uistate struct { useBuiltinRNNoise bool config *config loadingScreen bool + licenseScreen bool + versionScreen bool + licenseTextArea nucular.TextEditor masterWindow *nucular.MasterWindow } @@ -29,8 +34,35 @@ func updatefn(w *nucular.Window, ui *uistate) { return } - w.Row(15).Dynamic(2) - w.Label("NoiseTorch ("+version+")", "LC") + if ui.licenseScreen { + licenseScreen(w, ui) + return + } + + if ui.versionScreen { + versionScreen(w, ui) + return + } + + w.MenubarBegin() + w.WindowStyle().Background = color.RGBA{0, 255, 0, 255} + w.Row(10).Dynamic(1) + if w := w.Menu(label.TA("About", "LC"), 120, nil); w != nil { + w.Row(10).Dynamic(1) + if w.MenuItem(label.T("Licenses")) { + ui.licenseScreen = true + } + w.Row(10).Dynamic(1) + if w.MenuItem(label.T("Source code")) { + exec.Command("xdg-open", "https://github.com/lawl/NoiseTorch").Run() + } + if w.MenuItem(label.T("Version")) { + ui.versionScreen = true + } + } + w.MenubarEnd() + + w.Row(15).Dynamic(1) if ui.noiseSupressorState == loaded { w.LabelColored("NoiseTorch active", "RC", color.RGBA{34, 187, 69, 255} /*green*/) @@ -165,3 +197,33 @@ func loadingScreen(w *nucular.Window, ui *uistate) { w.Row(50).Dynamic(1) w.Label("(this may take a few seconds)", "CB") } + +func licenseScreen(w *nucular.Window, ui *uistate) { + w.Row(255).Dynamic(1) + field := &ui.licenseTextArea + field.Flags |= nucular.EditMultiline + if len(field.Buffer) < 1 { + field.Buffer = []rune("foo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\nfoo\nbar\n") + } + field.Edit(w) + + w.Row(20).Dynamic(2) + w.Spacing(1) + if w.ButtonText("OK") { + ui.licenseScreen = false + } +} + +func versionScreen(w *nucular.Window, ui *uistate) { + w.Row(50).Dynamic(1) + w.Label("Version", "CB") + w.Row(50).Dynamic(1) + w.Label(version, "CB") + w.Row(50).Dynamic(1) + w.Spacing(1) + w.Row(20).Dynamic(2) + w.Spacing(1) + if w.ButtonText("OK") { + ui.versionScreen = false + } +} |