move sample code into appropriate files
Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
b92903ad15
commit
27b26ea5b7
|
@ -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()
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
195
gui.go
195
gui.go
|
@ -8,7 +8,7 @@ import "github.com/gookit/config"
|
||||||
import "github.com/andlabs/ui"
|
import "github.com/andlabs/ui"
|
||||||
import _ "github.com/andlabs/ui/winmanifest"
|
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 mainwin *ui.Window
|
||||||
var maintab *ui.Tab
|
var maintab *ui.Tab
|
||||||
|
@ -24,199 +24,6 @@ type InputData struct {
|
||||||
Color string
|
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() {
|
func setupUI() {
|
||||||
mainwin = ui.NewWindow("Cloud Control Panel", config.Int("width"), config.Int("height"), false)
|
mainwin = ui.NewWindow("Cloud Control Panel", config.Int("width"), config.Int("height"), false)
|
||||||
mainwin.OnClosing(func(*ui.Window) bool {
|
mainwin.OnClosing(func(*ui.Window) bool {
|
||||||
|
|
Loading…
Reference in New Issue