From 29fbac7140f61ea7fe89842faeb16d2d1fab0dab Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Tue, 9 Feb 2021 17:41:29 -0600 Subject: [PATCH] Added Container#apend method, EditLine caret will now stay visible while typing, EditLine#value= now sets the value of @text_input --- lib/cyberarm_engine/ui/elements/container.rb | 11 +++++++++++ lib/cyberarm_engine/ui/elements/edit_line.rb | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/lib/cyberarm_engine/ui/elements/container.rb b/lib/cyberarm_engine/ui/elements/container.rb index ba7a461..5dcb392 100644 --- a/lib/cyberarm_engine/ui/elements/container.rb +++ b/lib/cyberarm_engine/ui/elements/container.rb @@ -45,6 +45,17 @@ module CyberarmEngine root.gui_state.request_recalculate end + def apend(&block) + old_container = $__current_container__ + + $__current_container__ = self + block.call(self) if block + + $__current_container__ = old_container + + root.gui_state.request_recalculate + end + def render Gosu.clip_to(@x, @y, width, height) do @children.each(&:draw) diff --git a/lib/cyberarm_engine/ui/elements/edit_line.rb b/lib/cyberarm_engine/ui/elements/edit_line.rb index 31a17aa..2a4b65e 100644 --- a/lib/cyberarm_engine/ui/elements/edit_line.rb +++ b/lib/cyberarm_engine/ui/elements/edit_line.rb @@ -67,6 +67,8 @@ module CyberarmEngine if @last_text_value != value @last_text_value = value + @show_caret = true + @caret_last_interval = Gosu.milliseconds publish(:changed, value) end @@ -251,6 +253,10 @@ module CyberarmEngine def value @text_input.text end + + def value=(string) + @text_input.text = string + end end end end