-
Notifications
You must be signed in to change notification settings - Fork 2
/
tview_flexes.go
100 lines (81 loc) · 1.75 KB
/
tview_flexes.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package tview
import (
"github.com/rivo/tview"
)
type actionsFlex struct {
*tview.Flex
}
func newActionsFlex(
outputView *outputView,
nodeActionsList *nodeActionsList,
) *actionsFlex {
flex := tview.NewFlex()
const borderWidth = 2
flex.
SetDirection(tview.FlexRow).
AddItem(outputView, 0, 1, false).
AddItem(nodeActionsList, nodeActionsList.GetItemCount()+borderWidth, 1, true)
return &actionsFlex{
Flex: flex,
}
}
type mempoolFlex struct {
*tview.Flex
}
func newMempoolFlex(
mempoolTransactionsList *mempoolTransactionsList,
mempoolTransactionDetails *mempoolTransactionDetails,
) *mempoolFlex {
flex := tview.NewFlex()
flex.
AddItem(mempoolTransactionsList, 0, 1, true).
AddItem(mempoolTransactionDetails, 0, 1, false).
SetBorder(true).
SetTitle("Mempool")
return &mempoolFlex{
Flex: flex,
}
}
type nodesFlex struct {
*tview.Flex
}
func newNodesFlex(
nodesList *nodesList,
nodeDetails *nodeDetailsView,
) *nodesFlex {
flex := tview.NewFlex()
const (
nodesListProportion = 1
nodeDetailsProportion = 2 * nodesListProportion
)
flex.
AddItem(nodesList, 0, nodesListProportion, true).
AddItem(nodeDetails, 0, nodeDetailsProportion, false).
SetBorder(true).
SetTitle("Nodes")
return &nodesFlex{
Flex: flex,
}
}
type appFlex struct {
*tview.Flex
}
func newAppFlex(
flex *tview.Flex,
mempoolFlex *mempoolFlex,
actionsFlex *actionsFlex,
nodesFlex *nodesFlex,
footer *tview.TextView,
) *appFlex {
flex.
AddItem(mempoolFlex, 0, 1, false).
AddItem(actionsFlex, 0, 1, true).
AddItem(nodesFlex, 0, 1, false)
outerFlex := tview.NewFlex().
AddItem(flex, 0, 1, true). // Add the inner flex to the outer flex
AddItem(footer, 1, 0, false).
SetDirection(tview.FlexRow)
return &appFlex{
Flex: outerFlex,
}
}