1
0
mirror of https://github.com/gizak/termui.git synced 2025-04-29 13:48:51 +08:00

table col separator control

This commit is contained in:
Igor Pidik 2022-10-01 12:32:12 +02:00
parent f976fe697a
commit c19e015998

View File

@ -25,6 +25,7 @@ type Table struct {
ColumnWidths []int ColumnWidths []int
TextStyle Style TextStyle Style
RowSeparator bool RowSeparator bool
ColSeparator bool
TextAlignment Alignment TextAlignment Alignment
RowStyles map[int]Style RowStyles map[int]Style
FillRow bool FillRow bool
@ -38,6 +39,7 @@ func NewTable() *Table {
Block: *NewBlock(), Block: *NewBlock(),
TextStyle: Theme.Table.Text, TextStyle: Theme.Table.Text,
RowSeparator: true, RowSeparator: true,
ColSeparator: true,
RowStyles: make(map[int]Style), RowStyles: make(map[int]Style),
ColumnResizer: func() {}, ColumnResizer: func() {},
} }
@ -107,21 +109,23 @@ func (self *Table) Draw(buf *Buffer) {
colXCoordinate += columnWidths[j] + 1 colXCoordinate += columnWidths[j] + 1
} }
// draw vertical separators
separatorStyle := self.Block.BorderStyle separatorStyle := self.Block.BorderStyle
separatorXCoordinate := self.Inner.Min.X if self.ColSeparator {
verticalCell := NewCell(VERTICAL_LINE, separatorStyle) // draw vertical separators
for i, width := range columnWidths { separatorXCoordinate := self.Inner.Min.X
if self.FillRow && i < len(columnWidths)-1 { verticalCell := NewCell(VERTICAL_LINE, separatorStyle)
verticalCell.Style.Bg = rowStyle.Bg for i, width := range columnWidths {
} else { if self.FillRow && i < len(columnWidths)-1 {
verticalCell.Style.Bg = self.Block.BorderStyle.Bg verticalCell.Style.Bg = rowStyle.Bg
} } else {
verticalCell.Style.Bg = self.Block.BorderStyle.Bg
}
separatorXCoordinate += width separatorXCoordinate += width
buf.SetCell(verticalCell, image.Pt(separatorXCoordinate, yCoordinate)) buf.SetCell(verticalCell, image.Pt(separatorXCoordinate, yCoordinate))
separatorXCoordinate++ separatorXCoordinate++
}
} }
yCoordinate++ yCoordinate++