def delete_at ix
      return unless @list
      raise ArgumentError, "Argument must be within 0 and #{@list.length}" if ix < 0 or ix >=  @list.length
      fire_dimension_changed
      #@list.delete_at(ix + @_header_adjustment)
      @list.delete_at(ix)
    end
def delete_at ix
      return unless @list
      raise ArgumentError, "Argument must be within 0 and #{@list.length}" if ix < 0 or ix >=  @list.length
      fire_dimension_changed
      #@list.delete_at(ix + @_header_adjustment)
      @list.delete_at(ix)
    end
delete a data row at index

 NOTE : This does not adjust for header_adjustment. So zero will refer to the header if there is one.
   This is to keep consistent with textpad which does not know of header_adjustment and uses the actual
   index. Usually, programmers will be dealing with +@current_index+