diff options
| author | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-07-05 09:07:32 +0300 |
|---|---|---|
| committer | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-07-05 09:07:32 +0300 |
| commit | e68bf6185aef85aae52cd2d9a86a9d8b241623e4 (patch) | |
| tree | 6d38b0e90847345fc522a049d5cba93958a2bb75 /go-src/ui.go | |
| parent | d4f404e53fb0ab37ec0ffa95d69902410bfe0368 (diff) | |
| download | ctfc-e68bf6185aef85aae52cd2d9a86a9d8b241623e4.tar ctfc-e68bf6185aef85aae52cd2d9a86a9d8b241623e4.tar.gz ctfc-e68bf6185aef85aae52cd2d9a86a9d8b241623e4.zip | |
Implemented text, input and numbered fields and improved structure
Diffstat (limited to 'go-src/ui.go')
| -rw-r--r-- | go-src/ui.go | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/go-src/ui.go b/go-src/ui.go deleted file mode 100644 index 77c6f90..0000000 --- a/go-src/ui.go +++ /dev/null @@ -1,88 +0,0 @@ -package main - -import ( - "fmt" - "strings" -) - -const ( - boxErrHorLine = '═' - boxErrHorDownLine = '╦' - boxErrHorUpLine = '╩' - boxErrVertLine = '║' - boxErrVertRightLine = '╠' - boxErrVertLeftLine = '╣' - boxErrTopLeftCorner = '╔' - boxErrTopRightCorner = '╗' - boxErrBottomLeftCorner = '╚' - boxErrBottomRightCorner = '╝' - - boxHorLine = '─' - boxHorDownLine = '┬' - boxHorUpLine = '┴' - boxVertLine = '│' - boxVertRightLine = '├' - boxVertLeftLine = '┤' - boxTopLeftCorner = '┌' - boxTopRightCorner = '┐' - boxBottomLeftCorner = '└' - boxBottomRightCorner = '┘' -) - -// Returns an error box -func errorBox(message string) (box string) { - // 2+len because message length doesn't accomodate the spaces between the left and right border - box += fmt.Sprintf("%c%v%c\n", boxErrTopLeftCorner, repeatRune(boxErrHorLine, 2+len(message)), boxErrTopRightCorner) - box += fmt.Sprintf("%c %v %c\n", boxErrVertLine, message, boxErrVertLine) - box += fmt.Sprintf("%c%v%c\n", boxErrBottomLeftCorner, repeatRune(boxErrHorLine, 2+len(message)), boxErrBottomRightCorner) - return -} - -// Returns a normal box, most commonly used for the menu items -func normalBox(railed bool, messages ...string) (box string) { - message := strings.Join(messages, " │ ") - var messagesLengths []int - - for i := 0; i < len(messages)-1; i++ { - messagesLengths = append(messagesLengths, len(messages[i])) - } - - /* The message is the middle part between the left and right border, - so you have to add 2 for the spaces between it and the borders. - Since each "│" character adds 3 to the length (and not 1), - get the amount of "│" character from number of messages, double the value - and finally subtract (so, "││" is len 6, 2 "│" characters * 2 = 4, 6 - 4 = 2). - */ - messageLength := 2 + len(message) - 2*(len(messages)-1) - - box += fmt.Sprintf("%c%v%c\n", boxTopLeftCorner, repeatRune(boxHorLine, messageLength), boxTopRightCorner) - box += fmt.Sprintf("%c %v %c\n", boxVertLine, message, boxVertLine) - box += fmt.Sprintf("%c%v%c\n", boxBottomLeftCorner, repeatRune(boxHorLine, messageLength), boxBottomRightCorner) - - indTop := 0 - /* messageLength doesn't include the left and right spaces that are in middle part - and on each line there are \n characters (hence adding 2 at the end). - With this variable, we're practically at index 0 on the third line. - */ - indBot := 2*(messageLength+2) + 2 - - if railed { - box = replaceAtIndex(box, boxVertRightLine, indBot) - } - - for _, val := range messagesLengths { - /* +1 Because message length doesn't include the " " in the beginning - +2 because we're now at the index of the last letter, and need to go to - the right border index - And that in total means we add 3 to length - */ - indTop += val + 3 - indBot += val + 3 - - // Replaces the border character on the top with one that connects to the middle border: ┌───────────┬───────────┐ - box = replaceAtIndex(box, boxHorDownLine, indTop) - // Replaces the border character on the bottom with one that connects to the middle broder: └───────────┴───────────┘ - box = replaceAtIndex(box, boxHorUpLine, indBot) - } - return -} |
