# File lib/luck/listbox.rb, line 78
  def redraw
    @display.driver.cursor = false if @display.active_control == self
    
    row = y1
    return unless data
    data[@offset, height].each_with_index do |line, index|
      line = line.to_s
      number = index + @offset + 1
      line = "#{number.to_s.rjust 2}. #{line}" if @numbering
      print @display.color '1;34' if number == @index + 1
      length = line.size
      offset = 0
      while offset < length || offset == 0
        @display.place row, x1, ((' ' * ((offset > 0) ? @hanging_indent : 0)) + line[offset, width - ((offset > 0) ? @hanging_indent : 0)]).ljust(width, ' ')
        row += 1
        offset += width - ((offset > 0) ? @hanging_indent : 0)
        if row >= y2
          print @display.color '0' if number == @index + 1
          break
        end
      end
      print @display.color '0' if number == @index + 1
      break if row >= y2
    end
    
    until row >= y2
      @display.place row, x1, ' ' * width
      row += 1
    end
  end