diff options
| author | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-07-22 13:16:48 +0300 |
|---|---|---|
| committer | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-07-22 13:16:48 +0300 |
| commit | ffc2c1273183b488de9cc4fc282379c2a042bd6d (patch) | |
| tree | 96be6929f43e8032976f976a991f9c56ae7cb971 /go-src/ui | |
| parent | 1f15111c6e44ea7e855fadc187a19234640e161c (diff) | |
| download | ctfc-ffc2c1273183b488de9cc4fc282379c2a042bd6d.tar ctfc-ffc2c1273183b488de9cc4fc282379c2a042bd6d.tar.gz ctfc-ffc2c1273183b488de9cc4fc282379c2a042bd6d.zip | |
Improved printing multiple fields workflow, implemented routine pagination in chats window, implemented routine pagination supoprt for help line
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) + } +} |
