Add basic HTML rendering (ref #16)

This commit is contained in:
Tulir Asokan
2018-04-14 00:34:25 +03:00
parent 69c163cfe9
commit e7bf5bd59f
6 changed files with 179 additions and 14 deletions

View File

@ -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)