mirror of
https://github.com/rivo/tview.git
synced 2025-04-24 13:48:56 +08:00
Added style attributes to Box border. Resolves #152
This commit is contained in:
parent
bc005edd52
commit
c325864561
14
box.go
14
box.go
@ -32,6 +32,9 @@ type Box struct {
|
||||
// The color of the border.
|
||||
borderColor tcell.Color
|
||||
|
||||
// The style attributes of the border.
|
||||
borderAttributes tcell.AttrMask
|
||||
|
||||
// The title. Only visible if there is a border, too.
|
||||
title string
|
||||
|
||||
@ -193,6 +196,15 @@ func (b *Box) SetBorderColor(color tcell.Color) *Box {
|
||||
return b
|
||||
}
|
||||
|
||||
// SetBorderAttributes sets the border's style attributes. You can combine
|
||||
// different attributes using bitmask operations:
|
||||
//
|
||||
// box.SetBorderAttributes(tcell.AttrUnderline | tcell.AttrBold)
|
||||
func (b *Box) SetBorderAttributes(attr tcell.AttrMask) *Box {
|
||||
b.borderAttributes = attr
|
||||
return b
|
||||
}
|
||||
|
||||
// SetTitle sets the box's title.
|
||||
func (b *Box) SetTitle(title string) *Box {
|
||||
b.title = title
|
||||
@ -233,7 +245,7 @@ func (b *Box) Draw(screen tcell.Screen) {
|
||||
|
||||
// Draw border.
|
||||
if b.border && b.width >= 2 && b.height >= 2 {
|
||||
border := background.Foreground(b.borderColor)
|
||||
border := background.Foreground(b.borderColor) | tcell.Style(b.borderAttributes)
|
||||
var vertical, horizontal, topLeft, topRight, bottomLeft, bottomRight rune
|
||||
if b.focus.HasFocus() {
|
||||
horizontal = Borders.HorizontalFocus
|
||||
|
@ -1,11 +1,15 @@
|
||||
// Demo code for the Box primitive.
|
||||
package main
|
||||
|
||||
import "github.com/rivo/tview"
|
||||
import (
|
||||
"github.com/gdamore/tcell"
|
||||
"github.com/rivo/tview"
|
||||
)
|
||||
|
||||
func main() {
|
||||
box := tview.NewBox().
|
||||
SetBorder(true).
|
||||
SetBorderAttributes(tcell.AttrBold).
|
||||
SetTitle("A [red]c[yellow]o[green]l[darkcyan]o[blue]r[darkmagenta]f[red]u[yellow]l[white] [black:red]c[:yellow]o[:green]l[:darkcyan]o[:blue]r[:darkmagenta]f[:red]u[:yellow]l[white:] [::bu]title")
|
||||
if err := tview.NewApplication().SetRoot(box, true).Run(); err != nil {
|
||||
panic(err)
|
||||
|
Loading…
x
Reference in New Issue
Block a user