-
Notifications
You must be signed in to change notification settings - Fork 346
/
console_interface.go
91 lines (73 loc) · 1.19 KB
/
console_interface.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package prompt
type WinSize struct {
Row uint16
Col uint16
}
type Color int
const (
DefaultColor Color = iota
// Low intensity
Black
DarkRed
DarkGreen
Brown
DarkBlue
Purple
Cyan
LightGray
// High intensity
DarkGray
Red
Green
Yellow
Blue
Fuchsia
Turquoise
White
)
type ConsoleParser interface {
// Setup
Setup() error
// TearDown
TearDown() error
// GetSCIICode returns ASCIICode correspond to input byte codes.
GetKey(b []byte) Key
// GetWinSize returns winsize struct which is the response of ioctl(2).
GetWinSize() *WinSize
// Read returns byte array.
Read() ([]byte, error)
}
type ConsoleWriter interface {
/* Write */
WriteRaw(data []byte)
Write(data []byte)
WriteStr(data string)
WriteRawStr(data string)
Flush() error
/* Erasing */
EraseScreen()
EraseUp()
EraseDown()
EraseStartOfLine()
EraseEndOfLine()
EraseLine()
/* Cursor */
ShowCursor()
HideCursor()
CursorGoTo(row, col int)
CursorUp(n int)
CursorDown(n int)
CursorForward(n int)
CursorBackward(n int)
AskForCPR()
SaveCursor()
UnSaveCursor()
/* Scrolling */
ScrollDown()
ScrollUp()
/* Title */
SetTitle(title string)
ClearTitle()
/* Font */
SetColor(fg, bg Color, bold bool)
}