summaryrefslogtreecommitdiffstats
path: root/src/tui/tcell.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/tui/tcell.go')
-rw-r--r--src/tui/tcell.go41
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() {