diff options
| author | Jeff Carr <[email protected]> | 2024-02-09 03:48:46 -0600 | 
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-02-09 03:48:46 -0600 | 
| commit | 0949113167e0b37a4ba35637c3f6f6a2d0d14e8d (patch) | |
| tree | 26ed5b8b8c372d18b2c6e0428dbe5987c537e58e | |
| parent | de85ed65b32cbb91b8ca796deb51f0ff1fa85de3 (diff) | |
Signed-off-by: Jeff Carr <[email protected]>
| -rw-r--r-- | args.go | 5 | ||||
| -rw-r--r-- | choices.go | 69 | 
2 files changed, 69 insertions, 5 deletions
@@ -12,11 +12,8 @@ import (  	"go.wit.com/log"  ) -	// GadgetDisplay    string `arg:"env:DISPLAY"` -	// GadgetTmpLog     bool   `arg:"--tmp-log" help:"automatically send STDOUT to /tmp"` -	// GadgetVerboseDNS bool   `arg:"--verbose" help:"debug your dns settings"`  var args struct { -	TmpLog     bool   `arg:"--tmp-log" help:"automatically send STDOUT to /tmp"` +	TmpLog bool `arg:"--tmp-log" help:"automatically send STDOUT to /tmp"`  }  func init() { @@ -2,6 +2,9 @@  package main  import ( +	"math/rand" +	"time" +  	"go.wit.com/gui"  	"go.wit.com/lib/gadgets"  	"go.wit.com/log" @@ -25,7 +28,8 @@ func newChoices(parent *gui.Node) *choices {  	var c *choices  	c = new(choices)  	c.group = parent.NewGroup("choices") -	c.grid = c.group.NewGrid("gridiron", 2, 1) +	c.grid = c.group.NewGrid("gridiron", 8, 1) +  	c.grid.NewButton("hello", func() {  		log.Info("world")  	}) @@ -33,6 +37,7 @@ func newChoices(parent *gui.Node) *choices {  		basicWindow.Toggle()  	})  	c.grid.NewLabel("a label") +	c.grid.NextRow()  	c.computers = c.grid.NewDropdown().SetProgName("COMPUTERS")  	c.computers.AddText("Atari 500") @@ -42,25 +47,75 @@ func newChoices(parent *gui.Node) *choices {  	c.computers.Custom = func() {  		log.Info("You changed the computer to:", c.computers.String())  	} +	c.grid.NewButton("modify dropdown state", func() { +		c.computers.AddText("Irix") +		c.computers.AddText("Macintosh Plus") +		c.computers.SetText("Irix") + +		rand.Seed(time.Now().UnixNano()) +		// Generate a random number between 0 and 25 +		randomNum := rand.Intn(8) // 26 because Intn is [0, n) +		// Convert to a corresponding uppercase letter +		randomLetter := rune('A' + randomNum) +		c.computers.AddText("WIT " + string(randomLetter)) +		c.showState() +	}) +	c.grid.NewButton("toggle", func() { +		if c.computers.Hidden() { +			c.computers.Show() +		} else { +			c.computers.Hide() +		} +	}) +	c.grid.NewButton("dropdown state", func() { +		c.showState() +	}) +	c.grid.NextRow()  	c.colors = c.grid.NewCombobox().SetProgName("COLORS")  	c.colors.AddText("Cyan")  	c.colors.AddText("Magenta")  	c.colors.AddText("Yellow")  	c.colors.SetText("orange") +	c.grid.NewButton("modify combobox state", func() { +		c.colors.AddText("Red") +		rand.Seed(time.Now().UnixNano()) +		// Generate a random number between 0 and 25 +		randomNum := rand.Intn(26) // 26 because Intn is [0, n) +		// Convert to a corresponding uppercase letter +		randomLetter := rune('A' + randomNum) +		c.colors.AddText("Yellow " + string(randomLetter)) + +		c.colors.SetText("blue") +		log.Info("color value =", c.colors.String()) +	}) +	c.grid.NewButton("toggle", func() { +		if c.colors.Hidden() { +			c.colors.Show() +		} else { +			c.colors.Hide() +		} +	}) +	c.grid.NewButton("show state", func() { +		c.showState() +	}) +	c.grid.NextRow()  	c.checkers = c.grid.NewCheckbox("Checkers").SetProgName("CHECKERS")  	c.checkers.Custom = func() {  		log.Info("Checkers is", c.checkers.Bool())  	} +	c.grid.NextRow()  	c.socks = gadgets.NewOneLiner(c.grid, "two for one")  	c.socks.SetValue("socks") +	c.grid.NextRow()  	c.animal = gadgets.NewBasicCombobox(c.grid, "animals")  	c.animal.AddText("otter")  	c.animal.AddText("honey badger")  	c.animal.AddText("polar bear") +	c.grid.NextRow()  	c.place = gadgets.NewBasicEntry(c.grid, "favorite place")  	c.place.Custom = func() { @@ -73,6 +128,7 @@ func newChoices(parent *gui.Node) *choices {  		}  	}  	c.place.SetText("coffee shop") +	c.grid.NextRow()  	c.grid.NewButton("enable animals", func() {  		c.animal.Enable() @@ -91,3 +147,14 @@ func (c *choices) SetSocks(s string) *choices {  	c.socks.SetValue(s)  	return c  } + +func (c *choices) showState() { +	log.Info("computers value =", c.computers.String()) +	for i, s := range c.computers.Strings() { +		log.Println("computers has:", i, s) +	} +	log.Info("color value =", c.colors.String()) +	for i, s := range c.colors.Strings() { +		log.Println("has option", i, s) +	} +}  | 
