Methods
C
D
G
H
I
K
L
N
S
T
Included Modules
Class Public methods
nearest(y)
# File ext/tk/sample/tkmulticolumnlist.rb, line 126
def self.nearest(y)
  self.index("@1,#{y}").split('.')[0].to_i
end
select_clear(first, last=nil)
# File ext/tk/sample/tkmulticolumnlist.rb, line 130
def self.select_clear(first, last=nil)
  first = "#{first}.0" if first.kind_of?(Integer)
  first = self.index(first.to_s + ' linestart')
  last = first unless last
  last = "#{last}.0" if first.kind_of?(Integer)
  last = self.index(last.to_s + ' + 1 lines linestart')
  @seltag.remove(first, last)
end
select_index()
# File ext/tk/sample/tkmulticolumnlist.rb, line 148
def self.select_index
  self.index(@seltag.first).split('.')[0].to_i
end
select_set(first, last=nil)
# File ext/tk/sample/tkmulticolumnlist.rb, line 139
def self.select_set(first, last=nil)
  first = "#{first}.0" if first.kind_of?(Integer)
  first = self.index(first.to_s + ' linestart')
  last = first unless last
  last = "#{last}.0" if first.kind_of?(Integer)
  last = self.index(last.to_s + ' + 1 lines linestart')
  @seltag.add(first, last)
end
Instance Public methods
columns(*indices)

get listbox widgets

# File ext/tk/sample/tkmulticolumnlist.rb, line 430
def columns(*indices)
  @lbox_list[*indices]
end
command(cmd)

set command

# File ext/tk/sample/tkmulticolumnlist.rb, line 342
def command(cmd)
  @command = cmd
  self
end
delete(*idx)
# File ext/tk/sample/tkmulticolumnlist.rb, line 434
def delete(*idx)
  idx = idx.collect{|i|
    if i.kind_of?(Integer)
      "#{i}.0"
    else
      i.to_s
    end
  }
  @lbox_list.collect{|lbox| lbox.delete(*idx)}
end
get(idx_s, idx_e=nil)
# File ext/tk/sample/tkmulticolumnlist.rb, line 445
def get(idx_s, idx_e=nil)
  unless idx_e
    if idx_s.kind_of?(Integer)
      idx_s = "#{idx_s}.0"
      idx_e = "#{idx_s} lineend"
    else
      idx_s = idx_s.to_s
      idx_e = "#{idx_s} lineend"
    end
    @lbox_list.collect{|lbox|
      lbox.get(idx_s, idx_e)
    }
  else
    if idx_s.kind_of?(Integer)
      idx_s = "#{idx_s}.0"
    else
      idx_s = idx_s.to_s
    end
    if idx_e.kind_of?(Integer)
      idx_e = "#{idx_e}.end"
    else
      idx_e = "#{idx_e} lineend"
    end
    list = @lbox_list.collect{|lbox| lbox.get(idx_s, idx_e).split(/\n/)}
    result = []
    list[0].each_with_index{|line, index|
      result << list.collect{|lines| lines[index]}
    }
    result
  end
end
get_by_hash(*idx)
# File ext/tk/sample/tkmulticolumnlist.rb, line 494
def get_by_hash(*idx)
  get_result = get(*idx)
  if idx.size == 1
    _line_array_to_hash(get_result)
  else
    get_result.collect{|line| _line_array_to_hash(line)}
  end
end
get_select()
# File ext/tk/sample/tkmulticolumnlist.rb, line 477
def get_select
  get(@lbox_list[0].select_index)
end
hide_each_hscr()
# File ext/tk/sample/tkmulticolumnlist.rb, line 326
def hide_each_hscr
  @show_each_hscr = false
  @c_hscr.ungrid
end
hide_win_hscr()
# File ext/tk/sample/tkmulticolumnlist.rb, line 336
def hide_win_hscr
  @show_each_hscr = false
  @h_scroll.ungrid
end
insert(idx, *lines)
# File ext/tk/sample/tkmulticolumnlist.rb, line 503
def insert(idx, *lines)
  lbox_ins = []
  (0..@lbox_list.size).each{lbox_ins << []}

  if idx.kind_of?(Integer)
    idx = "#{idx}.0"
  else
    idx = idx.to_s
  end

  if @lbox_list[0].index('1.0 + 1 char') == @lbox_list[0].index('end')
    cr = ""
  else
    cr = "\n"
  end

  lines.each{|line|
    if line.kind_of? Hash
      array = []
      @name_index.each_pair{|label, indices|
        if indices.size == 1
          array[indices[0]] = line[label]
        else
          if line[label].kind_of? Array
            indices.each_with_index{|index, num|
              array[index] = line[label][num]
            }
          else
            array[indices[0]] = line[label]
          end
        end
      }
      line = array
    end

    @name_index.each_pair{|label, indices|
      if indices.size == 1
        lbox_ins[indices[0]] << line[indices[0]]
      else
        indices.each{|index| lbox_ins[index] << line[index]}
      end
    }
  }

  @lbox_list.each_with_index{|lbox, index|
    lbox.insert(idx, cr + lbox_ins[index].join("\n")) if lbox_ins[index]
  }
