Improved Container element margin handling, image is now clickable

This commit is contained in:
2019-02-02 08:38:52 -06:00
parent 3059e962fb
commit 1dbe69167d
2 changed files with 21 additions and 9 deletions

View File

@@ -129,18 +129,21 @@ module CyberarmEngine
@width = @origin_width
@height= @origin_height
padded_margin = 0
@elements.reverse.each do |e|
if defined?(e.margin)
padded_margin = e.margin
break
end
end
widest_element = nil
highest_element = nil
@elements.each do |element|
flow(element) if @mode == :flow
stack(element) if @mode == :stack
if element.is_a?(Element)
widest_element ||= element
highest_element ||= element
widest_element = element if element.width > widest_element.width
highest_element = element if element.height > widest_element.height
end
margin = 0
margin = element.margin if defined?(element.margin)
case @mode
@@ -153,8 +156,8 @@ module CyberarmEngine
end
end
@width += padded_margin unless @origin_width.nonzero?
@height += padded_margin unless @origin_height.nonzero?
@width += widest_element.margin if widest_element && !@origin_width.nonzero?
@height += highest_element.margin if highest_element && !@origin_height.nonzero?
end
def flow(element)

View File

@@ -27,6 +27,15 @@ module CyberarmEngine
@image.draw(relative_x + @padding, relative_y + @padding, @z + 2, @scale_x, @scale_y) # TODO: Add color support?
end
def button_up(id)
case id
when Gosu::MsLeft
if mouse_over?
@block.call(self) if @block
end
end
end
def recalculate
@width = @image.width * @scale_x
@height = @image.height * @scale_y