summaryrefslogtreecommitdiff
path: root/engine/UI
diff options
context:
space:
mode:
authorphyscik <mynameisgennadiy@vk.com>2026-03-27 15:38:35 +0500
committerphyscik <mynameisgennadiy@vk.com>2026-03-27 15:38:35 +0500
commit34e63154d2c683c6f30b3d0d524b1e11331ea27e (patch)
tree9350305338c115e81ad51c00fc1c83b62ffccda5 /engine/UI
parent6f1a05cfa4d9323b55dc4da3221d10c58c2327d4 (diff)
Added background elements to grid row and column
Diffstat (limited to 'engine/UI')
-rw-r--r--engine/UI/GridColumn.go14
-rw-r--r--engine/UI/GridRow.go18
-rw-r--r--engine/UI/Label.go8
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