# class Reline::LineEditor::Dialog

### Attributes

column [RW]
contents [R]
name [R]
pointer [RW]
scroll_top [RW]
trap_key [RW]
vertical_offset [RW]
width [R]

### Public Class Methods

new (name, config, proc_scope)
Source

    # File lib/reline/line_editor.rb, line 651
    def initialize(name, config, proc_scope)
      @name = name
      @config = config
      @proc_scope = proc_scope
      @width = nil
      @scroll_top = 0
      @trap_key = nil
    end

### Public Instance Methods

call (key)
Source

    # File lib/reline/line_editor.rb, line 675
    def call(key)
      @proc_scope.set_dialog(self)
      @proc_scope.set_key(key)
      dialog_render_info = @proc_scope.call
      if @trap_key
        if @trap_key.any?{ |i| i.is_a?(Array) } # multiple trap
          @trap_key.each do |t|
            @config.add_oneshot_key_binding(t, @name)
          end
        else
          @config.add_oneshot_key_binding(@trap_key, @name)
        end
      end
      dialog_render_info
    end

contents= (contents)
Source

    # File lib/reline/line_editor.rb, line 668
    def contents=(contents)
      @contents = contents
      if contents and @width.nil?
        @width = contents.map{ |line| Reline::Unicode.calculate_width(line, true) }.max
      end
    end

set_cursor_pos (col, row)
Source

    # File lib/reline/line_editor.rb, line 660
    def set_cursor_pos(col, row)
      @proc_scope.set_cursor_pos(col, row)
    end

width= (v)
Source

    # File lib/reline/line_editor.rb, line 664
    def width=(v)
      @width = v
    end