# class Tk::TreeCtrl_Widget

### Constants

BindTag_FileList
HasColumnCreateCommand
PACKAGE_NAME
TkCommandNames
WidgetClassName

### Public Class Methods

image_tint(img, color, alpha) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 62
    def self.image_tint(img, color, alpha)
      Tk.tk_call_without_enc('imagetint', img, color, alpha)
    end

loupe(img, x, y, w, h, zoom) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 48
    def self.loupe(img, x, y, w, h, zoom)
      # NOTE: platform == 'unix' only

      # img  => TkPhotoImage
      # x, y => screen coords
      # w, h => magnifier width and height
      # zoom => zooming rate
      Tk.tk_call_without_enc('loupe', img, x, y, w, h, zoom)
    end

package_name() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 24
    def self.package_name
      PACKAGE_NAME
    end

package_version() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 28
    def self.package_version
      begin
        TkPackage.require('treectrl')
      rescue
        ''
      end
    end

text_layout(font, text, keys={}) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 58
    def self.text_layout(font, text, keys={})
      TkComm.list(Tk.tk_call_without_enc('textlayout', font, text, keys))
    end

### Public Instance Methods

__destroy_hook__() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 653
    def __destroy_hook__
      Tk::TreeCtrl::Column::TreeCtrlColumnID_TBL.mutex.synchronize{
        Tk::TreeCtrl::Column::TreeCtrlColumnID_TBL.delete(@path)
      }
      Tk::TreeCtrl::Element::TreeCtrlElementID_TBL.mutex.synchronize{
        Tk::TreeCtrl::Element::TreeCtrlElementID_TBL.delete(@path)
      }
      Tk::TreeCtrl::Item::TreeCtrlItemID_TBL.mutex.synchronize{
        Tk::TreeCtrl::Item::TreeCtrlItemID_TBL.delete(@path)
      }
      Tk::TreeCtrl::Style::TreeCtrlStyleID_TBL.mutex.synchronize{
        Tk::TreeCtrl::Style::TreeCtrlStyleID_TBL.delete(@path)
      }
    end

activate(desc) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 711
    def activate(desc)
      tk_send('activate', desc)
      self
    end

canvasx(x) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 716
    def canvasx(x)
      number(tk_send('canvasx', x))
    end

canvasy(y) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 720
    def canvasy(y)
      number(tk_send('canvasy', y))
    end

collapse(*dsc) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 724
    def collapse(*dsc)
      tk_send_without_enc('collapse', *(dsc.map!{|d| _get_eval_string(d, true)}))
      self
    end

collapse_recurse(*dsc) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 729
    def collapse_recurse(*dsc)
      tk_send_without_enc('collapse', '-recurse',
                          *(dsc.map!{|d| _get_eval_string(d, true)}))
      self
    end

column_bbox(idx) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 735
    def column_bbox(idx)
      list(tk_send('column', 'bbox', idx))
    end

column_compare(column1, op, column2) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 739
    def column_compare(column1, op, column2)
      bool(tk_send('column', 'compare', column1, op, column2))
    end

column_count() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 743
    def column_count
      num_or_str(tk_send('column', 'count'))
    end

column_create(keys=nil) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 747
    def column_create(keys=nil)
      if keys && keys.kind_of?(Hash)
        num_or_str(tk_send('column', 'create', *hash_kv(keys)))
      else
        num_or_str(tk_send('column', 'create'))
      end
    end

column_delete(idx) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 755
    def column_delete(idx)
      Tk::TreeCtrl::Column::TreeCtrlColumnID_TBL.mutex.synchronize{
        if Tk::TreeCtrl::Column::TreeCtrlColumnID_TBL[self.path]
          Tk::TreeCtrl::Column::TreeCtrlColumnID_TBL[self.path].delete(idx)
        end
      }
      tk_send('column', 'delete', idx)
      self
    end

column_id(idx) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 769
    def column_id(idx)
      tk_send('column', 'id', idx)
    end

column_index(idx) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 765
    def column_index(idx)
      num_or_str(tk_send('column', 'index', idx))
    end

column_list(visible=false) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 773
    def column_list(visible=false)
      if visible
        simplelist(tk_send('column', 'list', '-visible'))
      else
        simplelist(tk_send('column', 'list'))
      end
    end

column_move(idx, before) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 784
    def column_move(idx, before)
      tk_send('column', 'move', idx, before)
      self
    end

