diff --git a/_examples/table.go b/_examples/table.go index af749576..eb2fa2b5 100644 --- a/_examples/table.go +++ b/_examples/table.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a MIT license that can // be found in the LICENSE file. +//go:build ignore // +build ignore package main @@ -61,6 +62,21 @@ func main() { ui.Render(table3) + borderlessTable := widgets.NewTable() + borderlessTable.Rows = [][]string{ + []string{"header1", "header2", "header3"}, + []string{"Foundations", "Go-lang is so cool", "Im working on Ruby"}, + []string{"2016", "11", "11"}, + } + borderlessTable.TextStyle = ui.NewStyle(ui.ColorWhite) + borderlessTable.TextAlignment = ui.AlignCenter + borderlessTable.SetRect(0, 30, 60, 35) + borderlessTable.Border = false + borderlessTable.RowSeparator = false + borderlessTable.ColSeparator = false + + ui.Render(borderlessTable) + uiEvents := ui.PollEvents() for { e := <-uiEvents diff --git a/widgets/table.go b/widgets/table.go index 05391ad5..467f9732 100644 --- a/widgets/table.go +++ b/widgets/table.go @@ -25,6 +25,7 @@ type Table struct { ColumnWidths []int TextStyle Style RowSeparator bool + ColSeparator bool TextAlignment Alignment RowStyles map[int]Style FillRow bool @@ -38,6 +39,7 @@ func NewTable() *Table { Block: *NewBlock(), TextStyle: Theme.Table.Text, RowSeparator: true, + ColSeparator: true, RowStyles: make(map[int]Style), ColumnResizer: func() {}, } @@ -107,21 +109,23 @@ func (self *Table) Draw(buf *Buffer) { colXCoordinate += columnWidths[j] + 1 } - // draw vertical separators separatorStyle := self.Block.BorderStyle - separatorXCoordinate := self.Inner.Min.X - verticalCell := NewCell(VERTICAL_LINE, separatorStyle) - for i, width := range columnWidths { - if self.FillRow && i < len(columnWidths)-1 { - verticalCell.Style.Bg = rowStyle.Bg - } else { - verticalCell.Style.Bg = self.Block.BorderStyle.Bg - } + if self.ColSeparator { + // draw vertical separators + separatorXCoordinate := self.Inner.Min.X + verticalCell := NewCell(VERTICAL_LINE, separatorStyle) + for i, width := range columnWidths { + if self.FillRow && i < len(columnWidths)-1 { + verticalCell.Style.Bg = rowStyle.Bg + } else { + verticalCell.Style.Bg = self.Block.BorderStyle.Bg + } - separatorXCoordinate += width - buf.SetCell(verticalCell, image.Pt(separatorXCoordinate, yCoordinate)) - separatorXCoordinate++ + separatorXCoordinate += width + buf.SetCell(verticalCell, image.Pt(separatorXCoordinate, yCoordinate)) + separatorXCoordinate++ + } } yCoordinate++