Add support for m.emote. Fixes #6
This commit is contained in:
@ -74,8 +74,8 @@ func NewMessageView() *MessageView {
|
||||
}
|
||||
}
|
||||
|
||||
func (view *MessageView) NewMessage(id, sender, text string, timestamp time.Time) *types.Message {
|
||||
return types.NewMessage(id, sender, text,
|
||||
func (view *MessageView) NewMessage(id, sender, msgtype, text string, timestamp time.Time) *types.Message {
|
||||
return types.NewMessage(id, sender, msgtype, text,
|
||||
timestamp.Format(view.TimestampFormat),
|
||||
timestamp.Format(view.DateFormat),
|
||||
GetHashColor(sender))
|
||||
@ -151,6 +151,8 @@ func (view *MessageView) AddMessage(message *types.Message, direction MessageDir
|
||||
msg, messageExists := view.messageIDs[message.ID]
|
||||
if msg != nil && messageExists {
|
||||
message.CopyTo(msg)
|
||||
message = msg
|
||||
message.SetIsSending(false)
|
||||
direction = IgnoreMessage
|
||||
}
|
||||
|
||||
@ -338,9 +340,9 @@ func (view *MessageView) Draw(screen tcell.Screen) {
|
||||
if len(meta.GetTimestamp()) > 0 {
|
||||
view.writeLine(screen, meta.GetTimestamp(), x, y+line, meta.GetTimestampColor())
|
||||
}
|
||||
if len(meta.GetSender()) > 0 && (prevMeta == nil || meta.GetSender() != prevMeta.GetSender()) {
|
||||
if prevMeta == nil || meta.GetSender() != prevMeta.GetSender() {
|
||||
view.writeLineRight(
|
||||
screen, meta.GetSender(),
|
||||
screen, meta.GetDisplaySender(),
|
||||
x+usernameOffsetX, y+line,
|
||||
view.widestSender, meta.GetSenderColor())
|
||||
}
|
||||
|
@ -19,6 +19,7 @@ package widget
|
||||
import (
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@ -239,12 +240,25 @@ func (view *RoomView) UpdateUserList() {
|
||||
}
|
||||
}
|
||||
|
||||
func (view *RoomView) NewMessage(id, sender, text string, timestamp time.Time) *types.Message {
|
||||
func (view *RoomView) NewMessage(id, sender, msgtype, text string, timestamp time.Time) *types.Message {
|
||||
member := view.Room.GetMember(sender)
|
||||
if member != nil {
|
||||
sender = member.DisplayName
|
||||
}
|
||||
return view.content.NewMessage(id, sender, text, timestamp)
|
||||
return view.content.NewMessage(id, sender, msgtype, text, timestamp)
|
||||
}
|
||||
|
||||
func (view *RoomView) NewTempMessage(msgtype, text string) *types.Message {
|
||||
now := time.Now()
|
||||
id := strconv.FormatInt(now.UnixNano(), 10)
|
||||
sender := view.Room.GetSessionOwner().DisplayName
|
||||
message := view.NewMessage(id, sender, msgtype, text, now)
|
||||
message.SetIsSending(true)
|
||||
message.TimestampColor = tcell.ColorGray
|
||||
message.TextColor = tcell.ColorGray
|
||||
message.SenderColor = tcell.ColorGray
|
||||
view.AddMessage(message, AppendMessage)
|
||||
return message
|
||||
}
|
||||
|
||||
func (view *RoomView) AddMessage(message *types.Message, direction MessageDirection) {
|
||||
|
Reference in New Issue
Block a user