From 31687598e5480bb9af0038cd336d9bce7d126a9c Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Mon, 4 Feb 2019 15:57:15 -0600 Subject: [PATCH] Containers now have fixed widths and heights and their content uses internal_width and internal_height to position. --- lib/cyberarm_engine/ui/container.rb | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/cyberarm_engine/ui/container.rb b/lib/cyberarm_engine/ui/container.rb index b2ad551..3cfe368 100644 --- a/lib/cyberarm_engine/ui/container.rb +++ b/lib/cyberarm_engine/ui/container.rb @@ -129,6 +129,12 @@ module CyberarmEngine @width = @origin_width @height= @origin_height + if @parent + neighbors = @parent.children.size > 0 ? @parent.children.size : 1 + @width = @parent.width / neighbors + @height = @parent.height / neighbors + end + widest_element = nil last_element = nil @@ -148,16 +154,16 @@ module CyberarmEngine margin = element.margin if defined?(element.margin) case @mode when :flow - @width += element.width + margin unless @origin_width.nonzero? - @height = element.height + margin if element.height + margin > @height + margin unless @origin_height.nonzero? + @internal_width += element.width + margin unless @origin_width.nonzero? + @internal_height = element.height + margin if element.height + margin > @internal_height + margin unless @origin_height.nonzero? when :stack - @width = element.width + margin if element.width + margin > @width + margin unless @origin_width.nonzero? - @height += element.height + margin unless @origin_height.nonzero? + @internal_width = element.width + margin if element.width + margin > @internal_width + margin unless @origin_width.nonzero? + @internal_height += element.height + margin unless @origin_height.nonzero? end end - @width += widest_element.margin if widest_element && !@origin_width.nonzero? - @height += last_element.margin if last_element && !@origin_height.nonzero? + @internal_width += widest_element.margin if widest_element && !@origin_width.nonzero? + @internal_height += last_element.margin if last_element && !@origin_height.nonzero? end def flow(element)