当前位置: 首页>>代码示例>>Golang>>正文


Golang tcell.Screen类代码示例

本文整理汇总了Golang中github.com/gdamore/tcell.Screen的典型用法代码示例。如果您正苦于以下问题:Golang Screen类的具体用法?Golang Screen怎么用?Golang Screen使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Screen类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: 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() > 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()
}
开发者ID:gitter-badger,项目名称:tcell,代码行数:29,代码来源:boxes.go

示例2: 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)
		}
	}
}
开发者ID:gitter-badger,项目名称:tcell,代码行数:29,代码来源:mouse.go

示例3: emitStr

func emitStr(s tcell.Screen, x, y int, style tcell.Style, str string) {
	for _, c := range str {
		var comb []rune
		w := runewidth.RuneWidth(c)
		if w == 0 {
			comb = []rune{c}
			c = ' '
			w = 1
		}
		s.SetContent(x, y, c, comb, style)
		x += w
	}
}
开发者ID:jmptrader,项目名称:tcell,代码行数:13,代码来源:mouse.go

示例4: drawSelect

func drawSelect(s tcell.Screen, x1, y1, x2, y2 int, sel bool) {

	if y2 < y1 {
		y1, y2 = y2, y1
	}
	if x2 < x1 {
		x1, x2 = x2, x1
	}
	for row := y1; row <= y2; row++ {
		for col := x1; col <= x2; col++ {
			mainc, combc, style, width := s.GetContent(col, row)
			if style == tcell.StyleDefault {
				style = defStyle
			}
			style = style.Reverse(sel)
			s.SetContent(col, row, mainc, combc, style)
			col += width - 1
		}
	}
}
开发者ID:jmptrader,项目名称:tcell,代码行数:20,代码来源:mouse.go

示例5: 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.SetContent(x+i, y, deferred[0], deferred[1:], style)
				i += dwidth
			}
			deferred = nil
			dwidth = 1
		case 2:
			if len(deferred) != 0 {
				s.SetContent(x+i, y, deferred[0], deferred[1:], style)
				i += dwidth
			}
			deferred = nil
			dwidth = 2
		}
		deferred = append(deferred, r)
	}
	if len(deferred) != 0 {
		s.SetContent(x+i, y, deferred[0], deferred[1:], style)
		i += dwidth
	}
}
开发者ID:jmptrader,项目名称:tcell,代码行数:33,代码来源:unicode.go

示例6: 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
	}
}
开发者ID:gitter-badger,项目名称:tcell,代码行数:33,代码来源:unicode.go

示例7: drawSelect

func drawSelect(s tcell.Screen, x1, y1, x2, y2 int, sel bool) {

	if y2 < y1 {
		y1, y2 = y2, y1
	}
	if x2 < x1 {
		x1, x2 = x2, x1
	}
	for row := y1; row <= y2; row++ {
		for col := x1; col <= x2; col++ {
			if cp := s.GetCell(col, row); cp != nil {
				st := cp.Style
				if st == tcell.StyleDefault {
					st = defStyle
				}
				st = st.Reverse(sel)
				cp.Style = st
				s.PutCell(col, row, cp)
			}
		}
	}
}
开发者ID:gitter-badger,项目名称:tcell,代码行数:22,代码来源:mouse.go

示例8: 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++
	}
}
开发者ID:gitter-badger,项目名称:tcell,代码行数:6,代码来源:mouse.go

示例9: RegisterFallbacks

// RegisterFallbacks registers the UTF-8 runes we use in this game with
// reasonable (best effort) ASCII fallbacks.
func RegisterFallbacks(screen tcell.Screen) {
	// Register a few fallback runes - best we can do for ASCII
	screen.RegisterRuneFallback('Ξ', "M")
	screen.RegisterRuneFallback('Ѧ', "A")
	screen.RegisterRuneFallback('Ж', "X")
	screen.RegisterRuneFallback('▖', "\\")
	screen.RegisterRuneFallback('▗', "/")
	screen.RegisterRuneFallback('▟', "/")
	screen.RegisterRuneFallback('▛', "/")
	screen.RegisterRuneFallback('▙', "\\")
	screen.RegisterRuneFallback('▜', "\\")
	screen.RegisterRuneFallback('˄', "^")
	screen.RegisterRuneFallback('˃', ">")
	screen.RegisterRuneFallback('˂', "<")
	screen.RegisterRuneFallback('˅', "v")
	screen.RegisterRuneFallback('♥', "A")
	screen.RegisterRuneFallback('─', "-")
	screen.RegisterRuneFallback('━', "-")
	screen.RegisterRuneFallback('═', "=")
	screen.RegisterRuneFallback('⁐', "O")
	screen.RegisterRuneFallback('•', "*")

}
开发者ID:gdamore,项目名称:proxima5,代码行数:25,代码来源:runes.go


注:本文中的github.com/gdamore/tcell.Screen类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。