aboutsummaryrefslogtreecommitdiff
path: root/ui/messages/tstring
diff options
context:
space:
mode:
authorTulir Asokan <tulir@maunium.net>2018-04-14 00:34:25 +0300
committerTulir Asokan <tulir@maunium.net>2018-04-14 00:34:25 +0300
commite7bf5bd59fc0a43172b6ab5b338e1d60bd4b3bbb (patch)
tree67aacbe31ba2d95fd7a648254f5173d7f46b4dc1 /ui/messages/tstring
parent69c163cfe9d353060896403a3e844848d4fd54eb (diff)
Add basic HTML rendering (ref #16)
Diffstat (limited to 'ui/messages/tstring')
-rw-r--r--ui/messages/tstring/string.go33
1 files changed, 32 insertions, 1 deletions
diff --git a/ui/messages/tstring/string.go b/ui/messages/tstring/string.go
index ad0b2c8..d1ad446 100644
--- a/ui/messages/tstring/string.go
+++ b/ui/messages/tstring/string.go
@@ -19,8 +19,8 @@ package tstring
import (
"strings"
- "maunium.net/go/tcell"
"github.com/mattn/go-runewidth"
+ "maunium.net/go/tcell"
)
type TString []Cell
@@ -49,6 +49,37 @@ func NewStyleTString(str string, style tcell.Style) TString {
return newStr
}
+func (str TString) AppendTString(data TString) TString {
+ return append(str, data...)
+}
+
+func (str TString) Append(data string) TString {
+ newStr := make(TString, len(str)+len(data))
+ copy(newStr, str)
+ for i, char := range data {
+ newStr[i+len(str)] = NewCell(char)
+ }
+ return newStr
+}
+
+func (str TString) AppendColor(data string, color tcell.Color) TString {
+ newStr := make(TString, len(str)+len(data))
+ copy(newStr, str)
+ for i, char := range data {
+ newStr[i+len(str)] = NewColorCell(char, color)
+ }
+ return newStr
+}
+
+func (str TString) AppendStyle(data string, style tcell.Style) TString {
+ newStr := make(TString, len(str)+len(data))
+ copy(newStr, str)
+ for i, char := range data {
+ newStr[i+len(str)] = NewStyleCell(char, style)
+ }
+ return newStr
+}
+
func (str TString) Colorize(from, length int, color tcell.Color) {
for i := from; i < from+length; i++ {
str[i].Style = str[i].Style.Foreground(color)