mirror of
https://github.com/gizak/termui.git
synced 2025-04-24 13:48:50 +08:00
Merge e2f763c193b4e4d9af3e51b6637d4acca8132fe3 into 2b8f0c7960e9553acea6d579a740713066da5e13
This commit is contained in:
commit
6619b760f5
@ -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
|
||||
|
@ -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++
|
||||
|
Loading…
x
Reference in New Issue
Block a user