コード例 #1
0
ファイル: termbox.go プロジェクト: quincy/vigo
// SetCursor sets the cursor position in the current buffer.
func (g *TermboxGui) SetCursor(screenColumn, screenLine int) (err error) {
	b := g.CurrBuff

	if !b.ValidScreenLine(screenLine) {
		return vigoerror.Err(0, screenLine)
	}
	if !b.ValidScreenColumn(screenColumn, screenLine) {
		return vigoerror.Err(1, screenColumn)
	}

	termbox.SetCursor(screenColumn-1, screenLine-1)
	return err
}
コード例 #2
0
ファイル: buffer.go プロジェクト: quincy/vigo
// SetScreenPos sets the Line number and Column position of this Buffer's Cursor.
func (b *Buffer) SetScreenPos(screenLine, screenColumn int) error {
	if !b.ValidScreenLine(screenLine) {
		return vigoerror.Err(0, screenLine)
	}
	if !b.ValidScreenColumn(screenColumn, screenLine) {
		return vigoerror.Err(1, screenColumn)
	}

	b.setLine(screenLine - 1)
	b.setCol(screenColumn - 1)

	return nil
}
コード例 #3
0
ファイル: buffer.go プロジェクト: quincy/vigo
// SetCol sets the column position of this Buffer's Cursor.
func (b *Buffer) SetScreenCol(screenColumn int) error {
	screenLine := b.Cursor.Line + 1
	if !b.ValidScreenColumn(screenColumn, screenLine) {
		return vigoerror.Err(1, screenColumn)
	}

	b.setCol(screenColumn - 1)

	return nil
}
コード例 #4
0
ファイル: buffer.go プロジェクト: quincy/vigo
// SetScreenLine returns the line number of this Buffer's Cursor.
func (b *Buffer) SetScreenLine(screenLine int) error {
	if !b.ValidScreenLine(screenLine) {
		return vigoerror.Err(0, screenLine)
	}

	b.setLine(screenLine - 1)

	screenColumn := b.Cursor.Col + 1
	if !b.ValidScreenColumn(screenColumn, screenLine) {
		b.setCol(len(b.Lines[b.Cursor.Line]) - 1)
	}

	return nil
}