ui/screen/decorators.go
2024-08-06 10:31:43 +02:00

54 lines
1.0 KiB
Go

package screen
import (
"gitea.hevanto-it.com/hevanto/ui/uiwidget"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/layout"
)
func applyDecorators(
e *Element,
obj fyne.CanvasObject,
) (
decorator fyne.CanvasObject,
) {
decorator = obj
if e.Decorators != nil {
for _, dec := range e.Decorators {
switch dec {
case "Border":
decorator = uiwidget.NewWidgetBorder(decorator)
case "HCenter":
decorator = container.NewHBox(
layout.NewSpacer(),
decorator,
layout.NewSpacer())
case "HLeading":
decorator = container.NewHBox(
decorator,
layout.NewSpacer())
case "HTrailing":
decorator = container.NewHBox(
layout.NewSpacer(),
decorator)
case "VCenter":
decorator = container.NewVBox(
layout.NewSpacer(),
decorator,
layout.NewSpacer())
case "VLeading":
decorator = container.NewVBox(
decorator,
layout.NewSpacer())
case "VTrailing":
decorator = container.NewVBox(
layout.NewSpacer(),
decorator)
}
}
}
return
}