mirror of
https://github.com/br0xen/termbox-util.git
synced 2024-11-25 23:03:13 +00:00
Linted termbox_util.go
This commit is contained in:
parent
2dd65ed8b8
commit
3b810d6387
@ -1,4 +1,4 @@
|
||||
package termbox_util
|
||||
package termboxUtil
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
@ -7,24 +7,31 @@ import (
|
||||
"github.com/nsf/termbox-go"
|
||||
)
|
||||
|
||||
// TextAlignment is an int value for how we're aligning text
|
||||
type TextAlignment int
|
||||
|
||||
const (
|
||||
ALIGN_LEFT = iota
|
||||
ALIGN_CENTER
|
||||
ALIGN_RIGHT
|
||||
// AlignLeft Aligns text to the left
|
||||
AlignLeft = iota
|
||||
// AlignCenter Aligns text to the center
|
||||
AlignCenter
|
||||
// AlignRight Aligns text to the right
|
||||
AlignRight
|
||||
)
|
||||
|
||||
/* Basic Output Helpers */
|
||||
|
||||
// DrawStringAtPoint Draw a string of text at x, y with foreground color fg, background color bg
|
||||
func DrawStringAtPoint(str string, x int, y int, fg termbox.Attribute, bg termbox.Attribute) (int, int) {
|
||||
x_pos := x
|
||||
xPos := x
|
||||
for _, runeValue := range str {
|
||||
termbox.SetCell(x_pos, y, runeValue, fg, bg)
|
||||
x_pos++
|
||||
termbox.SetCell(xPos, y, runeValue, fg, bg)
|
||||
xPos++
|
||||
}
|
||||
return x_pos, y
|
||||
return xPos, y
|
||||
}
|
||||
|
||||
// FillWithChar Fills from x1,y1 through x2,y2 with the rune r, foreground color fg, background bg
|
||||
func FillWithChar(r rune, x1, y1, x2, y2 int, fg termbox.Attribute, bg termbox.Attribute) {
|
||||
for xx := x1; xx <= x2; xx++ {
|
||||
for yx := y1; yx <= y2; yx++ {
|
||||
@ -33,6 +40,7 @@ func FillWithChar(r rune, x1, y1, x2, y2 int, fg termbox.Attribute, bg termbox.A
|
||||
}
|
||||
}
|
||||
|
||||
// DrawBorder Draw a border around the area inside x1,y1 -> x2, y2
|
||||
func DrawBorder(x1, y1, x2, y2 int, fg termbox.Attribute, bg termbox.Attribute) {
|
||||
termbox.SetCell(x1, y1, '┌', fg, bg)
|
||||
FillWithChar('─', x1+1, y1, x2-1, y1, fg, bg)
|
||||
@ -46,22 +54,22 @@ func DrawBorder(x1, y1, x2, y2 int, fg termbox.Attribute, bg termbox.Attribute)
|
||||
termbox.SetCell(x2, y2, '┘', fg, bg)
|
||||
}
|
||||
|
||||
// AlignText Aligns the text txt within width characters using the specified alignment
|
||||
func AlignText(txt string, width int, align TextAlignment) string {
|
||||
num_spaces := width - len(txt)
|
||||
numSpaces := width - len(txt)
|
||||
switch align {
|
||||
case ALIGN_CENTER:
|
||||
if num_spaces/2 > 0 {
|
||||
case AlignCenter:
|
||||
if numSpaces/2 > 0 {
|
||||
return fmt.Sprintf("%s%s%s",
|
||||
strings.Repeat(" ", num_spaces/2),
|
||||
txt, strings.Repeat(" ", num_spaces/2),
|
||||
strings.Repeat(" ", numSpaces/2),
|
||||
txt, strings.Repeat(" ", numSpaces/2),
|
||||
)
|
||||
} else {
|
||||
return txt
|
||||
}
|
||||
case ALIGN_RIGHT:
|
||||
return fmt.Sprintf("%s%s", strings.Repeat(" ", num_spaces), txt)
|
||||
return txt
|
||||
case AlignRight:
|
||||
return fmt.Sprintf("%s%s", strings.Repeat(" ", numSpaces), txt)
|
||||
default:
|
||||
return fmt.Sprintf("%s%s", txt, strings.Repeat(" ", num_spaces))
|
||||
return fmt.Sprintf("%s%s", txt, strings.Repeat(" ", numSpaces))
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user