| package termbox |
| |
| // private API, common OS agnostic part |
| |
| type cellbuf struct { |
| width int |
| height int |
| cells []Cell |
| } |
| |
| func (this *cellbuf) init(width, height int) { |
| this.width = width |
| this.height = height |
| this.cells = make([]Cell, width*height) |
| } |
| |
| func (this *cellbuf) resize(width, height int) { |
| if this.width == width && this.height == height { |
| return |
| } |
| |
| oldw := this.width |
| oldh := this.height |
| oldcells := this.cells |
| |
| this.init(width, height) |
| this.clear() |
| |
| minw, minh := oldw, oldh |
| |
| if width < minw { |
| minw = width |
| } |
| if height < minh { |
| minh = height |
| } |
| |
| for i := 0; i < minh; i++ { |
| srco, dsto := i*oldw, i*width |
| src := oldcells[srco : srco+minw] |
| dst := this.cells[dsto : dsto+minw] |
| copy(dst, src) |
| } |
| } |
| |
| func (this *cellbuf) clear() { |
| for i := range this.cells { |
| c := &this.cells[i] |
| c.Ch = ' ' |
| c.Fg = foreground |
| c.Bg = background |
| } |
| } |
| |
| const cursor_hidden = -1 |
| |
| func is_cursor_hidden(x, y int) bool { |
| return x == cursor_hidden || y == cursor_hidden |
| } |