diff options
Diffstat (limited to 'engine/Dynamic')
| -rw-r--r-- | engine/Dynamic/Descriptors/UIElement.go | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/engine/Dynamic/Descriptors/UIElement.go b/engine/Dynamic/Descriptors/UIElement.go index da523e9..0e59c9a 100644 --- a/engine/Dynamic/Descriptors/UIElement.go +++ b/engine/Dynamic/Descriptors/UIElement.go @@ -14,6 +14,9 @@ type UIElementDescriptor struct { Weight float32 Style StyleDescriptor + // For recursive elements + BackgroundElement *UIElementDescriptor + // For labels Text string Alignment string @@ -64,11 +67,22 @@ func parseAsLabel(base *UIElementDescriptor) ui.UIElement { alignment = ui.Start } + var child ui.UIElement = nil + if base.BackgroundElement != nil { + var parsed, err = base.BackgroundElement.Parse() + if err == nil { + child = parsed + } else { + rl.TraceLog(rl.LogWarning, "Failed to parse a background element of a label: %v", err.Error()) + } + } + return &ui.Label { Weight: base.Weight, Text: base.Text, Alignment: alignment, Style: base.Style.Parse(), + BackgroundElement: child, } } @@ -111,7 +125,7 @@ func parseAsGridColumn(base *UIElementDescriptor) ui.UIElement { func parseAsImage(base *UIElementDescriptor) ui.UIElement { var texture, err = components.Resources.Textures.GetTextureByName(base.TextureName) if err != nil { - rl.TraceLog(rl.LogWarning, "Failed to parse a texture %s requested by an inage UI element: %v", base.TextureName, err.Error()) + rl.TraceLog(rl.LogWarning, "Failed to parse a texture %s requested by an image UI element: %v", base.TextureName, err.Error()) return nil } var outp = ui.Image { |
