54 lines
1.0 KiB
Go
54 lines
1.0 KiB
Go
|
package screen
|
||
|
|
||
|
import (
|
||
|
"bitbucket.org/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
|
||
|
}
|