Sha256: e7487da9cf95f50441dc42889cc473f7d00d0ff4832375427ff79a207c2a6ba0

Contents?: true

Size: 756 Bytes

Versions: 1

Compression:

Stored size: 756 Bytes

Contents

module Luck
class TextBox < Label
  attr_accessor :multiline, :handler, :label
  
  def initialize *args
    @label = ''
    @text = 'Input box'
    super
  end
  
  def redraw
    super
    
    case @alignment
      when :center
        text.center width
      when :right
        text.rjust width
      else
        @display.place y1, x1 + text.size, "\e[s"
    end
    #print "\e[s" # save
  end
  
  def on_submit &blck
    @handler = blck
  end
  
  def text
    return @text if @label.empty?
    "#{@label}: #{@text}"
  end
  
  def handle_char char
    if char == "\n" && !@multiline
      @handler.call @text if @handler
      @text = ''
    elsif char == "\177"
      @text.slice! -1
    else
      @text += char
    end
    redraw
  end
end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
luck-0.0.0 lib/luck/textbox.rb