From f9d551a4197be7454a5024b899d2b22fe8f88ca4 Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Mon, 29 Apr 2019 13:21:37 -0500 Subject: [PATCH] Added #root and #value= to Element, Label now uses #value= and #root. --- lib/cyberarm_engine/ui/element.rb | 20 ++++++++++++++++++++ lib/cyberarm_engine/ui/label.rb | 9 +++++++++ 2 files changed, 29 insertions(+) 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