column_needed_width(idx) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 789
    def column_needed_width(idx)
      num_or_str(tk_send('column', 'neededwidth', idx))
    end

Also aliased as: column_neededwidth
column_neededwidth(idx)
Alias for: column_needed_width
column_order(column, visible=false) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 794
    def column_order(column, visible=false)
      if visible
        num_or_str(tk_send('column', 'order', column, '-visible'))
      else
        num_or_str(tk_send('column', 'order', column))
      end
    end

column_visible_list() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 780
    def column_visible_list
      column_list(true)
    end

column_visible_order(column) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 801
    def column_visible_order(column)
      column_order(column, true)
    end

column_width(idx) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 805
    def column_width(idx)
      num_or_str(tk_send('column', 'width', idx))
    end

columns_size()
Alias for: numcolumns
compare(item1, op, item2) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 809
    def compare(item1, op, item2)
      bool(tk_send('compare', item1, op, item2))
    end

contentbox() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 813
    def contentbox()
      list(tk_send('contentbox'))
    end

debug_dinfo() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 852
    def debug_dinfo
      tk_send('debug', 'dinfo')
      self
    end

debug_scroll() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 857
    def debug_scroll
      tk_send('debug', 'scroll')
    end

depth(item=None) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 817
    def depth(item=None)
      num_or_str(tk_send_without_enc('depth', _get_eval_string(item, true)))
    end

