Skip to content

Instantly share code, notes, and snippets.

@eikaas
Created July 3, 2015 07:33
Show Gist options
  • Save eikaas/4a8f7509a3d6d92684f0 to your computer and use it in GitHub Desktop.
Save eikaas/4a8f7509a3d6d92684f0 to your computer and use it in GitHub Desktop.
gui-crash-on-resize
package main
import "github.com/andlabs/ui"
import "log"
import "reflect"
func main() {
go ui.Do(initGUI)
err := ui.Go()
if err != nil {
log.Println(err)
}
}
type Server struct {
Name string
IP string
Description string
OS string
}
func initGUI() {
var servers []Server
servers = append(servers, Server{Name: "gw.test.no", IP: "29.2.3.1", Description: "gwl", OS: "Linux CentOS"})
servers = append(servers, Server{Name: "weba.test.no", IP: "29.2.3.2", Description: "web a", OS: "Linux CentOS"})
servers = append(servers, Server{Name: "derp.test.no", IP: "29.2.3.3", Description: "web b", OS: "Testa testa"})
servers = append(servers, Server{Name: "test.test.no", IP: "29.2.3.4", Description: "web c", OS: "Test tester"})
servers = append(servers, Server{Name: "sqla.test.no", IP: "29.2.3.5", Description: "SQL A", OS: "Wintendo"})
servers = append(servers, Server{Name: "sqlb.test.no", IP: "29.2.3.6", Description: "SQL B", OS: "asdfghwqwe"})
header := ui.NewLabel("Webhuset Drift Servers")
connectButton := ui.NewButton("Connect")
connectButton.OnClicked(func() {
log.Println("Connect button clicked")
})
exitButton := ui.NewButton("Quit")
exitButton.OnClicked(func() {
log.Println("Exit button clicked")
})
editButton := ui.NewButton("Edit")
editButton.OnClicked(func() {
log.Println("Edit button clicked")
})
addButton := ui.NewButton("Create")
addButton.OnClicked(func() {
log.Println("Add button clicked")
})
deleteButton := ui.NewButton("Delete")
deleteButton.OnClicked(func() {
log.Println("Delete button clicked")
})
table := ui.NewTable(reflect.TypeOf(servers[0]))
log.Println(reflect.TypeOf(servers[0]))
table.Lock()
d := table.Data().(*[]Server)
*d = servers
table.Unlock()
brow1 := ui.NewHorizontalStack(connectButton)
brow1.SetStretchy(0)
brow2 := ui.NewHorizontalStack(editButton, addButton)
brow2.SetStretchy(0)
brow2.SetStretchy(1)
brow3 := ui.NewHorizontalStack(deleteButton, exitButton)
brow3.SetStretchy(0)
brow3.SetStretchy(1)
stack := ui.NewVerticalStack(header, table, brow1, brow2, brow3)
stack.SetStretchy(1)
window := ui.NewWindow("Tendo", 300, 600, stack)
window.OnClosing(func() bool {
ui.Stop()
return true
})
window.Show()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment