discordo/ui/messages.go
2021-09-07 20:27:38 +04:00

45 lines
1.1 KiB
Go

package ui
import (
"github.com/gdamore/tcell/v2"
"github.com/rivo/tview"
)
// NewMessagesView creates and returns a new messages textview.
func NewMessagesView(
app *tview.Application,
onMessagesTextViewInputCapture func(*tcell.EventKey) *tcell.EventKey,
) *tview.TextView {
v := tview.NewTextView()
v.
SetRegions(true).
SetDynamicColors(true).
SetWordWrap(true).
ScrollToEnd().
SetChangedFunc(func() {
app.Draw()
}).
SetInputCapture(onMessagesTextViewInputCapture).
SetBorder(true).
SetBorderPadding(0, 0, 1, 0).
SetTitleAlign(tview.AlignLeft)
return v
}
// NewMessageInputField creates and returns a new message inputfield.
func NewMessageInputField(
onMessageInputFieldInputCapture func(*tcell.EventKey) *tcell.EventKey,
) *tview.InputField {
i := tview.NewInputField()
i.
SetPlaceholder("Message...").
SetPlaceholderTextColor(tcell.ColorWhite).
SetFieldBackgroundColor(tview.Styles.PrimitiveBackgroundColor).
SetInputCapture(onMessageInputFieldInputCapture).
SetBorder(true).
SetBorderPadding(0, 0, 1, 0).
SetTitleAlign(tview.AlignLeft)
return i
}