From a92d1ad746afbca03d95f8da149e93f0454ca6aa Mon Sep 17 00:00:00 2001 From: cyberarm Date: Thu, 3 Jun 2021 01:00:13 +0000 Subject: [PATCH] Made Text account for shadow and border effects in width/height methods, made TextBlock support disabled state styling --- lib/cyberarm_engine/text.rb | 10 +++++++--- lib/cyberarm_engine/ui/elements/text_block.rb | 6 ++++++ lib/cyberarm_engine/ui/theme.rb | 5 ++++- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lib/cyberarm_engine/text.rb b/lib/cyberarm_engine/text.rb index 91710fe..03be6b5 100644 --- a/lib/cyberarm_engine/text.rb +++ b/lib/cyberarm_engine/text.rb @@ -128,15 +128,19 @@ module CyberarmEngine end def width(text = @text) - textobject.text_width(text) + textobject.text_width(text) + @border_size + @shadow_size end def markup_width(text = @text) - textobject.markup_width(text) + textobject.markup_width(text) + @border_size + @shadow_size end def height(text = @text) - text.lines.count > 0 ? text.lines.count * textobject.height : @textobject.height + if text.lines.count > 0 + text.lines.count * textobject.height + @border_size + @shadow_size + else + @textobject.height + @border_size + @shadow_size + end end def draw(method = :draw_markup) diff --git a/lib/cyberarm_engine/ui/elements/text_block.rb b/lib/cyberarm_engine/ui/elements/text_block.rb index cd41292..1c6efef 100644 --- a/lib/cyberarm_engine/ui/elements/text_block.rb +++ b/lib/cyberarm_engine/ui/elements/text_block.rb @@ -22,6 +22,12 @@ module CyberarmEngine end def recalculate + unless @enabled + @text.color = @style.disabled[:color] + else + @text.color = @style.color + end + @width = 0 @height = 0 diff --git a/lib/cyberarm_engine/ui/theme.rb b/lib/cyberarm_engine/ui/theme.rb index bd669fe..01eaa55 100644 --- a/lib/cyberarm_engine/ui/theme.rb +++ b/lib/cyberarm_engine/ui/theme.rb @@ -119,7 +119,10 @@ module CyberarmEngine text_align: :left, font: "Arial", margin: 0, - padding: 2 + padding: 2, + disabled: { + color: Gosu::Color.rgb(175, 175, 175), + } }, Banner: { # < TextBlock