diff options
| author | physcik <mynameisgennadiy@vk.com> | 2026-03-27 15:38:35 +0500 |
|---|---|---|
| committer | physcik <mynameisgennadiy@vk.com> | 2026-03-27 15:38:35 +0500 |
| commit | 34e63154d2c683c6f30b3d0d524b1e11331ea27e (patch) | |
| tree | 9350305338c115e81ad51c00fc1c83b62ffccda5 /engine/UI | |
| parent | 6f1a05cfa4d9323b55dc4da3221d10c58c2327d4 (diff) | |
Added background elements to grid row and column
Diffstat (limited to 'engine/UI')
| -rw-r--r-- | engine/UI/GridColumn.go | 14 | ||||
| -rw-r--r-- | engine/UI/GridRow.go | 18 | ||||
| -rw-r--r-- | engine/UI/Label.go | 8 |
3 files changed, 34 insertions, 6 deletions
diff --git a/engine/UI/GridColumn.go b/engine/UI/GridColumn.go index 46c12ad..42c1eed 100644 --- a/engine/UI/GridColumn.go +++ b/engine/UI/GridColumn.go @@ -13,6 +13,7 @@ type GridColumn struct { Spacing float32 // Styling preferences Style Style `json:"-"` + BackgroundElement UIElement location rl.Rectangle cache layoutCache @@ -26,6 +27,18 @@ func (base *GridColumn) Init(parent *Menu) { base.cache = layoutCache { ScreenResolution: rl.Vector2{ X:0, Y:0 }, } + + if base.BackgroundElement != nil { + base.BackgroundElement.Init(parent) + } +} + +func (base *GridColumn) GetStyle() *Style { + return &base.Style +} + +func (base *GridColumn) GetBackgroundElement() UIElement { + return base.BackgroundElement } func (base *GridColumn) Destroy() { @@ -41,6 +54,7 @@ func (base *GridColumn) Draw(span *rl.Rectangle) { if !base.cache.IsValid() { base.RecalculateCache(span) } + drawStackedElementBackground(base, span) for i, v := range base.Objects { var offset = base.cache.RowLocations[i] // rl.TraceLog(rl.LogInfo, "Cache: %v", base.cache) diff --git a/engine/UI/GridRow.go b/engine/UI/GridRow.go index 58d834d..3b6d90d 100644 --- a/engine/UI/GridRow.go +++ b/engine/UI/GridRow.go @@ -18,9 +18,10 @@ type GridRow struct { Spacing float32 // Styling preferences Style Style `json:"-"` + BackgroundElement UIElement location rl.Rectangle - cache layoutCache + cache *layoutCache } func (base *GridRow) GetElements() []UIElement { @@ -36,14 +37,26 @@ func (base *GridRow) Init(parent *Menu) { for _, v := range base.Objects { v.Init(parent) } - base.cache = layoutCache { + base.cache = &layoutCache { ScreenResolution: rl.Vector2{ X:0, Y:0 }, } + + if base.BackgroundElement != nil { + base.BackgroundElement.Init(parent) + } } func (base *GridRow) Destroy() { } +func (base *GridRow) GetStyle() *Style { + return &base.Style +} + +func (base *GridRow) GetBackgroundElement() UIElement { + return base.BackgroundElement +} + // Gets the scale width of the element. Works similar to CSS's 'flex-grow' func (base *GridRow) GetOccupationWeight() float32 { return base.Weight @@ -54,6 +67,7 @@ func (base *GridRow) Draw(span *rl.Rectangle) { if !base.cache.IsValid() { base.RecalculateCache(span) } + drawStackedElementBackground(base, span) for i, v := range base.Objects { var offset = base.cache.RowLocations[i] // rl.TraceLog(rl.LogInfo, "Cache: %v", base.cache) diff --git a/engine/UI/Label.go b/engine/UI/Label.go index 64bb8d0..53157d9 100644 --- a/engine/UI/Label.go +++ b/engine/UI/Label.go @@ -53,10 +53,6 @@ func (base *Label) Init(menu *Menu) { func (base *Label) Destroy() { } -func (base *Label) GetBackgroundElement() UIElement { - return base.BackgroundElement -} - func (base *Label) GetOccupationWeight() float32 { return base.Weight } @@ -80,6 +76,10 @@ func (base *Label) GetStyle() *Style { return &base.Style } +func (base *Label) GetBackgroundElement() UIElement { + return base.BackgroundElement +} + // Returns the size of the text that will not overflow in the side func (base *Label) getTextHeight(position *rl.Rectangle) int32 { var width = position.Width - 2 * *base.Style.Padding |
