Browse Source

added scrolling functionality

pull/37/head
David Haukeness 5 years ago
parent
commit
60c5302aec
No known key found for this signature in database
GPG Key ID: A7F1091956853EF9
  1. 50
      main.go

50
main.go

@ -110,7 +110,56 @@ func layout(g *gocui.Gui) error { @@ -110,7 +110,56 @@ func layout(g *gocui.Gui) error {
}
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 {
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,
func(g *gocui.Gui, v *gocui.View) error {
input, err := getInputString("Input")
@ -592,6 +641,7 @@ func handleInput(viewName string) error { @@ -592,6 +641,7 @@ func handleInput(viewName string) error {
return nil
}
func sendChat(message string) {
autoScrollView("Chat")
chat := k.NewChat(channel)
_, err := chat.Send(message)
if err != nil {

Loading…
Cancel
Save