dragimage_add(item, *args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 821
    def dragimage_add(item, *args)
      tk_send('dragimage', 'add', item, *args)
      self
    end

dragimage_clear() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 826
    def dragimage_clear()
      tk_send('dragimage', 'clear')
      self
    end

dragimage_offset(*args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 831
    def dragimage_offset(*args) # x, y
      if args.empty?
        list(tk_send('dragimage', 'offset'))
      else
        tk_send('dragimage', 'offset', *args)
        self
      end
    end

dragimage_visible(*args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 840
    def dragimage_visible(*args) # mode
      if args..empty?
        bool(tk_send('dragimage', 'visible'))
      else
        tk_send('dragimage', 'visible', *args)
        self
      end
    end

dragimage_visible?() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 848
    def dragimage_visible?
      dragimage_visible()
    end

element_class(elem) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 907
    def element_class(elem)
      Tk::TreeCtrl::Element.type2class(element_type(elem))
    end

element_create(elem, type, keys=nil) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 861
    def element_create(elem, type, keys=nil)
      if keys && keys.kind_of?(Hash)
        tk_send('element', 'create', elem, type, *hash_kv(keys))
      else
        tk_send('element', 'create', elem, type)
      end
    end

element_delete(*elems) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 869
    def element_delete(*elems)
      Tk::TreeCtrl::Element::TreeCtrlElementID_TBL.mutex.synchronize{
        if Tk::TreeCtrl::Element::TreeCtrlElementID_TBL[self.path]
          elems.each{|elem|
            Tk::TreeCtrl::Element::TreeCtrlElementID_TBL[self.path].delete(elem)
          }
        end
      }
      tk_send('element', 'delete', *elems)
      self
    end

element_names() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 881
    def element_names()
      list(tk_send('element', 'names')).collect!{|elem|
        Tk::TreeCtrl::Element.id2obj(self, elem)
      }
    end

element_perstate(elem, opt, st_list) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 899
    def element_perstate(elem, opt, st_list)
      tk_send('element', 'perstate', elem, "-{opt}", st_list)
    end

element_type(elem) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 903
    def element_type(elem)
      tk_send('element', 'type', elem)
    end

expand(*dsc) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 911
    def expand(*dsc)
      tk_send('expand', *dsc)
      self
    end

expand_recurse(*dsc) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 916
    def expand_recurse(*dsc)
      tk_send('expand', '-recurse', *dsc)
      self
    end

get_item_image(item, column=nil) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1107
    def get_item_image(item, column=nil)
      item_image(item, column)
    end

get_item_span(item, column=nil) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1283
    def get_item_span(item, column=nil)
      item_span(item, column)
    end

get_style_layout(style, elem, opt=None) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1703
    def get_style_layout(style, elem, opt=None)
      style_layout(style, elem, opt)
    end

identify(x, y) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 921
    def identify(x, y)
      lst = list(tk_send('identify', x, y))

      if lst[0] == 'item'
        lst[1] = Tk::TreeCtrl::Item.id2obj(self, lst[1])
        size = lst.size
        i = 2
        while i < size
          case lst[i]
          when 'line'
            i += 1
            lst[i] = Tk::TreeCtrl::Item.id2obj(self, lst[i])
            i += 1

          when 'button'
            i += 1

          when 'column'
            i += 2

          when 'elem'
            i += 1
            lst[i] = Tk::TreeCtrl::Element.id2obj(self, lst[i])
            i += 1

          else
            i += 1
          end
        end
      end

      lst
    end

index(idx) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 955
    def index(idx)
      num_or_str(tk_send('index', idx))
    end

install_bind(cmd, *args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 693
    def install_bind(cmd, *args)
      install_bind_for_event_class(Tk::TreeCtrl::NotifyEvent, cmd, *args)
    end

item_ancestors(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 959
    def item_ancestors(item)
      list(tk_send('item', 'ancestors', item)).collect!{|id|
        Tk::TreeCtrl::Item.id2obj(self, id)
      }
    end

item_bbox(item, *args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 965
    def item_bbox(item, *args)
      list(tk_send('item', 'bbox', item, *args))
    end

item_children(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 969
    def item_children(item)
      list(tk_send('item', 'children', item)).collect!{|id|
        Tk::TreeCtrl::Item.id2obj(self, id)
      }
    end

item_children_size(item)
Alias for: item_numchildren
item_collapse(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 975
    def item_collapse(item)
      tk_send_without_enc('item', 'collapse', _get_eval_string(item, true))
      self
    end

item_collapse_recurse(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 980
    def item_collapse_recurse(item)
      tk_send_without_enc('item', 'collapse',
                          _get_eval_string(item, true), '-recurse')
      self
    end

item_compare(item1, op, item2) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 986
    def item_compare(item1, op, item2)
      bool(tk_send('item', 'compare', item1, op, item2))
    end

item_complex(item, *args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 990
    def item_complex(item, *args)
      tk_send_without_enc('item', 'complex',
                          _get_eval_string(item, true),
                          *(args.map!{|arg| _get_eval_string(arg, true)}))
      self
    end

item_count() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 997
    def item_count
      num_or_str(tk_send('item', 'count'))
    end

item_create(keys={}) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1001
    def item_create(keys={})
      num_or_str(tk_send_without_enc('item', 'create', *hash_kv(keys, true)))
    end

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

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1012
    def item_delete(first, last=None)
      Tk::TreeCtrl::Item::TreeCtrlItemID_TBL.mutex.synchronize{
        if Tk::TreeCtrl::Item::TreeCtrlItemID_TBL[self.path]
          if first == 'all' || first == :all || last == 'all' || last == :all
            Tk::TreeCtrl::Item::TreeCtrlItemID_TBL[self.path].clear
          elsif last == None
            _erase_children(first)
          else
            self.range(first, last).each{|id|
              _erase_children(id)
            }
          end
        end
      }
      tk_send('item', 'delete', first, last)
      self
    end

item_dump(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1030
    def item_dump(item)
      list(tk_send('item', 'dump', item))
    end

item_dump_hash(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1034
    def item_dump_hash(item)
      Hash[*list(tk_send('item', 'dump', item))]
    end

item_element_actual(item, column, elem, key) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1038
    def item_element_actual(item, column, elem, key)
      tk_send('item', 'element', 'actual', item, column, elem, "-#{key}")
    end

item_element_perstate(elem, opt, st_list) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1042
    def item_element_perstate(elem, opt, st_list)
      tk_send('item', 'element', 'perstate', elem, "-{opt}", st_list)
    end

item_expand(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1046
    def item_expand(item)
      tk_send('item', 'expand', item)
      self
    end

item_expand_recurse(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1051
    def item_expand_recurse(item)
      tk_send('item', 'expand', item, '-recurse')
      self
    end

item_first_child(parent, child=nil)
Alias for: item_firstchild
item_firstchild(parent, child=nil) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1056
    def item_firstchild(parent, child=nil)
      if child
        tk_send_without_enc('item', 'firstchild',
                            _get_eval_string(parent, true),
                            _get_eval_string(child, true))
        self
      else
        id = num_or_str(tk_send_without_enc('item', 'firstchild',
                                            _get_eval_string(parent, true)))
        Tk::TreeCtrl::Item.id2obj(self, id)
      end
    end

Also aliased as: item_first_child
item_has_button(item, st=None)
Alias for: item_hasbutton
item_has_button?(item)
Alias for: item_hasbutton?
item_hasbutton(item, st=None) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1070
    def item_hasbutton(item, st=None)
      if st == None
        bool(tk_send_without_enc('item', 'hasbutton',
                                 _get_eval_string(item, true)))
      else
        tk_send_without_enc('item', 'hasbutton',
                            _get_eval_string(item, true),
                            _get_eval_string(st))
        self
      end
    end

Also aliased as: item_has_button
item_hasbutton?(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1083
    def item_hasbutton?(item)
      item_hasbutton(item)
    end

Also aliased as: item_has_button?
item_id(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1088
    def item_id(item)
      tk_send('item', 'id', item)
    end

item_image(item, column=nil, *args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1092
    def item_image(item, column=nil, *args)
      if args.empty?
        if column
          img = tk_send('item', 'image', item, column)
          TkImage::Tk_IMGTBL[img]? TkImage::Tk_IMGTBL[img] : img
        else
          simplelist(tk_send('item', 'image', item)).collect!{|img|
            TkImage::Tk_IMGTBL[img]? TkImage::Tk_IMGTBL[img] : img
          }
        end
      else
        tk_send('item', 'image', item, column, *args)
        self
      end
    end

item_index(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1114
    def item_index(item)
      list(tk_send('item', 'index', item))
    end

item_is_ancestor(item, des)
Alias for: item_isancestor
item_is_ancestor?(item, des)
Alias for: item_isancestor
item_is_open(item)
Alias for: item_isopen
item_is_open?(item)
Alias for: item_isopen
item_is_opened?(item)
Alias for: item_isopen
item_isancestor(item, des) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1118
    def item_isancestor(item, des)
      bool(tk_send('item', 'isancestor', item, des))
    end

Also aliased as: item_is_ancestor, item_isancestor?, item_is_ancestor?
item_isancestor?(item, des)
Alias for: item_isancestor
item_isopen(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1125
    def item_isopen(item)
      bool(tk_send('item', 'isopen', item))
    end

Also aliased as: item_is_open, item_isopen?, item_is_open?, item_isopened?, item_is_opened?
item_isopen?(item)
Alias for: item_isopen
item_isopened?(item)
Alias for: item_isopen
item_last_child(parent, child=nil)
Alias for: item_lastchild
item_lastchild(parent, child=nil) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1134
    def item_lastchild(parent, child=nil)
      if child
        tk_send_without_enc('item', 'lastchild',
                            _get_eval_string(parent, true),
                            _get_eval_string(child, true))
        self
      else
        id = num_or_str(tk_send_without_enc('item', 'lastchild',
                                            _get_eval_string(parent, true)))
        Tk::TreeCtrl::Item.id2obj(self, id)
      end
    end

Also aliased as: item_last_child
item_next_sibling(sibling, nxt=nil)
Alias for: item_nextsibling
item_nextsibling(sibling, nxt=nil) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1148
    def item_nextsibling(sibling, nxt=nil)
      if nxt
        tk_send('item', 'nextsibling', sibling, nxt)
        self
      else
        id = num_or_str(tk_send('item', 'nextsibling', sibling))
        Tk::TreeCtrl::Item.id2obj(self, id)
      end
    end

Also aliased as: item_next_sibling
item_num_children(item)
Alias for: item_numchildren
item_numchildren(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1159
    def item_numchildren(item)
      number(tk_send_without_enc('item', 'numchildren',
                                 _get_eval_string(item, true)))
    end

Also aliased as: item_num_children, item_children_size
item_order(item, visible=false) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1166
    def item_order(item, visible=false)
      if visible
        ret = num_or_str(tk_send('item', 'order', item, '-visible'))
      else
        ret = num_or_str(tk_send('item', 'order', item))
      end

      (ret.kind_of?(Fixnum) && ret < 0)? nil: ret
    end

item_parent(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1179
    def item_parent(item)
      id = num_or_str(tk_send('item', 'parent', item))
      Tk::TreeCtrl::Item.id2obj(self, id)
    end

item_prev_sibling(sibling, prev=nil)
Alias for: item_prevsibling
item_prevsibling(sibling, prev=nil) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1184
    def item_prevsibling(sibling, prev=nil)
      if prev
        tk_send('item', 'prevsibling', sibling, prev)
        self
      else
        id = num_or_str(tk_send('item', 'prevsibling', sibling))
        Tk::TreeCtrl::Item.id2obj(self, id)
      end
    end

Also aliased as: item_prev_sibling
item_range(first, last) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1195
    def item_range(first, last)
      simplelist(tk_send('item', 'range', first, last))
    end

item_remove(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1199
    def item_remove(item)
      tk_send('item', 'remove', item)
      self
    end

item_rnc(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1204
    def item_rnc(item)
      list(tk_send('item', 'rnc', item))
    end

item_sort(item, *opts) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1264
    def item_sort(item, *opts)
      _item_sort_core(true, item, *opts)
    end

item_sort_not_really(item, *opts) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1267
    def item_sort_not_really(item, *opts)
      _item_sort_core(false, item, *opts)
    end

item_span(item, column=nil, *args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1271
    def item_span(item, column=nil, *args)
      if args.empty?
        if column
          list(tk_send('item', 'span', item, column))
        else
          simplelist(tk_send('item', 'span', item)).collect!{|elem| list(elem)}
        end
      else
        tk_send('item', 'span', item, column, *args)
        self
      end
    end

item_state_for_column(item, column, *args)
Alias for: item_state_forcolumn
item_state_forcolumn(item, column, *args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1290
    def item_state_forcolumn(item, column, *args)
      tk_send('item', 'state', 'forcolumn', item, column, *args)
    end

Also aliased as: item_state_for_column
item_state_get(item, *args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1295
    def item_state_get(item, *args)
      if args.empty?
        list(tk_send('item', 'state', 'get', item *args))
      else
        bool(tk_send('item', 'state', 'get', item))
      end
    end

item_state_set(item, *args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1303
    def item_state_set(item, *args)
      tk_send('item', 'state', 'set', item, *args)
    end

item_style_elements(item, column) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1307
    def item_style_elements(item, column)
      list(tk_send('item', 'style', 'elements', item, column)).collect!{|id|
        Tk::TreeCtrl::Style.id2obj(self, id)
      }
    end

item_style_map(item, column, style, map) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1313
    def item_style_map(item, column, style, map)
      tk_send('item', 'style', 'map', item, column, style, map)
      self
    end

item_style_set(item, column=nil, *args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1318
    def item_style_set(item, column=nil, *args)
      if args.empty?
        if column
          id = tk_send_without_enc('item', 'style', 'set',
                                   _get_eval_string(item, true),
                                   _get_eval_string(column, true))
          Tk::TreeCtrl::Style.id2obj(self, id)
        else
          list(tk_send_without_enc('item', 'style', 'set',
                                   _get_eval_string(item, true))).collect!{|id|
            Tk::TreeCtrl::Style.id2obj(self, id)
          }
        end
      else
        tk_send_without_enc('item', 'style', 'set',
                            _get_eval_string(item, true),
                            _get_eval_string(column, true),
                            *(args.flatten.map!{|arg|
                                _get_eval_string(arg, true)
                              }))
        self
      end
    end

item_text(item, column, txt=nil, *args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1342
    def item_text(item, column, txt=nil, *args)
      if args.empty?
        if txt
          tk_send('item', 'text', item, column, txt)
          self
        else
          tk_send('item', 'text', item, column)
        end
      else
        tk_send('item', 'text', item, column, txt, *args)
        self
      end
    end

item_toggle(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1356
    def item_toggle(item)
      tk_send('item', 'toggle', item)
      self
    end

item_toggle_recurse(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1361
    def item_toggle_recurse(item)
      tk_send('item', 'toggle', item, '-recurse')
      self
    end

item_visible(item, st=None) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1366
    def item_visible(item, st=None)
      if st == None
        bool(tk_send('item', 'visible', item))
      else
        tk_send('item', 'visible', item, st)
        self
      end
    end

item_visible?(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1374
    def item_visible?(item)
      item_visible(item)
    end

item_visible_order(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1175
    def item_visible_order(item)
      item_order(item, true)
    end

items_size()
Alias for: numitems
marquee_anchor(*args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1378
    def marquee_anchor(*args)
      if args.empty?
        list(tk_send('marquee', 'anchor'))
      else
        tk_send('marquee', 'anchor', *args)
        self
      end
    end

marquee_coords(*args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1387
    def marquee_coords(*args)
      if args.empty?
        list(tk_send('marquee', 'coords'))
      else
        tk_send('marquee', 'coords', *args)
        self
      end
    end

marquee_corner(*args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1396
    def marquee_corner(*args)
      if args.empty?
        tk_send('marquee', 'corner')
      else
        tk_send('marquee', 'corner', *args)
        self
      end
    end

marquee_identify() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1405
    def marquee_identify()
      list(tk_send('marquee', 'identify')).collect!{|id|
        Tk::TreeCtrl::Item.id2obj(self, id)
      }
    end

marquee_visible(st=None) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1411
    def marquee_visible(st=None)
      if st == None
        bool(tk_send('marquee', 'visible'))
      else
        tk_send('marquee', 'visible', st)
        self
      end
    end

marquee_visible?() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1419
    def marquee_visible?()
      marquee_visible()
    end

notify_bind(obj, event, *args) click to toggle source

def #notify_bind(obj, event, cmd=Proc.new, *args)

    _bind([@path, 'notify', 'bind', obj], event, cmd, *args)
    self

end

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1427
    def notify_bind(obj, event, *args)
      # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
      if TkComm._callback_entry?(args[0]) || !block_given?
        cmd = args.shift
      else
        cmd = Proc.new
      end
      _bind([@path, 'notify', 'bind', obj], event, cmd, *args)
      self
    end

notify_bind_append(obj, event, *args) click to toggle source

def #notify_bind_append(obj, event, cmd=Proc.new, *args)

    _bind_append([@path, 'notify', 'bind', obj], event, cmd, *args)
    self

end

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1442
    def notify_bind_append(obj, event, *args)
      # if args[0].kind_of?(Proc) || args[0].kind_of?(Method)
      if TkComm._callback_entry?(args[0]) || !block_given?
        cmd = args.shift
      else
        cmd = Proc.new
      end
      _bind_append([@path, 'notify', 'bind', obj], event, cmd, *args)
      self
    end

notify_bind_remove(obj, event) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1453
    def notify_bind_remove(obj, event)
      _bind_remove([@path, 'notify', 'bind', obj], event)
      self
    end

notify_bindinfo(obj, event=nil) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1458
    def notify_bindinfo(obj, event=nil)
      _bindinfo([@path, 'notify', 'bind', obj], event)
    end

notify_detailnames(event) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1462
    def notify_detailnames(event)
      list(tk_send('notify', 'detailnames', event))
    end

notify_eventnames() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1466
    def notify_eventnames()
      list(tk_send('notify', 'eventnames'))
    end

notify_generate(pattern, char_map=None, percents_cmd=None) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1470
    def notify_generate(pattern, char_map=None, percents_cmd=None)
      pattern = "<#{pattern}>"
      tk_send('notify', 'generate', pattern, char_map, percents_cmd)
      self
    end

notify_install(pattern, percents_cmd=nil, &b) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1476
    def notify_install(pattern, percents_cmd=nil, &b)
      pattern = "<#{pattern}>"
      percents_cmd = Proc.new(&b) if !percents_cmd && b
      if percents_cmd
        procedure(tk_send('notify', 'install', pattern, percents_cmd))
      else
        procedure(tk_send('notify', 'install', pattern))
      end
    end

notify_install_detail(event, detail, percents_cmd=nil, &b) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1486
    def notify_install_detail(event, detail, percents_cmd=nil, &b)
      percents_cmd = Proc.new(&b) if !percents_cmd && b
      if percents_cmd
        tk_send('notify', 'install', 'detail', event, detail, percents_cmd)
      else
        tk_send('notify', 'install', 'detail', event, detail)
      end
    end

notify_install_event(event, percents_cmd=nil, &b) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1495
    def notify_install_event(event, percents_cmd=nil, &b)
      percents_cmd = Proc.new(&b) if !percents_cmd && b
      if percents_cmd
        tk_send('notify', 'install', 'event', event, percents_cmd)
      else
        tk_send('notify', 'install', 'event', event)
      end
    end

notify_linkage(pattern, detail=None) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1504
    def notify_linkage(pattern, detail=None)
      if detail != None
        tk_send('notify', 'linkage', pattern, detail)
      else
        begin
          if pattern.to_s.index(?-)
            # TreeCtrl 1.1 format?
            begin
              tk_send('notify', 'linkage', "<#{pattern}>")
            rescue
              # TreeCtrl 1.0?
              tk_send('notify', 'linkage', pattern)
            end
          else
            # TreeCtrl 1.0 format?
            begin
              tk_send('notify', 'linkage', pattern)
            rescue
              # TreeCtrl 1.1?
              tk_send('notify', 'linkage', "<#{pattern}>")
            end
          end
        end
      end
    end

notify_unbind(pattern=nil) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1530
    def notify_unbind(pattern=nil)
      if pattern
        tk_send('notify', 'unbind', "<#{pattern}>")
      else
        tk_send('notify', 'unbind')
      end
      self
    end

notify_uninstall(pattern) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1539
    def notify_uninstall(pattern)
      pattern = "<#{pattern}>"
      tk_send('notify', 'uninstall', pattern)
      self
    end

notify_uninstall_detail(event, detail) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1545
    def notify_uninstall_detail(event, detail)
      tk_send('notify', 'uninstall', 'detail', event, detail)
      self
    end

notify_uninstall_event(event) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1550
    def notify_uninstall_event(event)
      tk_send('notify', 'uninstall', 'event', event)
      self
    end

num_columns()
Alias for: numcolumns
num_items()
Alias for: numitems
numcolumns() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1555
    def numcolumns()
      num_or_str(tk_send('numcolumns'))
    end

Also aliased as: num_columns, columns_size
numitems() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1561
    def numitems()
      num_or_str(tk_send('numitems'))
    end

Also aliased as: num_items, items_size
orphans() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1567
    def orphans()
      list(tk_send('orphans')).collect!{|id|
        Tk::TreeCtrl::Item.id2obj(self, id)
      }
    end

range(first, last) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1573
    def range(first, last)
      list(tk_send('range', first, last)).collect!{|id|
        Tk::TreeCtrl::Item.id2obj(self, id)
      }
    end

see(item, column=None, keys={}) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1597
    def see(item, column=None, keys={})
      tk_send('see', item, column, *hash_kv(keys))
      self
    end

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

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1602
    def selection_add(first, last=None)
      tk_send('selection', 'add', first, last)
      self
    end

selection_anchor(item=None) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1607
    def selection_anchor(item=None)
      id = num_or_str(tk_send('selection', 'anchor', item))
      Tk::TreeCtrl::Item.id2obj(self, id)
    end

selection_clear(*args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1612
    def selection_clear(*args) # first, last
      tk_send('selection', 'clear', *args)
      self
    end

selection_count() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1617
    def selection_count()
      number(tk_send('selection', 'count'))
    end

selection_get() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1621
    def selection_get()
      list(tk_send('selection', 'get')).collect!{|id|
        Tk::TreeCtrl::Item.id2obj(self, id)
      }
    end

selection_includes(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1627
    def selection_includes(item)
      bool(tk_send('selection', 'includes', item))
    end

selection_modify(sel, desel) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1631
    def selection_modify(sel, desel)
      tk_send('selection', 'modify', sel, desel)
      self
    end

set_item_image(item, col, img, *args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1110
    def set_item_image(item, col, img, *args)
      item_image(item, col, img, *args)
    end

set_item_span(item, col, num, *args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1286
    def set_item_span(item, col, num, *args)
      item_span(item, col, num, *args)
    end

set_style_layout(style, elem, slot, value=None) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1706
    def set_style_layout(style, elem, slot, value=None)
      if slot.kind_of?(Hash)
        style_layout(style, elem, slot)
      else
        style_layout(style, elem, {slot=>value})
      end
    end

state_define(name) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1579
    def state_define(name)
      tk_send('state', 'define', name)
      self
    end

state_linkage(name) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1584
    def state_linkage(name)
      tk_send('state', 'linkage', name)
    end

state_names() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1588
    def state_names()
      list(tk_send('state', 'names'))
    end

state_undefine(*names) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1592
    def state_undefine(*names)
      tk_send('state', 'undefine', *names)
      self
    end

style_create(style, keys=None) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1636
    def style_create(style, keys=None)
      if keys && keys != None
        tk_send('style', 'create', style, *hash_kv(keys))
      else
        tk_send('style', 'create', style)
      end
    end

style_delete(*args) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1644
    def style_delete(*args)
      Tk::TreeCtrl::Style::TreeCtrlStyleID_TBL.mutex.synchronize{
        if Tk::TreeCtrl::Style::TreeCtrlStyleID_TBL[self.path]
          args.each{|sty|
            Tk::TreeCtrl::Style::TreeCtrlStyleID_TBL[self.path].delete(sty)
          }
        end
      }
      tk_send('style', 'delete', *args)
      self
    end

style_elements(style, *elems) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1656
    def style_elements(style, *elems)
      if elems.empty?
        list(tk_send('style', 'elements', style)).collect!{|id|
          Tk::TreeCtrl::Element.id2obj(self, id)
        }
      else
        tk_send('style', 'elements', style, elems.flatten)
        self
      end
    end

style_layout(style, elem, keys=None) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1684
    def style_layout(style, elem, keys=None)
      if keys && keys != None
        if keys.kind_of?(Hash)
          tk_send('style', 'layout', style, elem, *hash_kv(keys))
          self
        else
          _conv_style_layout_val(keys,
                                 tk_send('style', 'layout',
                                         style, elem, "-#{keys}"))
        end
      else
        ret = Hash.new
        Hash[*simplelist(tk_send('style', 'layout', style, elem))].each{|k, v|
          k = k[1..-1]
          ret[k] = _conv_style_layout_val(k, v)
        }
        ret
      end
    end

style_names() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1714
    def style_names()
      list(tk_send('style', 'names')).collect!{|id|
        Tk::TreeCtrl::Style.id2obj(self, id)
      }
    end

toggle(*items) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1720
    def toggle(*items)
      tk_send('toggle', *items)
      self
    end

toggle_recurse() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1725
    def toggle_recurse()
      tk_send('toggle', '-recurse', *items)
      self
    end

### Private Instance Methods

__boolval_optkeys() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 677
    def __boolval_optkeys
      [
        'itemwidthequal', 'usetheme',
        'showbuttons', 'showheader', 'showlines', 'showroot',
        'showrootbutton', 'showrootlines', 'showrootchildbuttons'
      ]
    end

__listval_optkeys() click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 686
    def __listval_optkeys
      [ 'defaultstyle' ]
    end

__strval_optkeys() click to toggle source
Calls superclass method

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 670
    def __strval_optkeys
      super() + [
        'buttoncolor', 'columnprefix', 'itemprefix', 'linecolor'
      ]
    end

_conv_element_perstate_val(opt, val) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 887
    def _conv_element_perstate_val(opt, val)
      case opt
      when 'background', 'foreground', 'fill', 'outline', 'format'
        val
      when 'draw', 'filled', 'showfocus', 'destroy'
        bool(val)
      else
        tk_tcl2ruby(val)
      end
    end

_conv_style_layout_val(sty, val) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1667
    def _conv_style_layout_val(sty, val)
      case sty.to_s
      when 'padx', 'pady', 'ipadx', 'ipady'
        lst = list(val)
        (lst.size == 1)? lst[0]: lst
      when 'detach', 'indent'
        bool(val)
      when 'union'
        simplelist(val).collect!{|elem|
          Tk::TreeCtrl::Element.id2obj(self, elem)
        }
      else
        val
      end
    end

_erase_children(item) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1005
    def _erase_children(item)
      item_children(item).each{|i| _erase_children(i)}
      # table is already locked
      Tk::TreeCtrl::Item::TreeCtrlItemID_TBL[self.path].delete(item)
    end

_item_sort_core(real_sort, item, *opts) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 1208
    def _item_sort_core(real_sort, item, *opts)
      # opts ::= sort_param [, sort_param, ... ]
      # sort_param ::= {key=>val, ...}
      #                [type, desc, {key=>val, ...}]
      #                param
      opts = opts.collect{|param|
        if param.kind_of?(Hash)
          param = _symbolkey2str(param)
          if param.key?('column')
            key = '-column'
            desc = param.delete('column')
          elsif param.key?('element')
            key = '-element'
            desc = param.delete('element')
          else
            key = nil
          end

          if param.empty?
            param = None
          else
            param = hash_kv(__conv_item_keyonly_opts(item, param))
          end

          if key
            [key, desc].concat(param)
          else
            param
          end

        elsif param.kind_of?(Array)
          if param[2].kind_of?(Hash)
            param[2] = hash_kv(__conv_item_keyonly_opts(item, param[2]))
          end
          param

        elsif param.kind_of?(String) && param =~ /\A[a-z]+\Z/
          '-' << param

        elsif param.kind_of?(Symbol)
          '-' << param.to_s

        else
          param
        end
      }.flatten

      if real_sort
        tk_send('item', 'sort', item, *opts)
        self
      else
        list(tk_send('item', 'sort', item, '-notreally', *opts))
      end
    end

create_self(keys) click to toggle source

    # File lib/tkextlib/treectrl/tktreectrl.rb, line 699
    def create_self(keys)
      if keys and keys != None
        tk_call_without_enc(self.class::TkCommandNames[0], @path,
                            *hash_kv(keys, true))
      else
        tk_call_without_enc(self.class::TkCommandNames[0], @path)
      end
    end