summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2019-05-12 18:17:12 -0700
committerJeff Carr <[email protected]>2019-05-12 18:17:12 -0700
commit27b26ea5b7f3f0c89dab639fc5b04cc3a57f60cd (patch)
tree6c340591a16b51f485b62c70510c6da1628d6cd3
parentb92903ad1507c44e218d5887fb5229fab82f5dd2 (diff)
move sample code into appropriate files
Signed-off-by: Jeff Carr <[email protected]>
-rw-r--r--demo.go40
-rw-r--r--examples.go202
-rw-r--r--gui.go195
3 files changed, 243 insertions, 194 deletions
diff --git a/demo.go b/demo.go
new file mode 100644
index 0000000..35e5da9
--- /dev/null
+++ b/demo.go
@@ -0,0 +1,40 @@
+package gui
+
+import "log"
+
+import "github.com/andlabs/ui"
+import _ "github.com/andlabs/ui/winmanifest"
+
+var demowin *ui.Window
+var demotab *ui.Tab
+
+func setupDemoUI() {
+ log.Println("setupDemoUI() START")
+ demowin = ui.NewWindow("Demo GUI Widgets", 500, 300, false)
+ demowin.OnClosing(func(*ui.Window) bool {
+ ui.Quit()
+ return true
+ })
+ ui.OnShouldQuit(func() bool {
+ demowin.Destroy()
+ return true
+ })
+
+ demotab = ui.NewTab()
+ demowin.SetChild(demotab)
+ demowin.SetMargined(true)
+
+ demotab.Append("List examples", makeNumbersPage())
+ tabcount := 0
+ demotab.SetMargined(tabcount, true)
+
+ demotab.Append("Choosers examples", makeDataChoosersPage())
+ tabcount += 1
+ demotab.SetMargined(tabcount, true)
+
+ demotab.Append("Group examples", makeGroupEntries())
+ tabcount += 1
+ demotab.SetMargined(tabcount, true)
+
+ demowin.Show()
+}
diff --git a/examples.go b/examples.go
new file mode 100644
index 0000000..64973c9
--- /dev/null
+++ b/examples.go
@@ -0,0 +1,202 @@
+package gui
+
+import "log"
+
+import "github.com/gookit/config"
+import "github.com/andlabs/ui"
+import _ "github.com/andlabs/ui/winmanifest"
+
+import "github.com/davecgh/go-spew/spew"
+
+func buttonClick(button *ui.Button) {
+ log.Println("hostname =", config.String("hostname"), button)
+ spew.Dump(button)
+ if (jcarrButton == button) {
+ log.Println("This is the jcarrButton")
+ cur := jcarrEntry.Text()
+ jcarrEntry.SetText(cur + "THIS IS A GREAT IDEA\n")
+ } else {
+ log.Println("This is NOT the jcarrButton")
+ }
+}
+
+func hostnameButton(hostname string) ui.Control {
+ tmpbox := ui.NewHorizontalBox()
+ tmpbox.SetPadded(true)
+
+ tmpButton := ui.NewButton(hostname)
+ tmpbox.Append(tmpButton, false)
+ tmpButton.OnClicked(buttonClick)
+
+ jcarrButton = tmpButton
+
+ return tmpbox
+}
+
+func makeGroupEntries() ui.Control {
+ group := ui.NewGroup("Entries")
+ group.SetMargined(true)
+
+ group.SetChild(ui.NewNonWrappingMultilineEntry())
+
+ entryForm := ui.NewForm()
+ entryForm.SetPadded(true)
+ group.SetChild(entryForm)
+
+ jcarrEntry = ui.NewMultilineEntry()
+ entryForm.Append("Entry", ui.NewEntry(), false)
+ entryForm.Append("Password Entry", ui.NewPasswordEntry(), false)
+ entryForm.Append("Search Entry", ui.NewSearchEntry(), false)
+ entryForm.Append("Multiline Entry", jcarrEntry, true)
+ entryForm.Append("Multiline Entry No Wrap", ui.NewNonWrappingMultilineEntry(), true)
+
+ return group
+}
+
+func makeNumbersPage() ui.Control {
+ hbox := ui.NewHorizontalBox()
+ hbox.SetPadded(true)
+
+ group := ui.NewGroup("Numbers")
+ group.SetMargined(true)
+ hbox.Append(group, true)
+
+ vbox := ui.NewVerticalBox()
+ vbox.SetPadded(true)
+ group.SetChild(vbox)
+
+ spinbox := ui.NewSpinbox(47, 100)
+ slider := ui.NewSlider(21, 100)
+ pbar := ui.NewProgressBar()
+
+ spinbox.OnChanged(func(*ui.Spinbox) {
+ slider.SetValue(spinbox.Value())
+ pbar.SetValue(spinbox.Value())
+ })
+ slider.OnChanged(func(*ui.Slider) {
+ spinbox.SetValue(slider.Value())
+ pbar.SetValue(slider.Value())
+ })
+ vbox.Append(spinbox, false)
+ vbox.Append(slider, false)
+ vbox.Append(pbar, false)
+ vbox.Append(hostnameButton("jcarrtest"), false)
+
+ ip := ui.NewProgressBar()
+ ip.SetValue(-1)
+ vbox.Append(ip, false)
+
+ group = ui.NewGroup("Lists")
+ group.SetMargined(true)
+ hbox.Append(group, true)
+
+ vbox = ui.NewVerticalBox()
+ vbox.SetPadded(true)
+ group.SetChild(vbox)
+
+ cbox := ui.NewCombobox()
+ cbox.Append("Combobox Item 1")
+ cbox.Append("Combobox Item 2")
+ cbox.Append("Combobox Item 3")
+ vbox.Append(cbox, false)
+
+ ecbox := ui.NewEditableCombobox()
+ ecbox.Append("Editable Item 1")
+ ecbox.Append("Editable Item 2")
+ ecbox.Append("Editable Item 3")
+ vbox.Append(ecbox, false)
+
+ rb := ui.NewRadioButtons()
+ rb.Append("Radio Button 1")
+ rb.Append("Radio Button 2")
+ rb.Append("Radio Button 3")
+ vbox.Append(rb, false)
+
+ return hbox
+}
+
+func makeDataChoosersPage() ui.Control {
+ hbox := ui.NewHorizontalBox()
+ hbox.SetPadded(true)
+
+ vbox := ui.NewVerticalBox()
+ vbox.SetPadded(true)
+ hbox.Append(vbox, false)
+
+ vbox.Append(ui.NewDatePicker(), false)
+ vbox.Append(ui.NewTimePicker(), false)
+ vbox.Append(ui.NewDateTimePicker(), false)
+ vbox.Append(ui.NewFontButton(), false)
+ vbox.Append(ui.NewColorButton(), false)
+
+ hbox.Append(ui.NewVerticalSeparator(), false)
+
+ vbox = ui.NewVerticalBox()
+ vbox.SetPadded(true)
+ hbox.Append(vbox, true)
+
+ grid := ui.NewGrid()
+ grid.SetPadded(true)
+ vbox.Append(grid, false)
+
+ button := ui.NewButton("Open File")
+ entry := ui.NewEntry()
+ entry.SetReadOnly(true)
+ button.OnClicked(func(*ui.Button) {
+ filename := ui.OpenFile(mainwin)
+ if filename == "" {
+ filename = "(cancelled)"
+ }
+ entry.SetText(filename)
+ })
+ grid.Append(button,
+ 0, 0, 1, 1,
+ false, ui.AlignFill, false, ui.AlignFill)
+ grid.Append(entry,
+ 1, 0, 1, 1,
+ true, ui.AlignFill, false, ui.AlignFill)
+
+ button = ui.NewButton("Save File")
+ entry2 := ui.NewEntry()
+ entry2.SetReadOnly(true)
+ button.OnClicked(func(*ui.Button) {
+ filename := ui.SaveFile(mainwin)
+ if filename == "" {
+ filename = "(cancelled)"
+ }
+ entry2.SetText(filename)
+ })
+ grid.Append(button,
+ 0, 1, 1, 1,
+ false, ui.AlignFill, false, ui.AlignFill)
+ grid.Append(entry2,
+ 1, 1, 1, 1,
+ true, ui.AlignFill, false, ui.AlignFill)
+
+ msggrid := ui.NewGrid()
+ msggrid.SetPadded(true)
+ grid.Append(msggrid,
+ 0, 2, 2, 1,
+ false, ui.AlignCenter, false, ui.AlignStart)
+
+ button = ui.NewButton("Message Box")
+ button.OnClicked(func(*ui.Button) {
+ ui.MsgBox(mainwin,
+ "This is a normal message box.",
+ "More detailed information can be shown here.")
+ })
+ msggrid.Append(button,
+ 0, 0, 1, 1,
+ false, ui.AlignFill, false, ui.AlignFill)
+ button = ui.NewButton("Error Box")
+ button.OnClicked(func(*ui.Button) {
+ ui.MsgBoxError(mainwin,
+ "This message box describes an error.",
+ "More detailed information can be shown here.")
+ })
+ msggrid.Append(button,
+ 1, 0, 1, 1,
+ false, ui.AlignFill, false, ui.AlignFill)
+
+ return hbox
+}
diff --git a/gui.go b/gui.go
index 853bfbd..d16e1ef 100644
--- a/gui.go
+++ b/gui.go
@@ -8,7 +8,7 @@ import "github.com/gookit/config"
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
-import "github.com/davecgh/go-spew/spew"
+// import "github.com/davecgh/go-spew/spew"
var mainwin *ui.Window
var maintab *ui.Tab
@@ -24,199 +24,6 @@ type InputData struct {
Color string
}
-func buttonClick(button *ui.Button) {
- log.Println("hostname =", config.String("hostname"), button)
- spew.Dump(button)
- if (jcarrButton == button) {
- log.Println("This is the jcarrButton")
- cur := jcarrEntry.Text()
- jcarrEntry.SetText(cur + "THIS IS A GREAT IDEA\n")
- } else {
- log.Println("This is NOT the jcarrButton")
- }
-}
-
-func hostnameButton(hostname string) ui.Control {
- tmpbox := ui.NewHorizontalBox()
- tmpbox.SetPadded(true)
-
- tmpButton := ui.NewButton(hostname)
- tmpbox.Append(tmpButton, false)
- tmpButton.OnClicked(buttonClick)
-
- jcarrButton = tmpButton
-
- return tmpbox
-}
-
-func makeGroupEntries() ui.Control {
- group := ui.NewGroup("Entries")
- group.SetMargined(true)
-
- group.SetChild(ui.NewNonWrappingMultilineEntry())
-
- entryForm := ui.NewForm()
- entryForm.SetPadded(true)
- group.SetChild(entryForm)
-
- jcarrEntry = ui.NewMultilineEntry()
- entryForm.Append("Entry", ui.NewEntry(), false)
- entryForm.Append("Password Entry", ui.NewPasswordEntry(), false)
- entryForm.Append("Search Entry", ui.NewSearchEntry(), false)
- entryForm.Append("Multiline Entry", jcarrEntry, true)
- entryForm.Append("Multiline Entry No Wrap", ui.NewNonWrappingMultilineEntry(), true)
-
- return group
-}
-
-func makeNumbersPage() ui.Control {
- hbox := ui.NewHorizontalBox()
- hbox.SetPadded(true)
-
- group := ui.NewGroup("Numbers")
- group.SetMargined(true)
- hbox.Append(group, true)
-
- vbox := ui.NewVerticalBox()
- vbox.SetPadded(true)
- group.SetChild(vbox)
-
- spinbox := ui.NewSpinbox(47, 100)
- slider := ui.NewSlider(21, 100)
- pbar := ui.NewProgressBar()
-
- spinbox.OnChanged(func(*ui.Spinbox) {
- slider.SetValue(spinbox.Value())
- pbar.SetValue(spinbox.Value())
- })
- slider.OnChanged(func(*ui.Slider) {
- spinbox.SetValue(slider.Value())
- pbar.SetValue(slider.Value())
- })
- vbox.Append(spinbox, false)
- vbox.Append(slider, false)
- vbox.Append(pbar, false)
- vbox.Append(hostnameButton("jcarrtest"), false)
-
- ip := ui.NewProgressBar()
- ip.SetValue(-1)
- vbox.Append(ip, false)
-
- group = ui.NewGroup("Lists")
- group.SetMargined(true)
- hbox.Append(group, true)
-
- vbox = ui.NewVerticalBox()
- vbox.SetPadded(true)
- group.SetChild(vbox)
-
- cbox := ui.NewCombobox()
- cbox.Append("Combobox Item 1")
- cbox.Append("Combobox Item 2")
- cbox.Append("Combobox Item 3")
- vbox.Append(cbox, false)
-
- ecbox := ui.NewEditableCombobox()
- ecbox.Append("Editable Item 1")
- ecbox.Append("Editable Item 2")
- ecbox.Append("Editable Item 3")
- vbox.Append(ecbox, false)
-
- rb := ui.NewRadioButtons()
- rb.Append("Radio Button 1")
- rb.Append("Radio Button 2")
- rb.Append("Radio Button 3")
- vbox.Append(rb, false)
-
- return hbox
-}
-
-func makeDataChoosersPage() ui.Control {
- hbox := ui.NewHorizontalBox()
- hbox.SetPadded(true)
-
- vbox := ui.NewVerticalBox()
- vbox.SetPadded(true)
- hbox.Append(vbox, false)
-
- vbox.Append(ui.NewDatePicker(), false)
- vbox.Append(ui.NewTimePicker(), false)
- vbox.Append(ui.NewDateTimePicker(), false)
- vbox.Append(ui.NewFontButton(), false)
- vbox.Append(ui.NewColorButton(), false)
-
- hbox.Append(ui.NewVerticalSeparator(), false)
-
- vbox = ui.NewVerticalBox()
- vbox.SetPadded(true)
- hbox.Append(vbox, true)
-
- grid := ui.NewGrid()
- grid.SetPadded(true)
- vbox.Append(grid, false)
-
- button := ui.NewButton("Open File")
- entry := ui.NewEntry()
- entry.SetReadOnly(true)
- button.OnClicked(func(*ui.Button) {
- filename := ui.OpenFile(mainwin)
- if filename == "" {
- filename = "(cancelled)"
- }
- entry.SetText(filename)
- })
- grid.Append(button,
- 0, 0, 1, 1,
- false, ui.AlignFill, false, ui.AlignFill)
- grid.Append(entry,
- 1, 0, 1, 1,
- true, ui.AlignFill, false, ui.AlignFill)
-
- button = ui.NewButton("Save File")
- entry2 := ui.NewEntry()
- entry2.SetReadOnly(true)
- button.OnClicked(func(*ui.Button) {
- filename := ui.SaveFile(mainwin)
- if filename == "" {
- filename = "(cancelled)"
- }
- entry2.SetText(filename)
- })
- grid.Append(button,
- 0, 1, 1, 1,
- false, ui.AlignFill, false, ui.AlignFill)
- grid.Append(entry2,
- 1, 1, 1, 1,
- true, ui.AlignFill, false, ui.AlignFill)
-
- msggrid := ui.NewGrid()
- msggrid.SetPadded(true)
- grid.Append(msggrid,
- 0, 2, 2, 1,
- false, ui.AlignCenter, false, ui.AlignStart)
-
- button = ui.NewButton("Message Box")
- button.OnClicked(func(*ui.Button) {
- ui.MsgBox(mainwin,
- "This is a normal message box.",
- "More detailed information can be shown here.")
- })
- msggrid.Append(button,
- 0, 0, 1, 1,
- false, ui.AlignFill, false, ui.AlignFill)
- button = ui.NewButton("Error Box")
- button.OnClicked(func(*ui.Button) {
- ui.MsgBoxError(mainwin,
- "This message box describes an error.",
- "More detailed information can be shown here.")
- })
- msggrid.Append(button,
- 1, 0, 1, 1,
- false, ui.AlignFill, false, ui.AlignFill)
-
- return hbox
-}
-
func setupUI() {
mainwin = ui.NewWindow("Cloud Control Panel", config.Int("width"), config.Int("height"), false)
mainwin.OnClosing(func(*ui.Window) bool {