mirror of
https://github.com/cyberarm/cyberarm_engine.git
synced 2025-12-16 21:22:33 +00:00
Improved Container element margin handling, image is now clickable
This commit is contained in:
@@ -129,18 +129,21 @@ module CyberarmEngine
|
|||||||
@width = @origin_width
|
@width = @origin_width
|
||||||
@height= @origin_height
|
@height= @origin_height
|
||||||
|
|
||||||
padded_margin = 0
|
widest_element = nil
|
||||||
@elements.reverse.each do |e|
|
highest_element = nil
|
||||||
if defined?(e.margin)
|
|
||||||
padded_margin = e.margin
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
@elements.each do |element|
|
@elements.each do |element|
|
||||||
flow(element) if @mode == :flow
|
flow(element) if @mode == :flow
|
||||||
stack(element) if @mode == :stack
|
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 = 0
|
||||||
margin = element.margin if defined?(element.margin)
|
margin = element.margin if defined?(element.margin)
|
||||||
case @mode
|
case @mode
|
||||||
@@ -153,8 +156,8 @@ module CyberarmEngine
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@width += padded_margin unless @origin_width.nonzero?
|
@width += widest_element.margin if widest_element && !@origin_width.nonzero?
|
||||||
@height += padded_margin unless @origin_height.nonzero?
|
@height += highest_element.margin if highest_element && !@origin_height.nonzero?
|
||||||
end
|
end
|
||||||
|
|
||||||
def flow(element)
|
def flow(element)
|
||||||
|
|||||||
@@ -27,6 +27,15 @@ module CyberarmEngine
|
|||||||
@image.draw(relative_x + @padding, relative_y + @padding, @z + 2, @scale_x, @scale_y) # TODO: Add color support?
|
@image.draw(relative_x + @padding, relative_y + @padding, @z + 2, @scale_x, @scale_y) # TODO: Add color support?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def button_up(id)
|
||||||
|
case id
|
||||||
|
when Gosu::MsLeft
|
||||||
|
if mouse_over?
|
||||||
|
@block.call(self) if @block
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def recalculate
|
def recalculate
|
||||||
@width = @image.width * @scale_x
|
@width = @image.width * @scale_x
|
||||||
@height = @image.height * @scale_y
|
@height = @image.height * @scale_y
|
||||||
|
|||||||
Reference in New Issue
Block a user