From e7bf5bd59fc0a43172b6ab5b338e1d60bd4b3bbb Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sat, 14 Apr 2018 00:34:25 +0300 Subject: Add basic HTML rendering (ref #16) --- ui/messages/tstring/string.go | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'ui/messages/tstring/string.go') 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) -- cgit v1.2.3