end
keep_minsize(bool)
# File ext/tk/sample/tkmulticolumnlist.rb, line 317
def keep_minsize(bool)
  @keep_minsize = bool
end
keep_minsize?()
# File ext/tk/sample/tkmulticolumnlist.rb, line 314
def keep_minsize?
  @keep_minsize
end
listboxborder(width)

set listbox borders

# File ext/tk/sample/tkmulticolumnlist.rb, line 366
def listboxborder(width)
  @lbox_border = width
  @lbox_list.each{|w| w['border'] = @lbox_border}
  self
end
listboxrelief(relief)

set listbox relief

# File ext/tk/sample/tkmulticolumnlist.rb, line 373
def listboxrelief(relief)
  @lbox_list.each{|w| w['relief'] = relief}
  self
end
scrollbarborder(width)

set scrollbar border

# File ext/tk/sample/tkmulticolumnlist.rb, line 357
def scrollbarborder(width)
  @scrbar_border = width
  @v_scroll['border'] = @scrbar_border
  @h_scroll['border'] = @scrbar_border
  @hscr_list.each{|hscr| hscr['border'] = @scrbar_border}
  self
end
scrollbarwidth(width)

set scrollbar width

# File ext/tk/sample/tkmulticolumnlist.rb, line 348
def scrollbarwidth(width)
  @scrbar_width = width
  @v_scroll['width'] = @scrbar_width
  @h_scroll['width'] = @scrbar_width
  @hscr_list.each{|hscr| hscr['width'] = @scrbar_width}
  self
end
select_clear(first, last=None)
# File ext/tk/sample/tkmulticolumnlist.rb, line 552
def select_clear(first, last=None)
  @lbox_list.each{|lbox| lbox.sel_clear(first, last=None)}
end
select_set(first, last=None)
# File ext/tk/sample/tkmulticolumnlist.rb, line 556
def select_set(first, last=None)
  @lbox_list.each{|lbox| lbox.sel_set(first, last=None)}
end
show_each_hscr()

each hscr

# File ext/tk/sample/tkmulticolumnlist.rb, line 322
def show_each_hscr
  @show_each_hscr = true
  @c_hscr.grid('row'=>2, 'column'=>0, 'sticky'=>'ew')
end
show_win_hscr()

window hscroll

# File ext/tk/sample/tkmulticolumnlist.rb, line 332
def show_win_hscr
  @show_win_hscr = true
  @h_scroll.grid('row'=>3, 'column'=>0, 'sticky'=>'ew')
end
titlebackground(bg)

set title background color

# File ext/tk/sample/tkmulticolumnlist.rb, line 408
def titlebackground(bg)
  @f_title_pad['background'] = bg
  @title_list.each{|label| label['background'] = bg}
  self
end
titleborder(width)

set title borders

# File ext/tk/sample/tkmulticolumnlist.rb, line 379
def titleborder(width)
  @title_border = width
  @f_title_pad['border'] = @title_border
  @title_list.each{|label| label['border'] = @title_border}
  self
end
titlecommand(idx, cmd=Proc.new)

set title cmds

# File ext/tk/sample/tkmulticolumnlist.rb, line 415
def titlecommand(idx, cmd=Proc.new)
  @title_cmd[idx] = cmd
end
titlefont(font)

set title font

# File ext/tk/sample/tkmulticolumnlist.rb, line 387
def titlefont(font)
  @title_list.each{|label| label['font'] = font}
  title_height = 0
  @title_list.each{|w|
    h = w.winfo_reqheight
    title_height = h if title_height < h
  }
  @f_title.height title_height
  bbox = @w_title.bbox
  @c_title.height(bbox[3])
  @c_title.scrollregion(bbox)
  self
end
titleforeground(fg)

set title foreground color

# File ext/tk/sample/tkmulticolumnlist.rb, line 402
def titleforeground(fg)
  @title_list.each{|label| label['foreground'] = fg}
  self
end
titleinvoke(idx)

call title cmds

# File ext/tk/sample/tkmulticolumnlist.rb, line 420
def titleinvoke(idx)
  @title_cmd[idx].call if @title_cmd[idx]
end
titlelabels(*indices)

get label widgets of listbox titles

# File ext/tk/sample/tkmulticolumnlist.rb, line 425
def titlelabels(*indices)
  @title_list[*indices]
end