func WelcomeFrame() gtk.IWidget { page := gtk.NewFrame("Welcome") vbox := gtk.NewHBox(false, 1) table := gtk.NewTable(4, 1, true) txtMessage := gtk.NewLabel("We need some info!") table.Attach(txtMessage, 1, 2, 0, 1, gtk.FILL, gtk.FILL, 0, 0) txtEmail := gtk.NewEntry() txtEmail.SetEditable(true) // table.Attach: Left, right, top, bottom table.Attach(gtk.NewLabel("Email Address"), 1, 2, 2, 3, gtk.FILL, gtk.FILL, 0, 0) table.Attach(txtEmail, 1, 2, 3, 4, gtk.FILL, gtk.FILL, 5, 0) txtPassword := gtk.NewEntry() txtPassword.SetEditable(true) table.Attach(gtk.NewLabel("Password"), 1, 2, 4, 5, gtk.FILL, gtk.FILL, 0, 0) table.Attach(txtPassword, 1, 2, 5, 6, gtk.FILL, gtk.FILL, 5, 0) button := gtk.NewButtonWithLabel("Go!") button.Clicked(func() { if validator.ValidateEmailAddress(txtEmail.GetText()) { if keygen.Generate() { txtMessage.SetText("Success! :)") } else { txtMessage.SetText("No Dice. :(") logger.Log("Failed to generate keys.") } } else { txtMessage.SetText("Invalid E-mail Address.") } }) table.Attach(button, 1, 2, 7, 8, gtk.FILL, gtk.FILL, 5, 0) vbox.Add(table) page.Add(vbox) if r := recover(); r != nil { logger.Log("Recovered in welcomeframe.go") } return page }
func SettingsFrame() gtk.IWidget { page := gtk.NewFrame("Settings") vbox := gtk.NewHBox(false, 1) table := gtk.NewTable(2, 2, true) for i := uint(0); i < 3; i++ { label := gtk.NewLabel("Setting Name:") table.Attach(label, 0, 1, i, i+1, gtk.FILL, gtk.FILL, 5, 5) } for i := uint(0); i < 3; i++ { button := gtk.NewButtonWithLabel("Button") button.Clicked(func() { // Do stuff. }) table.Attach(button, 1, 2, i, i+1, gtk.FILL, gtk.FILL, 5, 5) } vbox.Add(table) page.Add(vbox) return page }
func BuildForm() { gtk.Init(&os.Args) window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL) window.SetTitle("EnCloud - Cloud Encryption") window.Connect("destroy", gtk.MainQuit) notebook := gtk.NewNotebook() notebook.AppendPage(WelcomeFrame(), gtk.NewLabel("Welcome")) notebook.AppendPage(SettingsFrame(), gtk.NewLabel("Settings")) window.Add(notebook) window.SetSizeRequest(500, 350) window.ShowAll() gtk.Main() }