本文整理汇总了Golang中github.com/gdamore/tcell.Screen.SetCell方法的典型用法代码示例。如果您正苦于以下问题:Golang Screen.SetCell方法的具体用法?Golang Screen.SetCell怎么用?Golang Screen.SetCell使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/gdamore/tcell.Screen
的用法示例。
在下文中一共展示了Screen.SetCell方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: drawBox
func drawBox(s tcell.Screen, x1, y1, x2, y2 int, style tcell.Style, r rune) {
if y2 < y1 {
y1, y2 = y2, y1
}
if x2 < x1 {
x1, x2 = x2, x1
}
for col := x1; col <= x2; col++ {
s.SetCell(col, y1, style, tcell.RuneHLine)
s.SetCell(col, y2, style, tcell.RuneHLine)
}
for row := y1 + 1; row < y2; row++ {
s.SetCell(x1, row, style, tcell.RuneVLine)
s.SetCell(x2, row, style, tcell.RuneVLine)
}
if y1 != y2 && x1 != x2 {
// Only add corners if we need to
s.SetCell(x1, y1, style, tcell.RuneULCorner)
s.SetCell(x2, y1, style, tcell.RuneURCorner)
s.SetCell(x1, y2, style, tcell.RuneLLCorner)
s.SetCell(x2, y2, style, tcell.RuneLRCorner)
}
for row := y1 + 1; row < y2; row++ {
for col := x1 + 1; col < x2; col++ {
s.SetCell(col, row, style, r)
}
}
}
示例2: makebox
func makebox(s tcell.Screen) {
w, h := s.Size()
if w == 0 || h == 0 {
return
}
glyphs := []rune{'@', '#', '&', '*', '=', '%', 'Z', 'A'}
lx := rand.Int() % w
ly := rand.Int() % h
lw := rand.Int() % (w - lx)
lh := rand.Int() % (h - ly)
st := tcell.StyleDefault
gl := ' '
if s.Colors() > 256 {
rgb := tcell.NewHexColor(int32(rand.Int() & 0xffffff))
st = st.Background(rgb)
} else if s.Colors() > 1 {
st = st.Background(tcell.Color(rand.Int() % s.Colors()))
} else {
st = st.Reverse(rand.Int()%2 == 0)
gl = glyphs[rand.Int()%len(glyphs)]
}
for row := 0; row < lh; row++ {
for col := 0; col < lw; col++ {
s.SetCell(lx+col, ly+row, st, gl)
}
}
s.Show()
}
示例3: Puts
func Puts(s tcell.Screen, style tcell.Style, x, y int, str string) {
i := 0
var deferred []rune
dwidth := 0
for _, r := range str {
switch runewidth.RuneWidth(r) {
case 0:
if len(deferred) == 0 {
deferred = append(deferred, ' ')
dwidth = 1
}
case 1:
if len(deferred) != 0 {
s.SetCell(x+i, y, style, deferred...)
i += dwidth
}
deferred = deferred[0:0]
dwidth = 1
case 2:
if len(deferred) != 0 {
s.SetCell(x+i, y, style, deferred...)
i += dwidth
}
deferred = deferred[0:0]
dwidth = 2
}
deferred = append(deferred, r)
}
if len(deferred) != 0 {
s.SetCell(x+i, y, style, deferred...)
i += dwidth
}
}
示例4: emitStr
func emitStr(s tcell.Screen, x, y int, style tcell.Style, str string) {
for _, c := range str {
s.SetCell(x, y, style, c)
x++
}
}