module DialogTui::UserAction
Public Instance Methods
read_char()
click to toggle source
Reads keypresses from the user including 2 and 3 escape character sequences.
# File lib/dialog_tui/user_action/read_char.rb, line 15 def read_char STDIN.echo = false STDIN.raw! input = STDIN.getc.chr if input == "\e" then input << STDIN.read_nonblock(3) rescue nil input << STDIN.read_nonblock(2) rescue nil end ensure STDIN.echo = true STDIN.cooked! return input end
show_single_key()
click to toggle source
oringal case statement from: www.alecjacobson.com/weblog/?p=75
# File lib/dialog_tui/user_action/read_char.rb, line 33 def show_single_key c = read_char case c when " " puts "SPACE" when "\t" puts "TAB" when "\r" puts "RETURN" when "\n" puts "LINE FEED" when "\e" puts "ESCAPE" when "\e[A" puts "UP ARROW" when "\e[B" puts "DOWN ARROW" when "\e[C" puts "RIGHT ARROW" when "\e[D" puts "LEFT ARROW" when "\177" puts "BACKSPACE" when "\004" puts "DELETE" when "\e[3~" puts "ALTERNATE DELETE" when "\u0003" puts "CONTROL-C" exit 0 when /^.$/ puts "SINGLE CHAR HIT: #{c.inspect}" else puts "SOMETHING ELSE: #{c.inspect}" end end
user_action(&block)
click to toggle source
# File lib/dialog_tui/user_action.rb, line 12 def user_action &block UserActions.run &block end