mirror of
https://github.com/rivo/tview.git
synced 2024-11-07 03:20:39 +00:00
Added a Grid example to the presentation.
This commit is contained in:
parent
91a6ff44b6
commit
fc2a37cc86
59
demos/presentation/grid.go
Normal file
59
demos/presentation/grid.go
Normal file
@ -0,0 +1,59 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/gdamore/tcell"
|
||||
"github.com/rivo/tview"
|
||||
)
|
||||
|
||||
// Grid demonstrates the grid layout.
|
||||
func Grid(nextSlide func()) (title string, content tview.Primitive) {
|
||||
modalShown := false
|
||||
pages := tview.NewPages()
|
||||
|
||||
newPrimitive := func(text string) tview.Primitive {
|
||||
return tview.NewTextView().
|
||||
SetTextAlign(tview.AlignCenter).
|
||||
SetText(text).
|
||||
SetDoneFunc(func(key tcell.Key) {
|
||||
if modalShown {
|
||||
nextSlide()
|
||||
modalShown = false
|
||||
} else {
|
||||
pages.ShowPage("modal")
|
||||
modalShown = true
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
menu := newPrimitive("Menu")
|
||||
main := newPrimitive("Main content")
|
||||
sideBar := newPrimitive("Side Bar")
|
||||
|
||||
grid := tview.NewGrid().
|
||||
SetRows(3, 0, 3).
|
||||
SetColumns(0, -4, 0).
|
||||
SetBorders(true).
|
||||
AddItem(newPrimitive("Header"), 0, 0, 1, 3, 0, 0, true).
|
||||
AddItem(newPrimitive("Footer"), 2, 0, 1, 3, 0, 0, false)
|
||||
|
||||
// Layout for screens narrower than 100 cells (menu and side bar are hidden).
|
||||
grid.AddItem(menu, 0, 0, 0, 0, 0, 0, false).
|
||||
AddItem(main, 1, 0, 1, 3, 0, 0, false).
|
||||
AddItem(sideBar, 0, 0, 0, 0, 0, 0, false)
|
||||
|
||||
// Layout for screens wider than 100 cells.
|
||||
grid.AddItem(menu, 1, 0, 1, 1, 0, 100, false).
|
||||
AddItem(main, 1, 1, 1, 1, 0, 100, false).
|
||||
AddItem(sideBar, 1, 2, 1, 1, 0, 100, false)
|
||||
|
||||
modal := tview.NewModal().
|
||||
SetText("Resize the window to see how the grid layout adapts").
|
||||
AddButtons([]string{"Ok"}).SetDoneFunc(func(buttonIndex int, buttonLabel string) {
|
||||
pages.HidePage("modal")
|
||||
})
|
||||
|
||||
pages.AddPage("grid", grid, true, true).
|
||||
AddPage("modal", modal, false, false)
|
||||
|
||||
return "Grid", pages
|
||||
}
|
@ -41,6 +41,7 @@ func main() {
|
||||
TextView2,
|
||||
Table,
|
||||
Flex,
|
||||
Grid,
|
||||
Colors,
|
||||
End,
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user