260113.9 · c43f7c01ec1de92e440c25503a02dc7494481794
chore: move cursors demo to demos and add test for it
reading declarations
Changes to demos/cursors/cursors.go. All files
@@ -0,0 +1,88 @@+// Copyright 2026 The TCell Authors+//+// Licensed under the Apache License, Version 2.0 (the "License");+// you may not use this file except in compliance with the License.+// You may obtain a copy of the License at+//+// http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software+// distributed under the License is distributed on an "AS IS" BASIS,+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and+// limitations under the License.++package main++import (+ "fmt"+ "os"++ "github.com/gdamore/tcell/v3"+ "github.com/gdamore/tcell/v3/color"+)++func main() {+ tcell.SetEncodingFallback(tcell.EncodingFallbackASCII)+ s, e := tcell.NewScreen()+ if e != nil {+ fmt.Fprintf(os.Stderr, "%v\n", e)+ os.Exit(1)+ }+ if e = s.Init(); e != nil {+ fmt.Fprintf(os.Stderr, "%v\n", e)+ os.Exit(1)+ }+ defer s.Fini()++ s.SetStyle(tcell.StyleDefault)+ s.Clear()++ text := "This demonstrates cursor styles. Press 0 through 6 to change the style."+ s.PutStr(1, 1, text)++ s.Put(2, 2, "0", tcell.StyleDefault)+ s.SetCursorStyle(tcell.CursorStyleDefault)+ s.ShowCursor(3, 2)++ for {+ s.Show()+ ev := <-s.EventQ()+ switch ev := ev.(type) {+ case *tcell.EventKey:+ switch ev.Key() {+ case tcell.KeyRune:+ switch ev.Str() {+ case "0":+ s.Put(2, 2, "0", tcell.StyleDefault)+ s.SetCursorStyle(tcell.CursorStyleDefault, color.Reset)+ case "1":+ s.Put(2, 2, "1", tcell.StyleDefault)+ s.SetCursorStyle(tcell.CursorStyleBlinkingBlock, color.Green)+ case "2":+ s.Put(2, 2, "2", tcell.StyleDefault)+ s.SetCursorStyle(tcell.CursorStyleSteadyBlock, color.Blue)+ case "3":+ s.Put(2, 2, "3", tcell.StyleDefault)+ s.SetCursorStyle(tcell.CursorStyleBlinkingUnderline, color.Red)+ case "4":+ s.Put(2, 2, "4", tcell.StyleDefault)+ s.SetCursorStyle(tcell.CursorStyleSteadyUnderline, color.Orange)+ case "5":+ s.Put(2, 2, "5", tcell.StyleDefault)+ s.SetCursorStyle(tcell.CursorStyleBlinkingBar, color.Yellow)+ case "6":+ s.Put(2, 2, "6", tcell.StyleDefault)+ s.SetCursorStyle(tcell.CursorStyleSteadyBar, color.Pink)+ }++ case tcell.KeyEscape, tcell.KeyEnter, tcell.KeyCtrlQ:+ return+ case tcell.KeyCtrlL:+ s.Sync()+ }+ case *tcell.EventResize:+ s.Sync()+ }+ }+}