From 8f3d9ff193c29e97505c34da3e0f76c1e4a73ad0 Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Thu, 27 Jun 2019 17:23:15 -0500 Subject: [PATCH] added Element#inner_width and Element#inner_height methods, EditLine now resets caret blink cycle when clicked --- lib/cyberarm_engine/ui/element.rb | 12 ++++++++++-- lib/cyberarm_engine/ui/elements/edit_line.rb | 3 +++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/cyberarm_engine/ui/element.rb b/lib/cyberarm_engine/ui/element.rb index 61b1bf4..0797ea2 100644 --- a/lib/cyberarm_engine/ui/element.rb +++ b/lib/cyberarm_engine/ui/element.rb @@ -162,7 +162,7 @@ module CyberarmEngine def width if visible? - (@style.border_thickness_left + @style.padding_left) + @width + (@style.padding_right + @style.border_thickness_right) + inner_width + @width else 0 end @@ -172,9 +172,13 @@ module CyberarmEngine @style.margin_left + width + @style.margin_right end + def inner_width + (@style.border_thickness_left + @style.padding_left) + (@style.padding_right + @style.border_thickness_right) + end + def height if visible? - (@style.border_thickness_top + @style.padding_top) + @height + (@style.padding_bottom + @style.border_thickness_bottom) + inner_height + @height else 0 end @@ -184,6 +188,10 @@ module CyberarmEngine @style.margin_top + height + @style.margin_bottom end + def inner_height + (@style.border_thickness_top + @style.padding_top) + (@style.padding_bottom + @style.border_thickness_bottom) + end + private def dimensional_size(size, dimension) raise "dimension must be either :width or :height" unless dimension == :width || dimension == :height if size && size.is_a?(Numeric) diff --git a/lib/cyberarm_engine/ui/elements/edit_line.rb b/lib/cyberarm_engine/ui/elements/edit_line.rb index 1146e8d..98deece 100644 --- a/lib/cyberarm_engine/ui/elements/edit_line.rb +++ b/lib/cyberarm_engine/ui/elements/edit_line.rb @@ -43,6 +43,9 @@ module CyberarmEngine def left_mouse_button(sender, x, y) super window.text_input = @text_input + + @caret_last_interval = Gosu.milliseconds + @show_caret = true end def enter(sender)