draw cursor in editabletextarea
This commit is contained in:
parent
e9b6c95019
commit
d6acfe235b
31
ui/ui.go
31
ui/ui.go
@ -517,18 +517,20 @@ func (p *KeyValue) GetValue() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type EditableTextLine struct {
|
type EditableTextLine struct {
|
||||||
x, y int
|
x, y int
|
||||||
h, w int
|
h, w int
|
||||||
text string
|
text string
|
||||||
style tcell.Style
|
style tcell.Style
|
||||||
visible bool
|
visible bool
|
||||||
cursorPos int
|
cursorPos int
|
||||||
|
showCursor bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewEditableTextLine(initialText string) *EditableTextLine {
|
func NewEditableTextLine(initialText string) *EditableTextLine {
|
||||||
return &EditableTextLine{
|
return &EditableTextLine{
|
||||||
text: initialText,
|
text: initialText,
|
||||||
visible: true,
|
visible: true,
|
||||||
|
showCursor: true,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -547,6 +549,15 @@ func (p *EditableTextLine) Draw(s tcell.Screen) {
|
|||||||
for j, r := range p.text {
|
for j, r := range p.text {
|
||||||
s.SetContent(p.x+j, p.y, r, nil, p.style)
|
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) {
|
func (p *EditableTextLine) SetText(t string) {
|
||||||
@ -558,6 +569,10 @@ func (p *EditableTextLine) SetText(t string) {
|
|||||||
p.ResetCursor(false)
|
p.ResetCursor(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *EditableTextLine) Text() string {
|
||||||
|
return p.text
|
||||||
|
}
|
||||||
|
|
||||||
func (p *EditableTextLine) ResetCursor(beginning bool) {
|
func (p *EditableTextLine) ResetCursor(beginning bool) {
|
||||||
if beginning {
|
if beginning {
|
||||||
p.cursorPos = 0
|
p.cursorPos = 0
|
||||||
|
Loading…
Reference in New Issue
Block a user