class TextFieldWidget

Attributes

active[RW]
value[RW]

Public Class Methods

new(screen, value, x, y, w, h) click to toggle source
# File lib/widget/text-field-widget.rb, line 4
def initialize(screen, value, x, y, w, h)
    @active = false
    @screen = screen
    @value  = value
    @x      = x
    @y      = y
    @w      = w
    @h      = h
end

Public Instance Methods

draw() click to toggle source
# File lib/widget/text-field-widget.rb, line 29
def draw
    @value ||= ""
    value = @value

    if(value.empty?)
        (0..@h).each do |x|
            value += "_"*@w+"\n"
        end
    end

    @screen.setpos(@y,@x)
    @screen.attron Curses::A_BOLD if @active
    @screen.addstr(value)
    @screen.attroff Curses::A_BOLD if @active
end
handle(chr) click to toggle source
# File lib/widget/text-field-widget.rb, line 14
def handle(chr)
    if(chr.class == String && chr.match(/[[:print:]\n]/))
        @value += chr
        true
    elsif(chr == Curses::KEY_ENTER || chr == 13)
        @value += "\n"
        true
    elsif(chr == Curses::KEY_BACKSPACE || chr == 127)
        @value = @value[0..-2]
        true
    else
        false
    end
end