mirror of
https://github.com/cyberarm/cyberarm_engine.git
synced 2025-12-15 04:32:35 +00:00
Style fixes, wip layout speed up work
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
PATH
|
||||
remote: .
|
||||
specs:
|
||||
cyberarm_engine (0.24.4)
|
||||
cyberarm_engine (0.24.5)
|
||||
gosu (~> 1.1)
|
||||
|
||||
GEM
|
||||
@@ -13,6 +13,7 @@ GEM
|
||||
|
||||
PLATFORMS
|
||||
x64-mingw-ucrt
|
||||
x86_64-linux
|
||||
|
||||
DEPENDENCIES
|
||||
bundler (~> 2.2)
|
||||
@@ -21,4 +22,4 @@ DEPENDENCIES
|
||||
rake (~> 13.0)
|
||||
|
||||
BUNDLED WITH
|
||||
2.5.3
|
||||
2.6.8
|
||||
|
||||
@@ -7,13 +7,13 @@ module CyberarmEngine
|
||||
attr_reader :children, :gui_state, :scroll_position, :scroll_target_position
|
||||
|
||||
def self.current_container
|
||||
@@current_container
|
||||
@current_container
|
||||
end
|
||||
|
||||
def self.current_container=(container)
|
||||
raise ArgumentError, "Expected container to an an instance of CyberarmEngine::Element::Container, got #{container.class}" unless container.is_a?(CyberarmEngine::Element::Container)
|
||||
|
||||
@@current_container = container
|
||||
@current_container = container
|
||||
end
|
||||
|
||||
def initialize(options = {}, block = nil)
|
||||
@@ -26,6 +26,11 @@ module CyberarmEngine
|
||||
@scroll_chunk = 120
|
||||
@scroll_speed = 40
|
||||
|
||||
if @gui_state
|
||||
@width = window.width
|
||||
@height = window.height
|
||||
end
|
||||
|
||||
@text_color = options[:color]
|
||||
|
||||
@children = []
|
||||
@@ -34,7 +39,7 @@ module CyberarmEngine
|
||||
end
|
||||
|
||||
def build
|
||||
@block.call(self) if @block
|
||||
@block&.call(self)
|
||||
|
||||
root.gui_state.request_recalculate_for(self)
|
||||
end
|
||||
@@ -53,7 +58,7 @@ module CyberarmEngine
|
||||
old_container = CyberarmEngine::Element::Container.current_container
|
||||
|
||||
CyberarmEngine::Element::Container.current_container = self
|
||||
block.call(self) if block
|
||||
block&.call(self)
|
||||
|
||||
CyberarmEngine::Element::Container.current_container = old_container
|
||||
|
||||
@@ -66,7 +71,7 @@ module CyberarmEngine
|
||||
old_container = CyberarmEngine::Element::Container.current_container
|
||||
|
||||
CyberarmEngine::Element::Container.current_container = self
|
||||
block.call(self) if block
|
||||
block&.call(self)
|
||||
|
||||
CyberarmEngine::Element::Container.current_container = old_container
|
||||
|
||||
@@ -89,9 +94,7 @@ module CyberarmEngine
|
||||
def debug_draw
|
||||
super
|
||||
|
||||
@children.each do |child|
|
||||
child.debug_draw
|
||||
end
|
||||
@children.each(&:debug_draw)
|
||||
end
|
||||
|
||||
def update
|
||||
@@ -111,7 +114,7 @@ module CyberarmEngine
|
||||
|
||||
case child
|
||||
when Container
|
||||
if element = child.hit_element?(child_x, child_y)
|
||||
if (element = child.hit_element?(child_x, child_y))
|
||||
return element
|
||||
end
|
||||
else
|
||||
@@ -207,7 +210,7 @@ module CyberarmEngine
|
||||
end
|
||||
end
|
||||
|
||||
# t = Gosu.milliseconds
|
||||
t = Gosu.milliseconds
|
||||
# Move children to parent after positioning
|
||||
@children.each do |child|
|
||||
child.x += (@x + @style.border_thickness_left) - style.margin_left
|
||||
@@ -221,7 +224,7 @@ module CyberarmEngine
|
||||
|
||||
update_child_element_visibity(child)
|
||||
end
|
||||
# puts "TOOK: #{Gosu.milliseconds - t}ms to recalculate #{self.class}:0x#{self.object_id.to_s(16)}'s #{@children.count} children"
|
||||
puts "TOOK: #{Gosu.milliseconds - t}ms to recalculate #{self.class}:0x#{object_id.to_s(16)}'s #{@children.count} children"
|
||||
|
||||
update_background
|
||||
|
||||
@@ -299,15 +302,15 @@ module CyberarmEngine
|
||||
return unless @style.scroll
|
||||
|
||||
# Allow overscrolling UP, only if one can scroll DOWN
|
||||
if height < scroll_height
|
||||
if @scroll_target_position.y > 0
|
||||
@scroll_target_position.y = @scroll_chunk
|
||||
else
|
||||
@scroll_target_position.y += @scroll_chunk
|
||||
end
|
||||
return unless height < scroll_height
|
||||
|
||||
return :handled
|
||||
if @scroll_target_position.y.positive?
|
||||
@scroll_target_position.y = @scroll_chunk
|
||||
else
|
||||
@scroll_target_position.y += @scroll_chunk
|
||||
end
|
||||
|
||||
:handled
|
||||
end
|
||||
|
||||
def mouse_wheel_down(sender, x, y)
|
||||
@@ -315,13 +318,13 @@ module CyberarmEngine
|
||||
|
||||
return unless height < scroll_height
|
||||
|
||||
if @scroll_target_position.y > 0
|
||||
if @scroll_target_position.y.positive?
|
||||
@scroll_target_position.y = -@scroll_chunk
|
||||
else
|
||||
@scroll_target_position.y -= @scroll_chunk
|
||||
end
|
||||
|
||||
return :handled
|
||||
:handled
|
||||
end
|
||||
|
||||
def scroll_jump_to_top(sender, x, y)
|
||||
@@ -330,7 +333,7 @@ module CyberarmEngine
|
||||
@scroll_position.y = 0
|
||||
@scroll_target_position.y = 0
|
||||
|
||||
return :handled
|
||||
:handled
|
||||
end
|
||||
|
||||
def scroll_jump_to_end(sender, x, y)
|
||||
@@ -339,7 +342,7 @@ module CyberarmEngine
|
||||
@scroll_position.y = -max_scroll_height
|
||||
@scroll_target_position.y = -max_scroll_height
|
||||
|
||||
return :handled
|
||||
:handled
|
||||
end
|
||||
|
||||
def scroll_page_up(sender, x, y)
|
||||
@@ -349,7 +352,7 @@ module CyberarmEngine
|
||||
@scroll_position.y = 0 if @scroll_position.y > 0
|
||||
@scroll_target_position.y = @scroll_position.y
|
||||
|
||||
return :handled
|
||||
:handled
|
||||
end
|
||||
|
||||
def scroll_page_down(sender, x, y)
|
||||
@@ -359,7 +362,7 @@ module CyberarmEngine
|
||||
@scroll_position.y = -max_scroll_height if @scroll_position.y < -max_scroll_height
|
||||
@scroll_target_position.y = @scroll_position.y
|
||||
|
||||
return :handled
|
||||
:handled
|
||||
end
|
||||
|
||||
def scroll_top
|
||||
|
||||
@@ -57,7 +57,8 @@ module CyberarmEngine
|
||||
Stats.frame.start_timing(:gui_element_recalculate_requests)
|
||||
|
||||
# puts "PENDING REQUESTS: #{@pending_element_recalculate_requests.size}" if @pending_element_recalculate_requests.size.positive?
|
||||
@pending_element_recalculate_requests.each(&:recalculate)
|
||||
@pending_recalculate_request = true if @pending_element_recalculate_requests.size.positive?
|
||||
# @pending_element_recalculate_requests.each(&:recalculate)
|
||||
@pending_element_recalculate_requests.clear
|
||||
|
||||
Stats.frame.end_timing(:gui_element_recalculate_requests)
|
||||
|
||||
Reference in New Issue
Block a user