diff --git a/CHANGELOG b/CHANGELOG index f6e1398..49e6272 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +v1.4.9 (WIP) +- Add InputField.GetCursorPosition and InputField.SetCursorPosition + v1.4.8 (2020-08-11) - Add italic text formatting flag - Add Modal.GetForm and Modal.GetFrame diff --git a/go.mod b/go.mod index dd5e77e..96b3181 100644 --- a/go.mod +++ b/go.mod @@ -3,11 +3,11 @@ module gitlab.com/tslocum/cview go 1.12 require ( - github.com/gdamore/tcell v1.3.1-0.20200608133353-cb1e5d6fa606 + github.com/gdamore/tcell v1.3.1-0.20200823221337-776d98d3850b github.com/lucasb-eyer/go-colorful v1.0.3 github.com/mattn/go-runewidth v0.0.9 github.com/rivo/uniseg v0.1.0 gitlab.com/tslocum/cbind v0.1.1 - golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed // indirect + golang.org/x/sys v0.0.0-20200824131525-c12d262b63d8 // indirect golang.org/x/text v0.3.3 // indirect ) diff --git a/go.sum b/go.sum index 075ad8a..ed1e746 100644 --- a/go.sum +++ b/go.sum @@ -4,8 +4,8 @@ github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdk github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= github.com/gdamore/tcell v1.3.0 h1:r35w0JBADPZCVQijYebl6YMWWtHRqVEGt7kL2eBADRM= github.com/gdamore/tcell v1.3.0/go.mod h1:Hjvr+Ofd+gLglo7RYKxxnzCBmev3BzsS67MebKS4zMM= -github.com/gdamore/tcell v1.3.1-0.20200608133353-cb1e5d6fa606 h1:Y00kKKKYVyn7InlCMRcnZbwcjHFIsgkjU0Bn1F5re4o= -github.com/gdamore/tcell v1.3.1-0.20200608133353-cb1e5d6fa606/go.mod h1:vxEiSDZdW3L+Uhjii9c3375IlDmR05bzxY404ZVSMo0= +github.com/gdamore/tcell v1.3.1-0.20200823221337-776d98d3850b h1:i5YlGe2SivCwep7niKxoTEgya61QwQRtkv6vclekai8= +github.com/gdamore/tcell v1.3.1-0.20200823221337-776d98d3850b/go.mod h1:vxEiSDZdW3L+Uhjii9c3375IlDmR05bzxY404ZVSMo0= github.com/lucasb-eyer/go-colorful v1.0.2 h1:mCMFu6PgSozg9tDNMMK3g18oJBX7oYGrC09mS6CXfO4= github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s= github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac= @@ -23,8 +23,8 @@ gitlab.com/tslocum/cbind v0.1.1/go.mod h1:rX7vkl0pUSg/yy427MmD1FZAf99S7WwpUlxF/q golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756 h1:9nuHUbU8dRnRRfj9KjWUVrJeoexdbeMjttk6Oh1rD10= golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed h1:WBkVNH1zd9jg/dK4HCM4lNANnmd12EHC9z+LmcCG4ns= -golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200824131525-c12d262b63d8 h1:AvbQYmiaaaza3cW3QXRyPo5kYgpFIzOAfeAAN7m3qQ4= +golang.org/x/sys v0.0.0-20200824131525-c12d262b63d8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= diff --git a/inputfield.go b/inputfield.go index 063a4fb..b316760 100644 --- a/inputfield.go +++ b/inputfield.go @@ -238,6 +238,22 @@ func (i *InputField) GetFieldWidth() int { return i.fieldWidth } +// GetCursorPosition returns the cursor position. +func (i *InputField) GetCursorPosition() int { + i.RLock() + defer i.RUnlock() + + return i.cursorPos +} + +// SetCursorPosition sets the cursor position. +func (i *InputField) SetCursorPosition(cursorPos int) { + i.Lock() + defer i.Unlock() + + i.cursorPos = cursorPos +} + // SetMaskCharacter sets a character that masks user input on a screen. A value // of 0 disables masking. func (i *InputField) SetMaskCharacter(mask rune) *InputField {