big api overhauls.
This commit is contained in:
parent
d84d6790c0
commit
cbc0002d2a
33 changed files with 356 additions and 297 deletions
29
text.go
29
text.go
|
|
@ -64,15 +64,12 @@ type TextStyle struct {
|
|||
|
||||
type text struct{}
|
||||
|
||||
func (t text) WrapFit(r Renderer, value string, width int, style Style, wrapOption textWrap) []string {
|
||||
valueBox := r.MeasureText(value)
|
||||
if valueBox.Width() > width {
|
||||
switch wrapOption {
|
||||
case TextWrapRune:
|
||||
return t.WrapFitRune(r, value, width, style)
|
||||
case TextWrapWord:
|
||||
return t.WrapFitWord(r, value, width, style)
|
||||
}
|
||||
func (t text) WrapFit(r Renderer, value string, width int, style Style) []string {
|
||||
switch style.TextWrap {
|
||||
case TextWrapRune:
|
||||
return t.WrapFitRune(r, value, width, style)
|
||||
case TextWrapWord:
|
||||
return t.WrapFitWord(r, value, width, style)
|
||||
}
|
||||
return []string{value}
|
||||
}
|
||||
|
|
@ -143,6 +140,20 @@ func (t text) Trim(value string) string {
|
|||
return strings.Trim(value, " \t\n\r")
|
||||
}
|
||||
|
||||
func (t text) MeasureLines(r Renderer, lines []string, style Style) Box {
|
||||
style.WriteTextOptionsToRenderer(r)
|
||||
var output Box
|
||||
for index, line := range lines {
|
||||
lineBox := r.MeasureText(line)
|
||||
output.Right = Math.MaxInt(lineBox.Right, output.Right)
|
||||
output.Bottom += lineBox.Height()
|
||||
if index < len(lines)-1 {
|
||||
output.Bottom += +style.GetTextLineSpacing()
|
||||
}
|
||||
}
|
||||
return output
|
||||
}
|
||||
|
||||
func (t text) appendLast(lines []string, text string) []string {
|
||||
if len(lines) == 0 {
|
||||
return []string{text}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue