mirror of
https://github.com/eeeXun/GTT.git
synced 2025-05-16 15:50:52 -07:00
refactor: replace AddItem with attachItems
attachItems implements adding multi items & centering items
This commit is contained in:
parent
a44d329cc7
commit
f9775ba89e
88
ui.go
88
ui.go
@ -45,6 +45,13 @@ const (
|
|||||||
Switch pop out window.`
|
Switch pop out window.`
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type Item struct {
|
||||||
|
item tview.Primitive
|
||||||
|
fixedSize int
|
||||||
|
proportion int
|
||||||
|
focus bool
|
||||||
|
}
|
||||||
|
|
||||||
func updateTranslateWindow() {
|
func updateTranslateWindow() {
|
||||||
translateWindow.Clear()
|
translateWindow.Clear()
|
||||||
if hideBelow {
|
if hideBelow {
|
||||||
@ -211,6 +218,21 @@ func attachButton() *tview.Flex {
|
|||||||
AddItem(nil, 0, 1, false)
|
AddItem(nil, 0, 1, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If center is true, it will center the items
|
||||||
|
func attachItems(center bool, direction int, items ...Item) *tview.Flex {
|
||||||
|
container := tview.NewFlex().SetDirection(direction)
|
||||||
|
if center {
|
||||||
|
container.AddItem(nil, 0, 1, false)
|
||||||
|
}
|
||||||
|
for _, item := range items {
|
||||||
|
container.AddItem(item.item, item.fixedSize, item.proportion, item.focus)
|
||||||
|
}
|
||||||
|
if center {
|
||||||
|
container.AddItem(nil, 0, 1, false)
|
||||||
|
}
|
||||||
|
return container
|
||||||
|
}
|
||||||
|
|
||||||
func uiInit() {
|
func uiInit() {
|
||||||
// input/output
|
// input/output
|
||||||
srcInput.SetBorder(true)
|
srcInput.SetBorder(true)
|
||||||
@ -269,54 +291,44 @@ func uiInit() {
|
|||||||
updateTranslateWindow()
|
updateTranslateWindow()
|
||||||
langPopOut.SetDirection(tview.FlexRow).
|
langPopOut.SetDirection(tview.FlexRow).
|
||||||
AddItem(nil, 0, 1, false).
|
AddItem(nil, 0, 1, false).
|
||||||
AddItem(tview.NewFlex().SetDirection(tview.FlexColumn).
|
AddItem(attachItems(true, tview.FlexColumn,
|
||||||
AddItem(nil, 0, 1, false).
|
Item{item: attachItems(false, tview.FlexRow,
|
||||||
AddItem(tview.NewFlex().SetDirection(tview.FlexRow).
|
Item{item: attachItems(true, tview.FlexColumn,
|
||||||
AddItem(tview.NewFlex().SetDirection(tview.FlexColumn).
|
Item{item: attachItems(false, tview.FlexRow,
|
||||||
AddItem(nil, 0, 1, false).
|
Item{item: translatorDropDown, fixedSize: 0, proportion: 1, focus: true}),
|
||||||
AddItem(tview.NewFlex().SetDirection(tview.FlexRow).
|
fixedSize: 0, proportion: 2, focus: true}),
|
||||||
AddItem(translatorDropDown, 0, 1, true),
|
fixedSize: 1, proportion: 1, focus: true},
|
||||||
0, 2, true).
|
Item{item: attachItems(false, tview.FlexColumn,
|
||||||
AddItem(nil, 0, 1, false),
|
Item{item: srcLangDropDown, fixedSize: 0, proportion: 1, focus: false},
|
||||||
1, 1, true).
|
Item{item: dstLangDropDown, fixedSize: 0, proportion: 1, focus: false}),
|
||||||
AddItem(tview.NewFlex().SetDirection(tview.FlexColumn).
|
fixedSize: 0, proportion: 1, focus: false}),
|
||||||
AddItem(srcLangDropDown, langStrMaxLength, 1, false).
|
fixedSize: 2 * langStrMaxLength, proportion: 1, focus: true}),
|
||||||
AddItem(dstLangDropDown, langStrMaxLength, 1, false),
|
|
||||||
0, 1, false),
|
|
||||||
2*langStrMaxLength, 1, true).
|
|
||||||
AddItem(nil, 0, 1, false),
|
|
||||||
popOutWindowHeight, 1, true).
|
popOutWindowHeight, 1, true).
|
||||||
AddItem(attachButton(), 1, 1, false).
|
AddItem(attachButton(), 1, 1, false).
|
||||||
AddItem(nil, 0, 1, false)
|
AddItem(nil, 0, 1, false)
|
||||||
stylePopOut.SetDirection(tview.FlexRow).
|
stylePopOut.SetDirection(tview.FlexRow).
|
||||||
AddItem(nil, 0, 1, false).
|
AddItem(nil, 0, 1, false).
|
||||||
AddItem(tview.NewFlex().SetDirection(tview.FlexColumn).
|
AddItem(attachItems(true, tview.FlexColumn,
|
||||||
AddItem(nil, 0, 1, false).
|
Item{item: attachItems(false, tview.FlexRow,
|
||||||
AddItem(tview.NewFlex().SetDirection(tview.FlexRow).
|
Item{item: attachItems(true, tview.FlexColumn,
|
||||||
AddItem(tview.NewFlex().SetDirection(tview.FlexColumn).
|
Item{item: attachItems(false, tview.FlexRow,
|
||||||
AddItem(nil, 0, 1, false).
|
Item{item: themeDropDown, fixedSize: 0, proportion: 1, focus: true},
|
||||||
AddItem(tview.NewFlex().SetDirection(tview.FlexRow).
|
Item{item: transparentDropDown, fixedSize: 0, proportion: 1, focus: false},
|
||||||
AddItem(themeDropDown, 0, 1, true).
|
Item{item: hideBelowDropDown, fixedSize: 0, proportion: 1, focus: false}),
|
||||||
AddItem(transparentDropDown, 0, 1, false).
|
fixedSize: 0, proportion: 1, focus: true}),
|
||||||
AddItem(hideBelowDropDown, 0, 1, false),
|
fixedSize: 3, proportion: 1, focus: true},
|
||||||
0, 1, true).
|
Item{item: attachItems(false, tview.FlexColumn,
|
||||||
AddItem(nil, 0, 1, false),
|
Item{item: srcBorderDropDown, fixedSize: 0, proportion: 1, focus: false},
|
||||||
3, 1, true).
|
Item{item: dstBorderDropDown, fixedSize: 0, proportion: 1, focus: false}),
|
||||||
AddItem(tview.NewFlex().SetDirection(tview.FlexColumn).
|
fixedSize: 0, proportion: 1, focus: false}),
|
||||||
AddItem(srcBorderDropDown, 0, 1, false).
|
fixedSize: 2 * langStrMaxLength, proportion: 1, focus: true}),
|
||||||
AddItem(dstBorderDropDown, 0, 1, false),
|
|
||||||
0, 1, false),
|
|
||||||
2*langStrMaxLength, 1, true).
|
|
||||||
AddItem(nil, 0, 1, false),
|
|
||||||
popOutWindowHeight, 1, true).
|
popOutWindowHeight, 1, true).
|
||||||
AddItem(attachButton(), 1, 1, false).
|
AddItem(attachButton(), 1, 1, false).
|
||||||
AddItem(nil, 0, 1, false)
|
AddItem(nil, 0, 1, false)
|
||||||
keyMapPopOut.SetDirection(tview.FlexRow).
|
keyMapPopOut.SetDirection(tview.FlexRow).
|
||||||
AddItem(nil, 0, 1, false).
|
AddItem(nil, 0, 1, false).
|
||||||
AddItem(tview.NewFlex().SetDirection(tview.FlexColumn).
|
AddItem(attachItems(true, tview.FlexColumn,
|
||||||
AddItem(nil, 0, 1, false).
|
Item{item: keyMapMenu, fixedSize: 2 * langStrMaxLength, proportion: 1, focus: true}),
|
||||||
AddItem(keyMapMenu, 2*langStrMaxLength, 1, true).
|
|
||||||
AddItem(nil, 0, 1, false),
|
|
||||||
popOutWindowHeight, 1, true).
|
popOutWindowHeight, 1, true).
|
||||||
AddItem(attachButton(), 1, 1, false).
|
AddItem(attachButton(), 1, 1, false).
|
||||||
AddItem(nil, 0, 1, false)
|
AddItem(nil, 0, 1, false)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user