package windows import ( "fmt" "os" "os/exec" "runtime" "strings" "gitlab.com/Syndamia/ctfc/go-src/ui" ) func StartupWindow() { clearScreen() fmt.Println(ui.NormalBox(true, "Login", "Register")) fmt.Print(ui.InputField("[L/R]")) command := strings.ToLower(ui.GetInput()) if command == "l" { defer LoginWindow() } else if command == "r" { defer RegisterWindow() } else { ShowError(invalidCommand) defer StartupWindow() } } func LoginWindow(values ...string) { clearScreen() fmt.Println(ui.NormalBox(true, "Login")) switch len(values) { case 0: fmt.Print(ui.InputField("Username")) case 1: fmt.Println(ui.InputFieldFilled("Username", values[0])) fmt.Print(ui.InputField("Password")) } val := ui.GetInput() switch len(values) { case 0: defer LoginWindow(val) case 1: fmt.Println(values[0], val) } } func RegisterWindow(values ...string) { clearScreen() fmt.Println(ui.NormalBox(true, "Register")) switch len(values) { case 0: fmt.Print(ui.InputField("Username")) case 1: fmt.Println(ui.InputFieldFilled("Username", values[0])) fmt.Print(ui.InputField("Password")) case 2: fmt.Println(ui.InputFieldFilled("Username", values[0])) fmt.Println(ui.InputFieldFilled("Password", values[1])) fmt.Print(ui.InputField("Name")) } val := ui.GetInput() switch len(values) { case 0: defer RegisterWindow(val) case 1: defer RegisterWindow(values[0], val) case 2: fmt.Println(values, val) } } var clearNext = true func ShowError(message string) { clearScreen() fmt.Println(ui.ErrorBox(message)) clearNext = false } func clearScreen() { if !clearNext { clearNext = true return } if runtime.GOOS == "windows" { cmd := exec.Command("cmd", "/c", "cls") cmd.Stdout = os.Stdout cmd.Run() } else { fmt.Println("\033[2J") } }