From 2a8e852b1597c9740f687ca561f7436c2a826a86 Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Tue, 23 Jun 2020 09:51:36 -0500 Subject: [PATCH] Added support for passing a filter method/proc to EditLine --- lib/cyberarm_engine/ui/elements/edit_line.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/cyberarm_engine/ui/elements/edit_line.rb b/lib/cyberarm_engine/ui/elements/edit_line.rb index 6b29467..49f56e0 100644 --- a/lib/cyberarm_engine/ui/elements/edit_line.rb +++ b/lib/cyberarm_engine/ui/elements/edit_line.rb @@ -2,6 +2,7 @@ module CyberarmEngine class Element class EditLine < Button def initialize(text, options = {}, block = nil) + @filter = options.delete(:filter) super(text, options, block) @type = default(:type) @@ -17,6 +18,14 @@ module CyberarmEngine @text_input.text = text @last_text_value = text + if @filter && @filter.respond_to?(:call) + @text_input.instance_variable_set(:@filter, @filter) + + def @text_input.filter(text_in) + @filter.call(text_in) + end + end + @offset_x, @offset_y = 0, 0 event(:begin_drag)