コード例 #1
0
ファイル: curses.go プロジェクト: infokiller/fzf
func Init(theme *ColorTheme, black bool, mouse bool) {
	{
		in, err := os.OpenFile("/dev/tty", syscall.O_RDONLY, 0)
		if err != nil {
			panic("Failed to open /dev/tty")
		}
		_in = in
		// Break STDIN
		// syscall.Dup2(int(in.Fd()), int(os.Stdin.Fd()))
	}

	C.setlocale(C.LC_ALL, C.CString(""))
	_screen = C.c_newterm()
	if _screen == nil {
		fmt.Println("Invalid $TERM: " + os.Getenv("TERM"))
		os.Exit(2)
	}
	C.set_term(_screen)
	if mouse {
		C.mousemask(C.ALL_MOUSE_EVENTS, nil)
	}
	C.noecho()
	C.raw() // stty dsusp undef

	if theme != nil {
		C.start_color()
		var baseTheme *ColorTheme
		if C.tigetnum(C.CString("colors")) >= 256 {
			baseTheme = Dark256
		} else {
			baseTheme = Default16
		}
		initPairs(baseTheme, theme, black)
		_color = attrColored
	} else {
		_color = attrMono
	}
}
コード例 #2
0
ファイル: ncurses.go プロジェクト: junegunn/fzf
func (r *FullscreenRenderer) defaultTheme() *ColorTheme {
	if C.tigetnum(C.CString("colors")) >= 256 {
		return Dark256
	}
	return Default16
}
コード例 #3
0
ファイル: mkinfo.go プロジェクト: gdamore/tcell
func tigetnum(s string) int {
	n := C.tigetnum(C.CString(s))
	return int(n)
}
コード例 #4
0
ファイル: ncurses.go プロジェクト: robertmeta/vimfiles
func DefaultTheme() *ColorTheme {
	if C.tigetnum(C.CString("colors")) >= 256 {
		return Dark256
	}
	return Default16
}