// +build windows,!linux package sshtunnel import ( "github.com/lxn/walk" . "github.com/lxn/walk/declarative" ) type PasswordForm struct { Credentials *Credentials } func NewPasswordForm() *PasswordForm { return &PasswordForm{} } func (p *PasswordForm) Show() { var mainWindow *walk.MainWindow var usernameLE, passwordLE *walk.LineEdit p.Credentials = &Credentials{Username: "Test"} MainWindow{ AssignTo: &mainWindow, Title: "UNR College of Engineering Tunneling", MinSize: Size{250, 150}, MaxSize: Size{250, 150}, Size: Size{255, 150}, Layout: VBox{}, Children: []Widget{ Label{Text: "Connecting to License Servers"}, HSplitter{ Children: []Widget{ Label{Text: "Username"}, LineEdit{AssignTo: &usernameLE}, }, }, HSplitter{ Children: []Widget{ Label{Text: "Password"}, LineEdit{PasswordMode: true, AssignTo: &passwordLE, OnKeyDown: func(key walk.Key) { if key == walk.KeyReturn { p.Credentials.Username = usernameLE.Text() p.Credentials.Password = passwordLE.Text() mainWindow.Close() } }, }, }, }, PushButton{ Text: "Login", OnClicked: func() { p.Credentials.Username = usernameLE.Text() p.Credentials.Password = passwordLE.Text() mainWindow.Close() }, }, PushButton{ Text: "Cancel", OnClicked: func() { mainWindow.Close() }, }, }, }.Run() }