class Tk::TkTable - tk-0.2.0 Documentation

# class Tk::TkTable

### Constants

PACKAGE_NAME
TkCommandNames
WidgetClassName

### Public Class Methods

package_name() click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 22
    def self.package_name
      PACKAGE_NAME
    end

package_version() click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 26
    def self.package_version
      begin
        TkPackage.require('Tktable')
      rescue
        ''
      end
    end

### Public Instance Methods

__destroy_hook__() click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 272
    def __destroy_hook__
      Tk::TkTable::CelTag::CellTagID_TBL.mutex.synchronize{
        Tk::TkTable::CelTag::CellTagID_TBL.delete(@path)
      }
    end

__validation_class_list() click to toggle source
Calls superclass method Tk::ValidateConfigure#__validation_class_list

    # File lib/tkextlib/tktable/tktable.rb, line 493
    def __validation_class_list
      super() <<
        BrowseCommand << CellCommand << SelectionCommand << ValidateCommand
    end

activate(idx) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 505
    def activate(idx)
      tk_send('activate', tagid(idx))
    end

bbox(idx) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 509
    def bbox(idx)
      list(tk_send('bbox', tagid(idx)))
    end

border_dragto(x, y) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 522
    def border_dragto(x, y)
      tk_send('border', 'dragto', x, y)
    end

border_mark(x, y) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 513
    def border_mark(x, y)
      simplelist(tk_send('border', 'mark', x, y))
    end

border_mark_col(x, y) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 519
    def border_mark_col(x, y)
      tk_send('border', 'mark', x, y, 'col')
    end

border_mark_row(x, y) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 516
    def border_mark_row(x, y)
      tk_send('border', 'mark', x, y, 'row')
    end

clear_all(first=None, last=None) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 538
    def clear_all(first=None, last=None)
      tk_send('clear', 'all', tagid(first), tagid(last))
      self
    end

clear_cache(first=None, last=None) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 526
    def clear_cache(first=None, last=None)
      tk_send('clear', 'cache', tagid(first), tagid(last))
      self
    end

clear_sizes(first=None, last=None) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 530
    def clear_sizes(first=None, last=None)
      tk_send('clear', 'sizes', tagid(first), tagid(last))
      self
    end

clear_tags(first=None, last=None) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 534
    def clear_tags(first=None, last=None)
      tk_send('clear', 'tags', tagid(first), tagid(last))
      self
    end

col_index(idx) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 636
    def col_index(idx)
      number(tk_send('index', tagid(idx), 'col'))
    end

curselection() click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 543
    def curselection
      simplelist(tk_send('curselection'))
    end

curselection=(val) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 546
    def curselection=(val)
      tk_send('curselection', val)
      val
    end

curvalue() click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 551
    def curvalue
      tk_tcl2ruby(tk_send('curvalue'), true, false)
    end

curvalue=(val) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 554
    def curvalue=(val)
      tk_send('curvalue', val)
      val
    end

delete_active(idx1, idx2=None) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 559
    def delete_active(idx1, idx2=None)
      tk_send('delete', 'active', tagid(idx1), tagid(idx2))
      self
    end

delete_cols(*args) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 563
    def delete_cols(*args) # ?switches_array?, index, ?count?
      params = []
      if args[0].kind_of?(Array)
        switches = args.shift
        switches.each{|k| params << "-#{k}"}
      end
      params << '--'
      params << tagid(args.shift)
      params.concat(args)
      tk_send('delete', 'cols', *params)
      self
    end

delete_rows(*args) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 575
    def delete_rows(*args) # ?switches_array?, index, ?count?
      params = []
      if args[0].kind_of?(Array)
        switches = args.shift
        switches.each{|k| params << "-#{k}"}
      end
      params << '--'
      params << tagid(args.shift)
      params.concat(args)
      tk_send('delete', 'rows', *params)
      self
    end

get(idx) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 588
    def get(idx)
      tk_tcl2ruby(tk_send('get', tagid(idx)), true, false)
    end

get_area(idx1, idx2) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 591
    def get_area(idx1, idx2)
      simplelist(tk_send('get', tagid(idx1), tagid(idx2))).collect{|v|
        tk_tcl2ruby(v, true, false)
      }
    end

