aboutsummaryrefslogtreecommitdiff
path: root/ui/messages/base.go
diff options
context:
space:
mode:
Diffstat (limited to 'ui/messages/base.go')
-rw-r--r--ui/messages/base.go51
1 files changed, 27 insertions, 24 deletions
diff --git a/ui/messages/base.go b/ui/messages/base.go
index ba1902d..d045e42 100644
--- a/ui/messages/base.go
+++ b/ui/messages/base.go
@@ -21,9 +21,9 @@ import (
"time"
"maunium.net/go/mautrix"
+ "maunium.net/go/mauview"
"maunium.net/go/tcell"
- "maunium.net/go/gomuks/config"
"maunium.net/go/gomuks/interface"
"maunium.net/go/gomuks/ui/messages/tstring"
"maunium.net/go/gomuks/ui/widget"
@@ -34,33 +34,30 @@ func init() {
}
type BaseMessage struct {
- MsgID string
- MsgType mautrix.MessageType
- MsgSenderID string
- MsgSender string
- MsgSenderColor tcell.Color
- MsgTimestamp time.Time
- MsgState ifc.MessageState
- MsgIsHighlight bool
- MsgIsService bool
- buffer []tstring.TString
- plainBuffer []tstring.TString
- prevBufferWidth int
- prevPrefs config.UserPreferences
+ MsgID string
+ MsgType mautrix.MessageType
+ MsgSenderID string
+ MsgSender string
+ MsgSenderColor tcell.Color
+ MsgTimestamp time.Time
+ MsgState ifc.MessageState
+ MsgIsHighlight bool
+ MsgIsService bool
+ buffer []tstring.TString
+ plainBuffer []tstring.TString
}
func newBaseMessage(id, sender, displayname string, msgtype mautrix.MessageType, timestamp time.Time) BaseMessage {
return BaseMessage{
- MsgSenderID: sender,
- MsgSender: displayname,
- MsgTimestamp: timestamp,
- MsgSenderColor: widget.GetHashColor(sender),
- MsgType: msgtype,
- MsgID: id,
- prevBufferWidth: 0,
- MsgState: ifc.MessageStateDefault,
- MsgIsHighlight: false,
- MsgIsService: false,
+ MsgSenderID: sender,
+ MsgSender: displayname,
+ MsgTimestamp: timestamp,
+ MsgSenderColor: widget.GetHashColor(sender),
+ MsgType: msgtype,
+ MsgID: id,
+ MsgState: ifc.MessageStateDefault,
+ MsgIsHighlight: false,
+ MsgIsService: false,
}
}
@@ -227,3 +224,9 @@ func (msg *BaseMessage) IsService() bool {
func (msg *BaseMessage) SetIsService(isService bool) {
msg.MsgIsService = isService
}
+
+func (msg *BaseMessage) Draw(screen mauview.Screen) {
+ for y, line := range msg.buffer {
+ line.Draw(screen, 0, y)
+ }
+}