draw cursor in editabletextarea

This commit is contained in:
David 2021-08-01 15:49:35 -04:00
parent e9b6c95019
commit d6acfe235b
1 changed files with 23 additions and 8 deletions

View File

@ -517,18 +517,20 @@ func (p *KeyValue) GetValue() string {
}
type EditableTextLine struct {
x, y int
h, w int
text string
style tcell.Style
visible bool
cursorPos int
x, y int
h, w int
text string
style tcell.Style
visible bool
cursorPos int
showCursor bool
}
func NewEditableTextLine(initialText string) *EditableTextLine {
return &EditableTextLine{
text: initialText,
visible: true,
text: initialText,
visible: true,
showCursor: true,
}
}
@ -547,6 +549,15 @@ func (p *EditableTextLine) Draw(s tcell.Screen) {
for j, r := range p.text {
s.SetContent(p.x+j, p.y, r, nil, p.style)
}
s.ShowCursor(p.x+p.cursorPos, p.y)
}
func (p *EditableTextLine) SetVisible(b bool) {
p.visible = b
}
func (p *EditableTextLine) SetCursorVisible(b bool) {
p.showCursor = b
}
func (p *EditableTextLine) SetText(t string) {
@ -558,6 +569,10 @@ func (p *EditableTextLine) SetText(t string) {
p.ResetCursor(false)
}
func (p *EditableTextLine) Text() string {
return p.text
}
func (p *EditableTextLine) ResetCursor(beginning bool) {
if beginning {
p.cursorPos = 0