height(row) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 600
    def height(row)
      number(tk_send('height', row))
    end

height_list() click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 597
    def height_list
      list(tk_send('height'))
    end

hidden?(idx, *args) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 611
    def hidden?(idx, *args)
      if args.empty?
        if (ret = tk_send('hidden', tagid(idx))) == ''
          false
        else
          ret
        end
      else
        bool(tk_send('hidden', tagid(idx), *(args.collect{|i| tagid(i)})))
      end
    end

hidden_list() click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 608
    def hidden_list
      simplelist(tk_send('hidden'))
    end

icursor() click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 623
    def icursor
      number(tk_send('icursor'))
    end

icursor_set(idx) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 626
    def icursor_set(idx)
      number(tk_send('icursor', tagid(idx)))
    end

index(idx) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 630
    def index(idx)
      tk_send('index', tagid(idx))
    end

insert_active(idx, val) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 640
    def insert_active(idx, val)
      tk_send('insert', 'active', tagid(idx), val)
      self
    end

insert_cols(*args) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 644
    def insert_cols(*args) # ?switches_array?, index, ?count?
      params = []
      if args[0].kind_of?(Array)
        switches = args.shift
        switches.each{|k| params << "-#{k}"}
      end
      params << '--'
      params.concat(args)
      params << tagid(args.shift)
      tk_send('insert', 'cols', *params)
      self
    end

insert_rows(*args) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 656
    def insert_rows(*args) # ?switches_array?, index, ?count?
      params = []
      if args[0].kind_of?(Array)
        switches = args.shift
        switches.each{|k| params << "-#{k}"}
      end
      params << '--'
      params << tagid(args.shift)
      params.concat(args)
      tk_send('insert', 'rows', *params)
      self
    end

reread() click to toggle source

def postscript(*args)

    tk_send('postscript', *args)

end

    # File lib/tkextlib/tktable/tktable.rb, line 673
    def reread
      tk_send('reread')
      self
    end

row_index(idx) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 633
    def row_index(idx)
      number(tk_send('index', tagid(idx), 'row'))
    end

scan_dragto(x, y) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 682
    def scan_dragto(x, y)
      tk_send('scan', 'dragto', x, y)
      self
    end

scan_mark(x, y) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 678
    def scan_mark(x, y)
      tk_send('scan', 'mark', x, y)
      self
    end

see(idx) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 687
    def see(idx)
      tk_send('see', tagid(idx))
      self
    end

selection_anchor(idx) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 692
    def selection_anchor(idx)
      tk_send('selection', 'anchor', tagid(idx))
      self
    end

selection_clear(first, last=None) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 696
    def selection_clear(first, last=None)
      tk_send('selection', 'clear', tagid(first), tagid(last))
      self
    end

selection_clear_all() click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 700
    def selection_clear_all
      selection_clear('all')
    end

selection_include?(idx) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 703
    def selection_include?(idx)
      bool(tk_send('selection', 'includes', tagid(idx)))
    end

selection_present() click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 706
    def selection_present
      bool(tk_send('selection', 'present'))
    end

selection_set(first, last=None) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 709
    def selection_set(first, last=None)
      tk_send('selection', 'set', tagid(first), tagid(last))
      self
    end

set(*pairs) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 714
    def set(*pairs) # idx, val, idx, val, ...
      args = []
      0.step(pairs.size-1, 2){|i|
        args << tagid(pairs[i])
        args << pairs[i+1]
      }
      tk_send('set', *args)
      self
    end

set_col(*pairs) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 732
    def set_col(*pairs) # idx, val, idx, val, ...
      args = []
      0.step(pairs.size-1, 2){|i|
        args << tagid(pairs[i])
        args << pairs[i+1]
      }
      tk_send('set', 'col', *args)
      self
    end

set_height(*pairs) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 603
    def set_height(*pairs)
      tk_send('height', *(pairs.flatten))
      self
    end

set_row(*pairs) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 723
    def set_row(*pairs) # idx, val, idx, val, ...
      args = []
      0.step(pairs.size-1, 2){|i|
        args << tagid(pairs[i])
        args << pairs[i+1]
      }
      tk_send('set', 'row', *args)
      self
    end

