Align convert footer to single tinted bar with actions
This commit is contained in:
parent
851230e1ea
commit
a63c1154a2
19
main.go
19
main.go
|
|
@ -114,8 +114,8 @@ func statusStrip(bar *ui.ConversionStatsBar) fyne.CanvasObject {
|
||||||
return container.NewMax(bg, content)
|
return container.NewMax(bg, content)
|
||||||
}
|
}
|
||||||
|
|
||||||
// moduleFooter stacks the dark status strip above a tinted action/footer area.
|
// moduleFooter creates a single tinted footer bar with the dark status strip overlaid.
|
||||||
// Pass a content node for module-specific footer controls; use layout.NewSpacer() if empty.
|
// If content is nil, a spacer is used.
|
||||||
func moduleFooter(tint color.Color, content fyne.CanvasObject, bar *ui.ConversionStatsBar) fyne.CanvasObject {
|
func moduleFooter(tint color.Color, content fyne.CanvasObject, bar *ui.ConversionStatsBar) fyne.CanvasObject {
|
||||||
if content == nil {
|
if content == nil {
|
||||||
content = layout.NewSpacer()
|
content = layout.NewSpacer()
|
||||||
|
|
@ -123,7 +123,8 @@ func moduleFooter(tint color.Color, content fyne.CanvasObject, bar *ui.Conversio
|
||||||
bg := canvas.NewRectangle(tint)
|
bg := canvas.NewRectangle(tint)
|
||||||
bg.SetMinSize(fyne.NewSize(0, 44))
|
bg.SetMinSize(fyne.NewSize(0, 44))
|
||||||
tinted := container.NewMax(bg, container.NewPadded(content))
|
tinted := container.NewMax(bg, container.NewPadded(content))
|
||||||
return container.NewVBox(statusStrip(bar), tinted)
|
// Overlay the status strip above the tinted bar to keep a single bar visual
|
||||||
|
return container.NewStack(tinted, statusStrip(bar))
|
||||||
}
|
}
|
||||||
|
|
||||||
// resolveTargetAspect resolves an aspect ratio value or source aspect
|
// resolveTargetAspect resolves an aspect ratio value or source aspect
|
||||||
|
|
@ -5998,18 +5999,16 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject {
|
||||||
// Update stats bar
|
// Update stats bar
|
||||||
state.updateStatsBar()
|
state.updateStatsBar()
|
||||||
|
|
||||||
// Stack status + snippet + actions tightly to avoid dead air, outside the scroll area.
|
scrollableMain := container.NewVScroll(mainContent)
|
||||||
// Keep snippet/actions above the consistent status bar
|
|
||||||
scrollableMain := container.NewVScroll(container.NewVBox(
|
footerContent := container.NewVBox(
|
||||||
mainContent,
|
|
||||||
widget.NewSeparator(),
|
|
||||||
snippetConfigRow,
|
snippetConfigRow,
|
||||||
snippetRow,
|
snippetRow,
|
||||||
widget.NewSeparator(),
|
widget.NewSeparator(),
|
||||||
actionBar,
|
actionBar,
|
||||||
))
|
)
|
||||||
|
|
||||||
return container.NewBorder(backBar, moduleFooter(convertColor, layout.NewSpacer(), state.statsBar), nil, nil, container.NewMax(scrollableMain))
|
return container.NewBorder(backBar, moduleFooter(convertColor, footerContent, state.statsBar), nil, nil, container.NewMax(scrollableMain))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user