# File tk/lib/tkextlib/blt/table.rb, line 317
def add(container, *args)
if args.empty?
tk_call('::blt::table', container)
else
args = args.collect{|arg|
if arg.kind_of?(TkWindow)
_epath(arg)
elsif arg.kind_of?(Array) # index
arg.join(',')
else
arg
end
}
tk_call('::blt::table', container, *args)
end
container
end
# File tk/lib/tkextlib/blt/table.rb, line 335
def arrange(container)
tk_call('::blt::table', 'arrange', container)
container
end
# File tk/lib/tkextlib/blt/table.rb, line 183
def cget(container, option)
__itemcget([container], option)
end
# File tk/lib/tkextlib/blt/table.rb, line 186
def cget_strict(container, option)
__itemcget_strict([container], option)
end
# File tk/lib/tkextlib/blt/table.rb, line 194
def configinfo(container, *args)
__itemconfiginfo([container], *args)
end
# File tk/lib/tkextlib/blt/table.rb, line 190
def configure(container, *args)
__itemconfigure([container], *args)
end
# File tk/lib/tkextlib/blt/table.rb, line 376
def containers(arg={})
list(tk_call('::blt::table', 'containers', *hash_kv(arg)))
end
# File tk/lib/tkextlib/blt/table.rb, line 380
def containers_pattern(pat)
list(tk_call('::blt::table', 'containers', '-pattern', pat))
end
# File tk/lib/tkextlib/blt/table.rb, line 384
def containers_slave(win)
list(tk_call('::blt::table', 'containers', '-slave', win))
end
# File tk/lib/tkextlib/blt/table.rb, line 305
def create_container(container)
tk_call('::blt::table', container)
begin
class << container
include Tk::BLT::Table::TableContainer
end
rescue
warn('fail to include TableContainer methods (frozen object?)')
end
container
end
# File tk/lib/tkextlib/blt/table.rb, line 198
def current_configinfo(container, *args)
__current_itemconfiginfo([container], *args)
end
# File tk/lib/tkextlib/blt/table.rb, line 251
def current_itemconfiginfo(container, *args)
slot = args[-1]
if slot.kind_of?(String) || slot.kind_of?(Symbol)
slot = slot.to_s
if slot[0] == ?. || slot =~ /^\d+,\d+$/ || slot =~ /^(c|C|r|R)(\*|\d+)/
# widget || row,col || Ci or Ri
slot = nil
else
# option
slot = args.pop
end
else
slot = nil
end
fail ArgumentError, 'no item is given' if args.empty?
id = [container]
args.each{|item| id << tagid(item)}
__current_itemconfiginfo(id, slot)
end
# File tk/lib/tkextlib/blt/table.rb, line 340
def delete(container, *args)
tk_call('::blt::table', 'delete', container, *args)
end
# File tk/lib/tkextlib/blt/table.rb, line 344
def extents(container, item)
ret = []
inf = list(tk_call('::blt::table', 'extents', container, item))
ret << inf.slice!(0..4) until inf.empty?
ret
end
# File tk/lib/tkextlib/blt/table.rb, line 351
def forget(*wins)
wins = wins.collect{|win| _epath(win)}
tk_call('::blt::table', 'forget', *wins)
end
# File tk/lib/tkextlib/blt/table.rb, line 273
def info(container)
ret = {}
inf = list(tk_call('::blt::table', 'info', container))
until inf.empty?
opt = inf.slice!(0..1)
ret[opt[1..-1]] = opt[1]
end
ret
end
# File tk/lib/tkextlib/blt/table.rb, line 356
def insert(container, *args)
tk_call('::blt::table', 'insert', container, *args)
end
# File tk/lib/tkextlib/blt/table.rb, line 364
def insert_after(container, *args)
tk_call('::blt::table', 'insert', container, '-after', *args)
end
# File tk/lib/tkextlib/blt/table.rb, line 360
def insert_before(container, *args)
tk_call('::blt::table', 'insert', container, '-before', *args)
end
# File tk/lib/tkextlib/blt/table.rb, line 202
def itemcget(container, item, option)
__itemcget([container, tagid(item)], option)
end
# File tk/lib/tkextlib/blt/table.rb, line 205
def itemcget_strict(container, item, option)
__itemcget_strict([container, tagid(item)], option)
end
# File tk/lib/tkextlib/blt/table.rb, line 229
def itemconfiginfo(container, *args)
slot = args[-1]
if slot.kind_of?(String) || slot.kind_of?(Symbol)
slot = slot.to_s
if slot[0] == ?. || slot =~ /^\d+,\d+$/ || slot =~ /^(c|C|r|R)(\*|\d+)/
# widget || row,col || Ci or Ri
slot = nil
else
# option
slot = args.pop
end
else
slot = nil
end
fail ArgumentError, 'no item is given' if args.empty?
id = [container]
args.each{|item| id << tagid(item)}
__itemconfiginfo(id, slot)
end
# File tk/lib/tkextlib/blt/table.rb, line 209
def itemconfigure(container, *args)
if args[-1].kind_of?(Hash)
# container, item, item, ... , hash_optkeys
keys = args.pop
fail ArgumentError, 'no item is given' if args.empty?
id = [container]
args.each{|item| id << tagid(item)}
__itemconfigure(id, keys)
else
# container, item, item, ... , option, value
val = args.pop
opt = args.pop
fail ArgumentError, 'no item is given' if args.empty?
id = [container]
args.each{|item| id << tagid(item)}
__itemconfigure(id, opt, val)
end
container
end
# File tk/lib/tkextlib/blt/table.rb, line 283
def iteminfo(container, item)
inf = list(tk_call('::blt::table', 'info', container, tagid(item)).chomp)
ret = []
until inf.empty? || (inf[0].kind_of?(String) && inf[0] =~ /^-/)
ret << inf.shift
end
if inf.length > 1
keys = {}
while inf.length > 1
opt = inf.slice!(0..1)
keys[opt[0][1..-1]] = opt[1]
end
ret << keys
end
ret
end
# File tk/lib/tkextlib/blt/table.rb, line 368
def join(container, first, last)
tk_call('::blt::table', 'join', container, first, last)
end
# File tk/lib/tkextlib/blt/table.rb, line 372
def locate(container, x, y)
tk_call('::blt::table', 'locate', container, x, y)
end
# File tk/lib/tkextlib/blt/table.rb, line 388
def save(container)
tk_call('::blt::table', 'save', container)
end
# File tk/lib/tkextlib/blt/table.rb, line 392
def search(container, keys={})
list(tk_call('::blt::table', 'containers', *hash_kv(keys)))
end
# File tk/lib/tkextlib/blt/table.rb, line 396
def split(container, *args)
tk_call('::blt::table', 'split', container, *args)
end
# File tk/lib/tkextlib/blt/table.rb, line 158
def tagid(tag)
if tag.kind_of?(Array)
case tag[0]
when Integer
# [row, col]
tag.join(',')
when :c, :C, 'c', 'C', :r, :R, 'r', 'R'
# c0 or r1 or C*, and so on
tag.collect{|elem| elem.to_s}.join('')
else
tag
end
elsif tag.kind_of?(TkWindow)
_epath(tag)
else
tag
end
end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.