set_spans(*pairs) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 810
    def set_spans(*pairs)
      # idx, val, idx, val, ...
      args = []
      0.step(pairs.size-1, 2){|i|
        args << tagid(pairs[i])
        val = pairs[i+1]
        if val.kind_of?(Array)
          args << val.join(',')
        else
          args << val
        end
      }
      tk_send('spans', *args)
      self
    end

set_width(*pairs) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 951
    def set_width(*pairs)
      tk_send('width', *(pairs.flatten))
      self
    end

span(idx) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 804
    def span(idx)
      lst = simplelist(tk_send('spans', tagid(idx)))
      idx = lst[0]
      rows, cols = lst[1].split(',').map!{|n| Integer(n)}
      [idx [rows, cols]]
    end

span_list()
Alias for: spans
spans() click to toggle source

# begin¶ ↑

    def set(*pairs) # idx, val, idx, val, ...  OR [idx, val], [idx, val], ...
      if pairs[0].kind_of?(Array)
        # [idx, val], [idx, val], ...
        args = []
        pairs.each{|idx, val| args << tagid(idx) << val }
        tk_send('set', *args)
      else
        # idx, val, idx, val, ...
        args = []
        0.step(pairs.size-1, 2){|i|
          args << tagid(pairs[i])
          args << pairs[i+1]
        }
        tk_send('set', *args)
      end
      self
    end
    def set_row(*pairs)
      if pairs[0].kind_of?(Array)
        # [idx, val], [idx, val], ...
        args = []
        pairs.each{|idx, val| args << tagid(idx) << val }
        tk_send('set', 'row', *args)
      else
        # idx, val, idx, val, ...
        args = []
        0.step(pairs.size-1, 2){|i|
          args << tagid(pairs[i])
          args << pairs[i+1]
        }
        tk_send('set', 'row', *args)
      end
      self
    end
    def set_col(*pairs)
      if pairs[0].kind_of?(Array)
        # [idx, val], [idx, val], ...
        args = []
        pairs.each{|idx, val| args << idx << val }
        tk_send('set', 'col', *args)
      else
        # idx, val, idx, val, ...
        args = []
        0.step(pairs.size-1, 2){|i|
          args << tagid(pairs[i])
          args << pairs[i+1]
        }
        tk_send('set', 'col', *args)
      end
      self
    end

# end¶ ↑

    # File lib/tkextlib/tktable/tktable.rb, line 795
    def spans
      simplelist(tk_send('spans')).collect{|inf|
        lst = simplelist(inf)
        idx = lst[0]
        rows, cols = lst[1].split(',').map!{|n| Integer(n)}
        [idx [rows, cols]]
      }
    end

Also aliased as: span_list
tag_cell(tag, *cells) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 886
    def tag_cell(tag, *cells)
      tk_send('tag', 'cell', tagid(tag), *(cells.collect{|idx| tagid(idx)}))
      self
    end

tag_col(tag, *cols) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 894
    def tag_col(tag, *cols)
      tk_send('tag', 'col', tagid(tag), *cols)
      self
    end

tag_col_reset(*cols) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 898
    def tag_col_reset(*cols)
      tk_send('tag', 'col', '', *cols)
      self
    end

tag_delete(tag) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 902
    def tag_delete(tag)
      tk_send('tag', 'delete', tagid(tag))
      Tk::TkTable::CellTag::CellTagID_TBL.mutex.synchronize{
        if Tk::TkTable::CellTag::CellTagID_TBL[@path]
          if tag.kind_of? Tk::TkTable::CellTag
            Tk::TkTable::CellTag::CellTagID_TBL[@path].delete(tag.id)
          else
            Tk::TkTable::CellTag::CellTagID_TBL[@path].delete(tag)
          end
        end
      }
      self
    end

tag_exist?(tag) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 915
    def tag_exist?(tag)
      bool(tk_send('tag', 'exists', tagid(tag)))
    end

tag_include?(tag, idx) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 918
    def tag_include?(tag, idx)
      bool(tk_send('tag', 'includes', tagid(tag), tagid(idx)))
    end

tag_lower(tag, target=None) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 921
    def tag_lower(tag, target=None)
      tk_send('tag', 'lower', tagid(tag), tagid(target))
      self
    end

tag_names(pat=None) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 925
    def tag_names(pat=None)
      simplelist(tk_send('tag', 'names', pat)).collect{|tag| tagid2obj(tag)}
    end

tag_raise(tag, target=None) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 928
    def tag_raise(tag, target=None)
      tk_send('tag', 'raise', tagid(tag), tagid(target))
      self
    end

tag_reset(*cells) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 890
    def tag_reset(*cells)
      tk_send('tag', 'cell', '', *(cells.collect{|idx| tagid(idx)}))
      self
    end

tag_row(tag, *rows) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 932
    def tag_row(tag, *rows)
      tk_send('tag', 'row', tagid(tag), *rows)
      self
    end

tag_row_reset(*rows) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 936
    def tag_row_reset(*rows)
      tk_send('tag', 'row', '', *rows)
      self
    end

tagid(tag) click to toggle source

# begin¶ ↑

    def set_spans(*pairs)
      if pairs[0].kind_of?(Array)
        # [idx, val], [idx, val], ...
        args = []
        pairs.each{|idx, val|
          args << tagid(idx)
          if val.kind_of?(Array)
            args << val.join(',')
          else
            args << val
          end
        }
        tk_send('spans', *args)
      else
        # idx, val, idx, val, ...
        args = []
        0.step(pairs.size-1, 2){|i|
          args << tagid(pairs[i])
          val = pairs[i+1]
          if val.kind_of?(Array)
            args << val.join(',')
          else
            args << val
          end
        }
        tk_send('spans', *args)
      end
      self
    end

# end¶ ↑

    # File lib/tkextlib/tktable/tktable.rb, line 857
    def tagid(tag)
      if tag.kind_of?(Tk::TkTable::CellTag)
        tag.id
      elsif tag.kind_of?(Array)
        if tag[0].kind_of?(Integer) && tag[1].kind_of?(Integer)
          # [row, col]
          tag.join(',')
        else
          tag
        end
      else
        tag
      end
    end

tagid2obj(tagid) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 872
    def tagid2obj(tagid)
      Tk::TkTable::CellTag::CellTagID_TBL.mutex.synchronize{
        if Tk::TkTable::CellTag::CellTagID_TBL.key?(@path)
          if Tk::TkTable::CellTag::CellTagID_TBL[@path].key?(tagid)
            Tk::TkTable::CellTag::CellTagID_TBL[@path][tagid]
          else
            tagid
          end
        else
          tagid
        end
      }
    end

validate(idx) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 941
    def validate(idx)
      bool(tk_send('validate', tagid(idx)))
    end

width(row) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 948
    def width(row)
      number(tk_send('width', row))
    end

width_list() click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 945
    def width_list
      list(tk_send('width'))
    end

window_delete(*args) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 956
    def window_delete(*args)
      tk_send('window', 'delete', *(args.collect{|idx| tagid(idx)}))
      self
    end

window_move(from_idx, to_idx) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 960
    def window_move(from_idx, to_idx)
      tk_send('window', 'move', tagid(from_idx), tagid(to_idx))
      self
    end

window_names(pat=None) click to toggle source

    # File lib/tkextlib/tktable/tktable.rb, line 964
    def window_names(pat=None)
      simplelist(tk_send('window', 'names', pat))
    end

### Private Instance Methods

__boolval_optkeys() click to toggle source
Calls superclass method TkConfigMethod#__boolval_optkeys

    # File lib/tkextlib/tktable/tktable.rb, line 278
    def __boolval_optkeys
      super() << 'autoclear' << 'flashmode' << 'invertselected' <<
        'multiline' << 'selecttitle' << 'wrap'
    end

__strval_optkeys() click to toggle source
Calls superclass method TkConfigMethod#__strval_optkeys

    # File lib/tkextlib/tktable/tktable.rb, line 284
    def __strval_optkeys
      super() << 'colseparator' << 'ellipsis' << 'rowseparator' << 'sparsearray'
    end