2013-12-28 04:36:26 +08:00
|
|
|
package gocui
|
|
|
|
|
|
|
|
import (
|
2014-01-07 01:36:38 +08:00
|
|
|
"errors"
|
2014-01-01 04:23:28 +08:00
|
|
|
"github.com/nsf/termbox-go"
|
2013-12-28 04:36:26 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
type View struct {
|
2013-12-30 04:29:29 +08:00
|
|
|
Name string
|
|
|
|
X0, Y0, X1, Y1 int
|
2014-01-06 09:21:22 +08:00
|
|
|
CX, CY int
|
2013-12-28 04:36:26 +08:00
|
|
|
BgColor, FgColor termbox.Attribute
|
|
|
|
SelBgColor, SelFgColor termbox.Attribute
|
|
|
|
}
|
|
|
|
|
2014-01-04 09:50:49 +08:00
|
|
|
func NewView(name string, x0, y0, x1, y1 int) (v *View) {
|
2013-12-29 01:49:01 +08:00
|
|
|
v = &View{
|
2013-12-30 04:29:29 +08:00
|
|
|
Name: name,
|
2014-01-04 09:50:49 +08:00
|
|
|
X0: x0,
|
|
|
|
Y0: y0,
|
|
|
|
X1: x1,
|
|
|
|
Y1: y1,
|
2013-12-29 01:49:01 +08:00
|
|
|
BgColor: termbox.ColorBlack,
|
|
|
|
FgColor: termbox.ColorWhite,
|
|
|
|
SelBgColor: termbox.ColorBlack,
|
|
|
|
SelFgColor: termbox.ColorWhite,
|
|
|
|
}
|
|
|
|
return v
|
2013-12-28 04:36:26 +08:00
|
|
|
}
|
2014-01-07 01:36:38 +08:00
|
|
|
|
|
|
|
func (v *View) SetCursor(x, y int) (err error) {
|
|
|
|
if x < 0 || v.X0+x+1 >= v.X1 || y < 0 || v.Y0+y+1 >= v.Y1 {
|
|
|
|
return errors.New("invalid point")
|
|
|
|
}
|
|
|
|
v.CX = x
|
|
|
|
v.CY = y
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (v *View) Write(p []byte) (n int, err error) {
|
|
|
|
return 0, nil
|
|
|
|
}
|