keys for inputfield
This commit is contained in:
parent
726e7a4f01
commit
af07f91f0e
4 changed files with 31 additions and 15 deletions
10
config.go
10
config.go
|
|
@ -20,8 +20,14 @@ type (
|
|||
ReplyMention string `yaml:"reply_mention"`
|
||||
}
|
||||
|
||||
MessageInputKeysConfig struct {
|
||||
CommonKeysConfig `yaml:",inline"`
|
||||
Send string `yaml:"send"`
|
||||
}
|
||||
|
||||
KeysConfig struct {
|
||||
MessagesText MessagesTextKeysConfig `yaml:"messages_text"`
|
||||
MessageInput MessageInputKeysConfig `yaml:"message_input"`
|
||||
}
|
||||
)
|
||||
|
||||
|
|
@ -91,6 +97,10 @@ func newConfig() (*Config, error) {
|
|||
Reply: "Rune[r]",
|
||||
ReplyMention: "Rune[R]",
|
||||
},
|
||||
MessageInput: MessageInputKeysConfig{
|
||||
CommonKeysConfig: commonKeys,
|
||||
Send: "Enter",
|
||||
},
|
||||
},
|
||||
|
||||
Theme: ThemeConfig{
|
||||
|
|
|
|||
|
|
@ -28,9 +28,11 @@ func newGuildsTree() *GuildsTree {
|
|||
gt.SetTopLevel(1)
|
||||
gt.SetSelectedFunc(gt.onSelected)
|
||||
|
||||
gt.SetBorder(cfg.Theme.GuildsTree.Border)
|
||||
gt.SetTitle("Guilds")
|
||||
gt.SetTitleAlign(tview.AlignLeft)
|
||||
|
||||
padding := cfg.Theme.GuildsTree.BorderPadding
|
||||
gt.SetBorder(cfg.Theme.GuildsTree.Border)
|
||||
gt.SetBorderPadding(padding[0], padding[1], padding[2], padding[3])
|
||||
|
||||
return gt
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/gdamore/tcell/v2"
|
||||
"github.com/rivo/tview"
|
||||
)
|
||||
|
|
@ -14,35 +16,36 @@ func newMessageInput() *MessageInput {
|
|||
InputField: tview.NewInputField(),
|
||||
}
|
||||
|
||||
mi.SetDoneFunc(mi.onDone)
|
||||
mi.SetFieldBackgroundColor(tview.Styles.PrimitiveBackgroundColor)
|
||||
mi.SetInputCapture(mi.onInputCapture)
|
||||
|
||||
mi.SetTitleAlign(tview.AlignLeft)
|
||||
mi.SetFieldBackgroundColor(tview.Styles.PrimitiveBackgroundColor)
|
||||
mi.SetBorder(cfg.Theme.MessageInput.Border)
|
||||
|
||||
padding := cfg.Theme.MessageInput.BorderPadding
|
||||
mi.SetBorder(cfg.Theme.MessageInput.Border)
|
||||
mi.SetBorderPadding(padding[0], padding[1], padding[2], padding[3])
|
||||
|
||||
return mi
|
||||
}
|
||||
|
||||
func (mi *MessageInput) onDone(key tcell.Key) {
|
||||
switch key {
|
||||
case tcell.KeyEnter:
|
||||
go mi.sendMessage()
|
||||
case tcell.KeyEscape:
|
||||
// Reset the message input.
|
||||
mi.SetText("")
|
||||
func (mi *MessageInput) onInputCapture(event *tcell.EventKey) *tcell.EventKey {
|
||||
switch event.Name() {
|
||||
case cfg.Keys.MessageInput.Send:
|
||||
mi.sendAction()
|
||||
return nil
|
||||
}
|
||||
|
||||
return event
|
||||
}
|
||||
|
||||
func (mi *MessageInput) sendMessage() error {
|
||||
func (mi *MessageInput) sendAction() {
|
||||
text := mi.GetText()
|
||||
_, err := discordState.SendMessage(guildsTree.selectedChannel.ID, text)
|
||||
if err != nil {
|
||||
return err
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
|
||||
// Reset the message input.
|
||||
mi.SetText("")
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,10 +29,11 @@ func newMessagesText() *MessagesText {
|
|||
mt.SetHighlightedFunc(mt.onHighlighted)
|
||||
mt.SetInputCapture(mt.onInputCapture)
|
||||
|
||||
mt.SetTitle("Messages")
|
||||
mt.SetTitleAlign(tview.AlignLeft)
|
||||
mt.SetBorder(cfg.Theme.MessagesText.Border)
|
||||
|
||||
padding := cfg.Theme.MessagesText.BorderPadding
|
||||
mt.SetBorder(cfg.Theme.MessagesText.Border)
|
||||
mt.SetBorderPadding(padding[0], padding[1], padding[2], padding[3])
|
||||
|
||||
return mt
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue