From ff76b831adfccca471891b694d5160b1ab7a1733 Mon Sep 17 00:00:00 2001 From: Noah Petherbridge Date: Thu, 3 Jun 2021 12:27:48 -0700 Subject: [PATCH] Update example apps and documentation --- README.md | 3 +++ eg/README.md | 12 +++++++++--- eg/frame-place/main.go | 3 ++- eg/hello-world/README.md | 11 +++++++++++ eg/hello-world/main.go | 3 ++- eg/hello-world/screenshot.png | Bin 0 -> 9889 bytes eg/layout/layout.go | 7 ------- eg/layout/main.go | 12 ------------ eg/menus/README.md | 2 ++ eg/menus/screenshot.png | Bin 0 -> 21636 bytes eg/themes/README.md | 13 +++++++++++++ eg/themes/screenshot.png | Bin 0 -> 16890 bytes eg/tooltip/README.md | 10 ++++++++++ eg/tooltip/main.go | 3 ++- eg/tooltip/screenshot.png | Bin 0 -> 13793 bytes eg/windows/README.md | 11 +++++++++++ eg/windows/screenshot.png | Bin 0 -> 16775 bytes go.mod | 6 +++--- go.sum | 6 ++++++ 19 files changed, 74 insertions(+), 28 deletions(-) create mode 100644 eg/hello-world/README.md create mode 100644 eg/hello-world/screenshot.png delete mode 100644 eg/layout/layout.go delete mode 100644 eg/layout/main.go create mode 100644 eg/menus/screenshot.png create mode 100644 eg/themes/README.md create mode 100644 eg/themes/screenshot.png create mode 100644 eg/tooltip/README.md create mode 100644 eg/tooltip/screenshot.png create mode 100644 eg/windows/README.md create mode 100644 eg/windows/screenshot.png diff --git a/README.md b/README.md index c9354db..c5dc2dd 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,9 @@ requests are accepted on GitHub. # Example +See the [eg/](https://git.kirsle.net/go/ui/src/branch/master/eg) directory +in this git repository for several example programs and screenshots. + ```go package main diff --git a/eg/README.md b/eg/README.md index 5ab58e6..c6887b5 100644 --- a/eg/README.md +++ b/eg/README.md @@ -1,10 +1,16 @@ # Examples for go/ui -* [Hello, World!](hello-world/): a basic UI demo. -* [Frame Place()](frame-place/): demonstrates using the Place() layout management - option for Frame widgets.] +Here are some example programs using go/ui, each accompanied by a +screenshot and description: + +* [Hello, World!](hello-world/): a basic UI demo with a Label and a + Button. +* [Frame Place()](frame-place/): demonstrates using the Place() layout + management option for Frame widgets. * [Window Manager](windows/): demonstrates the Window widget and window management features of the Supervisor. * [Tooltip](tooltip/): demonstrates the Tooltip widget on a variety of buttons scattered around the window. * [Menus](menus/): demonstrates various Menu Buttons and a Menu Bar. +* [Themes](themes/): a UI demo that shows off the Default, Flat, and Dark UI + themes as part of experimental theming support. diff --git a/eg/frame-place/main.go b/eg/frame-place/main.go index ad1419d..4886b7e 100644 --- a/eg/frame-place/main.go +++ b/eg/frame-place/main.go @@ -134,8 +134,9 @@ func CreateButtons(window *ui.MainWindow, parent *ui.Frame) { })) // When clicked, change the window title to ID this button. - button.Handle(ui.Click, func(ed ui.EventData) { + button.Handle(ui.Click, func(ed ui.EventData) error { window.SetTitle(parent.Name + ": " + setting.Label) + return nil }) parent.Place(button, setting.Place) diff --git a/eg/hello-world/README.md b/eg/hello-world/README.md new file mode 100644 index 0000000..b01e639 --- /dev/null +++ b/eg/hello-world/README.md @@ -0,0 +1,11 @@ +# Hello World + +![Screenshot](screenshot.png) + +A simple Hello World featuring a Label and a Button. The button logs +to the console window when clicked. + +## Running It + +From your terminal, just type `go run main.go` from this +example's directory. diff --git a/eg/hello-world/main.go b/eg/hello-world/main.go index c6ae838..a448163 100644 --- a/eg/hello-world/main.go +++ b/eg/hello-world/main.go @@ -44,8 +44,9 @@ func main() { Padding: 4, }, })) - button.Handle(ui.Click, func(ed ui.EventData) { + button.Handle(ui.Click, func(ed ui.EventData) error { fmt.Println("I've been clicked!") + return nil }) mw.Pack(button, ui.Pack{ Side: ui.N, diff --git a/eg/hello-world/screenshot.png b/eg/hello-world/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..eca253bfd08d3c3b5caacf5876ecbe903a7f6984 GIT binary patch literal 9889 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 R0N5KvJxAU*UF8!dDsASJ}^C<;oIF47Y^gkG#5 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 IdGh>!09>^s=>Px# literal 0 HcmV?d00001 diff --git a/eg/tooltip/README.md b/eg/tooltip/README.md new file mode 100644 index 0000000..9081890 --- /dev/null +++ b/eg/tooltip/README.md @@ -0,0 +1,10 @@ +# Tooltips Demo + +![Screenshot](screenshot.png) + +A screen full of buttons having different Tooltip properties. + +## Running It + +From your terminal, just type `go run main.go` from this +example's directory. diff --git a/eg/tooltip/main.go b/eg/tooltip/main.go index 005a209..5c8664d 100644 --- a/eg/tooltip/main.go +++ b/eg/tooltip/main.go @@ -132,8 +132,9 @@ func CreateButtons(window *ui.MainWindow, parent *ui.Frame) { })) // When clicked, change the window title to ID this button. - button.Handle(ui.Click, func(ed ui.EventData) { + button.Handle(ui.Click, func(ed ui.EventData) error { window.SetTitle(parent.Name + ": " + setting.Label) + return nil }) // Tooltip for it. diff --git a/eg/tooltip/screenshot.png b/eg/tooltip/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..4eda807d3b0d812a85f55ece4d81d09d3baddeae GIT binary patch literal 13793 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 q8$ z2Bw#@SDlx47knyA4`RT7!9eY0*7GFgy!F-ciuzIq5*vKMuex9+Xa4+o3tsf5pddAX z|B-Lz3gKzFr6vE!KOo%VcxT%x5_-o~a?EMYB zJPz+OSL>--traJj;=iX;jthwEZ9{`7%!JLZtY8D(MRpe2daOMway*=JKvcr;Yu&Z| zJraWvSs09I2_`0;L`^Ee$V;2xR_#?_c!=-dsZov;)%ArqjRRN#z0u-|CQS%fA zfEaliMQtnnS!f7ANsSQ3U|{sjw#66RV-2ziaB)pFb5g6y?jnHi-0?nHVSy411{(ML zWWO0@0-*~#G*-@5=dn*! literal 0 HcmV?d00001 diff --git a/eg/windows/README.md b/eg/windows/README.md new file mode 100644 index 0000000..d8b75b6 --- /dev/null +++ b/eg/windows/README.md @@ -0,0 +1,11 @@ +# Windows Demo + +![Screenshot](screenshot.png) + +This demo lets you open a bunch of Window widgets that can be moved +around, overlapped, and closed. + +## Running It + +From your terminal, just type `go run main.go` from this +example's directory. diff --git a/eg/windows/screenshot.png b/eg/windows/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..4b5dd74d1e87484daea088488837ef0390b63ac0 GIT binary patch literal 16775 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 literal 0 HcmV?d00001 diff --git a/go.mod b/go.mod index 0f7fa2d..6c9025f 100644 --- a/go.mod +++ b/go.mod @@ -2,8 +2,8 @@ module git.kirsle.net/go/ui go 1.13 -replace git.kirsle.net/go/render => /home/kirsle/go/src/git.kirsle.net/go/render - require ( - git.kirsle.net/go/render v0.0.0-20200102014411-4d008b5c468d + git.kirsle.net/go/render v0.0.0-20210104010442-b4a1979a8ba1 + github.com/veandco/go-sdl2 v0.4.7 // indirect + golang.org/x/image v0.0.0-20210504121937-7319ad40d33e // indirect ) diff --git a/go.sum b/go.sum index 6f64f01..277cb31 100644 --- a/go.sum +++ b/go.sum @@ -3,6 +3,8 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw= git.kirsle.net/go/render v0.0.0-20200102014411-4d008b5c468d h1:vErak6oVRT2dosyQzcwkjXyWQ2NRIVL8q9R8NOUTtsg= git.kirsle.net/go/render v0.0.0-20200102014411-4d008b5c468d/go.mod h1:ywZtC+zE2SpeObfkw0OvG01pWHQadsVQ4WDKOYzaejc= +git.kirsle.net/go/render v0.0.0-20210104010442-b4a1979a8ba1 h1:wGQLjBnWvqx7rU43yFG8ow4rnYqUMUwqorEkxdPaJ6Q= +git.kirsle.net/go/render v0.0.0-20210104010442-b4a1979a8ba1/go.mod h1:ss7pvZbGWrMaDuZwyUTjV9+T0AJwAkxZZHwMFsvHrkk= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= @@ -95,6 +97,8 @@ github.com/tomnomnom/xtermcolor v0.0.0-20160428124646-b78803f00a7e/go.mod h1:fSI github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= github.com/veandco/go-sdl2 v0.4.1 h1:HmSBvVmKWI8LAOeCfTTM8R33rMyPcs6U3o8n325c9Qg= github.com/veandco/go-sdl2 v0.4.1/go.mod h1:FB+kTpX9YTE+urhYiClnRzpOXbiWgaU3+5F2AB78DPg= +github.com/veandco/go-sdl2 v0.4.7 h1:VfpCM+LfEGDbHdByglCo2bcBsevjFvzl8W0f6VLNitg= +github.com/veandco/go-sdl2 v0.4.7/go.mod h1:OROqMhHD43nT4/i9crJukyVecjPNYYuCofep6SNiAjY= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -105,6 +109,8 @@ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20200119044424-58c23975cae1 h1:5h3ngYt7+vXCDZCup/HkCQgW5XwmSvR/nA2JmJ0RErg= golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210504121937-7319ad40d33e h1:PzJMNfFQx+QO9hrC1GwZ4BoPGeNGhfeQEgcQFArEjPk= +golang.org/x/image v0.0.0-20210504121937-7319ad40d33e/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=