module Tk::BLT::Table - tk-0.2.0 Documentation

# module Tk::BLT::Table

### Constants

TkCommandNames

### Public Class Methods

__current_itemconfiginfo(container, *args)
Alias for: current_itemconfiginfo
__itemcget(container, item, option)
Alias for: itemcget
__itemcget_strict(container, item, option)
Alias for: itemcget_strict
__itemcget_tkstring(container, item, option)
Alias for: itemcget_tkstring
__itemconfiginfo(container, *args)
Alias for: itemconfiginfo
__itemconfigure(container, *args)
Alias for: itemconfigure
add(container, *args) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 330
    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

arrange(container) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 348
    def arrange(container)
      tk_call('::blt::table', 'arrange', container)
      container
    end

cget(container, option) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 193
    def cget(container, option)
      __itemcget([container], option)
    end

cget_strict(container, option) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 196
    def cget_strict(container, option)
      __itemcget_strict([container], option)
    end

cget_tkstring(container, option) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 190
    def cget_tkstring(container, option)
      __itemcget_tkstring([container], option)
    end

configinfo(container, *args) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 204
    def configinfo(container, *args)
      __itemconfiginfo([container], *args)
    end

configure(container, *args) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 200
    def configure(container, *args)
      __itemconfigure([container], *args)
    end

containers(arg={}) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 389
    def containers(arg={})
      list(tk_call('::blt::table', 'containers', *hash_kv(arg)))
    end

containers_pattern(pat) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 393
    def containers_pattern(pat)
      list(tk_call('::blt::table', 'containers', '-pattern', pat))
    end

containers_slave(win) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 397
    def containers_slave(win)
      list(tk_call('::blt::table', 'containers', '-slave', win))
    end

create_container(container) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 318
    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

current_configinfo(container, *args) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 208
    def current_configinfo(container, *args)
      __current_itemconfiginfo([container], *args)
    end

current_itemconfiginfo(container, *args) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 264
    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

Also aliased as: __current_itemconfiginfo
delete(container, *args) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 353
    def delete(container, *args)
      tk_call('::blt::table', 'delete', container, *args)
    end

extents(container, item) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 357
    def extents(container, item)
      ret = []
      inf = list(tk_call('::blt::table', 'extents', container, item))
      ret << inf.slice!(0..4) until inf.empty?
      ret
    end

forget(*wins) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 364
    def forget(*wins)
      wins = wins.collect{|win| _epath(win)}
      tk_call('::blt::table', 'forget', *wins)
    end

info(container) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 286
    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

insert(container, *args) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 369
    def insert(container, *args)
      tk_call('::blt::table', 'insert', container, *args)
    end

insert_after(container, *args) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 377
    def insert_after(container, *args)
      tk_call('::blt::table', 'insert', container, '-after', *args)
    end

insert_before(container, *args) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 373
    def insert_before(container, *args)
      tk_call('::blt::table', 'insert', container, '-before', *args)
    end

itemcget(container, item, option) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 215
    def itemcget(container, item, option)
      __itemcget([container, tagid(item)], option)
    end

Also aliased as: __itemcget
itemcget_strict(container, item, option) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 218
    def itemcget_strict(container, item, option)
      __itemcget_strict([container, tagid(item)], option)
    end

Also aliased as: __itemcget_strict
itemcget_tkstring(container, item, option) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 212
    def itemcget_tkstring(container, item, option)
      __itemcget_tkstring([container, tagid(item)], option)
    end

Also aliased as: __itemcget_tkstring
itemconfiginfo(container, *args) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 242
    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

Also aliased as: __itemconfiginfo
itemconfigure(container, *args) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 222
    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

Also aliased as: __itemconfigure
iteminfo(container, item) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 296
    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

join(container, first, last) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 381
    def join(container, first, last)
      tk_call('::blt::table', 'join', container, first, last)
    end

locate(container, x, y) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 385
    def locate(container, x, y)
      tk_call('::blt::table', 'locate', container, x, y)
    end

save(container) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 401
    def save(container)
      tk_call('::blt::table', 'save', container)
    end

search(container, keys={}) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 405
    def search(container, keys={})
      list(tk_call('::blt::table', 'containers', *hash_kv(keys)))
    end

split(container, *args) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 409
    def split(container, *args)
      tk_call('::blt::table', 'split', container, *args)
    end

tagid(tag) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 165
    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

tagid2obj(tagid) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 184
    def tagid2obj(tagid)
      tagid
    end

### Private Class Methods

__boolval_optkeys() click to toggle source
Calls superclass method

    # File lib/tkextlib/blt/table.rb, line 160
    def __boolval_optkeys
      super() << 'propagate'
    end

__item_cget_cmd(id) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 131
    def __item_cget_cmd(id) # id := [ container, item ]
      win = (id[0].kind_of?(TkWindow))? id[0].path: id[0].to_s
      ['::blt::table', 'cget', win, id[1]]
    end

__item_config_cmd(id) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 137
    def __item_config_cmd(id) # id := [ container, item, ... ]
      container, *items = id
      win = (container.kind_of?(TkWindow))? container.path: container.to_s
      ['::blt::table', 'configure', win, *items]
    end

__item_pathname(id) click to toggle source

    # File lib/tkextlib/blt/table.rb, line 144
    def __item_pathname(id)
      win = (id[0].kind_of?(TkWindow))? id[0].path: id[0].to_s
      win + ';'
    end