diff options
Diffstat (limited to 'go-src/ui')
| -rw-r--r-- | go-src/ui/ui.go | 45 |
1 files changed, 34 insertions, 11 deletions
diff --git a/go-src/ui/ui.go b/go-src/ui/ui.go index bf684f0..976a349 100644 --- a/go-src/ui/ui.go +++ b/go-src/ui/ui.go @@ -6,6 +6,7 @@ import ( "os" "strings" + "gitlab.com/Syndamia/ctfc/go-src/csi" "gitlab.com/Syndamia/ctfc/go-src/utils" ) @@ -34,6 +35,7 @@ const ( textRune = '%' inputRune = '@' + noRune = ' ' ) var scanner = bufio.NewScanner(os.Stdin) @@ -103,6 +105,10 @@ func TextField(message string) { fmt.Printf("%c%c %v\n", boxVertRightLine, textRune, message) } +func TextFields(messsages ...string) { + printMultiple(textRune, messsages...) +} + func InputField(specification string) string { fmt.Printf("%c%c %v : ", boxBottomLeftCorner, inputRune, specification) scanner.Scan() @@ -113,18 +119,12 @@ func InputFieldFilled(specification string, input string) { fmt.Printf("%c%c %v : %v\n", boxVertRightLine, inputRune, specification, input) } +func NumberedField(message string, number int) { + fmt.Printf("%c%v %v\n", boxVertRightLine, number, message) +} + func NumberedFields(messages ...string) { - if len(messages) == 0 { - return - } - var result string - for i, v := range messages { - result += fmt.Sprintf("%c%v %v", boxVertRightLine, i+1, v) - if i < len(messages)-1 { - result += "\n" - } - } - fmt.Println(result) + printMultiple(noRune, messages...) } func PageField(current int, max int) { @@ -134,3 +134,26 @@ func PageField(current int, max int) { func EmptyLine() { fmt.Println(string(boxVertLine)) } + +func EmptyLines(amount int) { + for i := 0; i < amount; i++ { + EmptyLine() + } +} + +func printMultiple(secondRune rune, messages ...string) { + if len(messages) == 0 { + return + } + + secondString := string(secondRune) + + for i, v := range messages { + csi.ClearLine() + + if secondRune == noRune { + secondString = fmt.Sprint(i + 1) + } + fmt.Printf("%c%v %v\n", boxVertRightLine, secondString, v) + } +} |
