mirror of
https://github.com/Rudi9719/kbtui.git
synced 2026-03-22 08:47:24 +00:00
added scrolling functionality
This commit is contained in:
50
main.go
50
main.go
@ -110,7 +110,56 @@ func layout(g *gocui.Gui) error {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
func scrollUP(v *gocui.View) error {
|
||||||
|
scrollView(v, -1)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func scrollDOWN(v *gocui.View) error {
|
||||||
|
scrollView(v, 1)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func scrollView(v *gocui.View, delta int) error {
|
||||||
|
if v != nil {
|
||||||
|
v.Autoscroll = false
|
||||||
|
ox, oy := v.Origin()
|
||||||
|
if err := v.SetOrigin(ox, oy+delta); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
func autoScrollView(vn string) error {
|
||||||
|
v, err := g.View(vn)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
} else if v != nil {
|
||||||
|
v.Autoscroll = true
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
func initKeybindings() error {
|
func initKeybindings() error {
|
||||||
|
if err := g.SetKeybinding("", gocui.KeyPgup, gocui.ModNone,
|
||||||
|
func(g *gocui.Gui, v *gocui.View) error {
|
||||||
|
cv, _ := g.View("Chat")
|
||||||
|
err := scrollUP(cv)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := g.SetKeybinding("", gocui.KeyPgdn, gocui.ModNone,
|
||||||
|
func(g *gocui.Gui, v *gocui.View) error {
|
||||||
|
cv, _ := g.View("Chat")
|
||||||
|
err := scrollDOWN(cv)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err := g.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone,
|
if err := g.SetKeybinding("", gocui.KeyCtrlC, gocui.ModNone,
|
||||||
func(g *gocui.Gui, v *gocui.View) error {
|
func(g *gocui.Gui, v *gocui.View) error {
|
||||||
input, err := getInputString("Input")
|
input, err := getInputString("Input")
|
||||||
@ -592,6 +641,7 @@ func handleInput(viewName string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
func sendChat(message string) {
|
func sendChat(message string) {
|
||||||
|
autoScrollView("Chat")
|
||||||
chat := k.NewChat(channel)
|
chat := k.NewChat(channel)
|
||||||
_, err := chat.Send(message)
|
_, err := chat.Send(message)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user