diff --git a/lib/cyberarm_engine/ui/element.rb b/lib/cyberarm_engine/ui/element.rb index c290086..2c6999b 100644 --- a/lib/cyberarm_engine/ui/element.rb +++ b/lib/cyberarm_engine/ui/element.rb @@ -186,6 +186,22 @@ module CyberarmEngine @border_canvas.update end + def root + unless @root && @root.parent.nil? + @root = parent + + loop do + if @root.parent.nil? + break + else + @root = @root.parent + end + end + end + + @root + end + def recalculate raise "#{self.class}#recalculate was not overridden!" end @@ -193,5 +209,9 @@ module CyberarmEngine def value raise "#{self.class}#value was not overridden!" end + + def value=(value) + raise "#{self.class}#value= was not overridden!" + end end end \ No newline at end of file diff --git a/lib/cyberarm_engine/ui/label.rb b/lib/cyberarm_engine/ui/label.rb index 4aeed2f..86db4c2 100644 --- a/lib/cyberarm_engine/ui/label.rb +++ b/lib/cyberarm_engine/ui/label.rb @@ -30,5 +30,14 @@ module CyberarmEngine def value @text.text end + + def value=(value) + @text.text = value + + old_width, old_height = width, height + recalculate + + root.recalculate if old_width != width || old_height != height + end end end \ No newline at end of file