diff options
Diffstat (limited to 'src/tui/tcell.go')
-rw-r--r-- | src/tui/tcell.go | 41 |
1 files changed, 20 insertions, 21 deletions
diff --git a/src/tui/tcell.go b/src/tui/tcell.go index a4c599bb..e37b5ef8 100644 --- a/src/tui/tcell.go +++ b/src/tui/tcell.go @@ -77,11 +77,13 @@ const ( Blink = Attr(tcell.AttrBlink) Reverse = Attr(tcell.AttrReverse) Underline = Attr(tcell.AttrUnderline) - Italic = Attr(tcell.AttrNone) // Not supported + Italic = Attr(tcell.AttrItalic) ) const ( - AttrRegular Attr = 0 + AttrUndefined = Attr(0) + AttrRegular = Attr(1 << 7) + AttrClear = Attr(1 << 8) ) func (r *FullscreenRenderer) defaultTheme() *ColorTheme { @@ -414,7 +416,7 @@ func (r *FullscreenRenderer) NewWindow(top int, left int, width int, height int, normal = ColPreview } return &TcellWindow{ - color: r.theme != nil, + color: r.theme.Colored, preview: preview, top: top, left: left, @@ -460,27 +462,23 @@ func (w *TcellWindow) MoveAndClear(y int, x int) { } func (w *TcellWindow) Print(text string) { - w.printString(text, w.normal, 0) + w.printString(text, w.normal) } -func (w *TcellWindow) printString(text string, pair ColorPair, a Attr) { +func (w *TcellWindow) printString(text string, pair ColorPair) { t := text lx := 0 + a := pair.Attr() - var style tcell.Style - if w.color { - style = pair.style(). + style := pair.style() + if a&AttrClear == 0 { + style = style. Reverse(a&Attr(tcell.AttrReverse) != 0). - Underline(a&Attr(tcell.AttrUnderline) != 0) - } else { - style = w.normal.style(). - Reverse(a&Attr(tcell.AttrReverse) != 0 || pair == ColCurrent || pair == ColCurrentMatch). - Underline(a&Attr(tcell.AttrUnderline) != 0 || pair == ColMatch || pair == ColCurrentMatch) + Underline(a&Attr(tcell.AttrUnderline) != 0). + Italic(a&Attr(tcell.AttrItalic) != 0). + Blink(a&Attr(tcell.AttrBlink) != 0). + Dim(a&Attr(tcell.AttrDim) != 0) } - style = style. - Blink(a&Attr(tcell.AttrBlink) != 0). - Bold(a&Attr(tcell.AttrBold) != 0). - Dim(a&Attr(tcell.AttrDim) != 0) for { if len(t) == 0 { @@ -513,8 +511,8 @@ func (w *TcellWindow) printString(text string, pair ColorPair, a Attr) { w.lastX += lx } -func (w *TcellWindow) CPrint(pair ColorPair, attr Attr, text string) { - w.printString(text, pair, attr) +func (w *TcellWindow) CPrint(pair ColorPair, text string) { + w.printString(text, pair) } func (w *TcellWindow) fillString(text string, pair ColorPair, a Attr) FillReturn { @@ -531,7 +529,8 @@ func (w *TcellWindow) fillString(text string, pair ColorPair, a Attr) FillReturn Bold(a&Attr(tcell.AttrBold) != 0). Dim(a&Attr(tcell.AttrDim) != 0). Reverse(a&Attr(tcell.AttrReverse) != 0). - Underline(a&Attr(tcell.AttrUnderline) != 0) + Underline(a&Attr(tcell.AttrUnderline) != 0). + Italic(a&Attr(tcell.AttrItalic) != 0) for _, r := range text { if r == '\n' { @@ -574,7 +573,7 @@ func (w *TcellWindow) CFill(fg Color, bg Color, a Attr, str string) FillReturn { if bg == colDefault { bg = w.normal.Bg() } - return w.fillString(str, NewColorPair(fg, bg), a) + return w.fillString(str, NewColorPair(fg, bg, a), a) } func (w *TcellWindow) drawBorder() { |