forked from toolshed/abra
		
	
		
			
				
	
	
		
			40 lines
		
	
	
		
			959 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			959 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package terminal
 | |
| 
 | |
| import (
 | |
| 	"syscall"
 | |
| )
 | |
| 
 | |
| var (
 | |
| 	kernel32                       = syscall.NewLazyDLL("kernel32.dll")
 | |
| 	procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo")
 | |
| 	procSetConsoleTextAttribute    = kernel32.NewProc("SetConsoleTextAttribute")
 | |
| 	procSetConsoleCursorPosition   = kernel32.NewProc("SetConsoleCursorPosition")
 | |
| 	procFillConsoleOutputCharacter = kernel32.NewProc("FillConsoleOutputCharacterW")
 | |
| 	procGetConsoleCursorInfo       = kernel32.NewProc("GetConsoleCursorInfo")
 | |
| 	procSetConsoleCursorInfo       = kernel32.NewProc("SetConsoleCursorInfo")
 | |
| )
 | |
| 
 | |
| type wchar uint16
 | |
| type dword uint32
 | |
| type word uint16
 | |
| 
 | |
| type smallRect struct {
 | |
| 	left   Short
 | |
| 	top    Short
 | |
| 	right  Short
 | |
| 	bottom Short
 | |
| }
 | |
| 
 | |
| type consoleScreenBufferInfo struct {
 | |
| 	size              Coord
 | |
| 	cursorPosition    Coord
 | |
| 	attributes        word
 | |
| 	window            smallRect
 | |
| 	maximumWindowSize Coord
 | |
| }
 | |
| 
 | |
| type consoleCursorInfo struct {
 | |
| 	size    dword
 | |
| 	visible int32
 | |
| }
 |