In Files

  • tk/lib/tkextlib/blt/tree.rb

Class/Module Index [+]

Quicksearch

Tk::BLT::Tree

Public Class Methods

destroy(*names) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 510
def self.destroy(*names)
  tk_call('::blt::tree', 'destroy',
          *(names.collect{|n| (n.kind_of?(Tk::BLT::Tree))? n.id: n }) )
end
            
id2obj(id) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 500
def self.id2obj(id)
  TreeID_TBL[id]? TreeID_TBL[id]: id
end
            
names(pat = None) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 504
def self.names(pat = None)
  simplelist(tk_call('::blt::tree', 'names', pat)).collect{|name|
    id2obj(name)
  }
end
            
new(name = nil) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 515
def self.new(name = nil)
  return TreeID_TBL[name] if name && TreeID_TBL[name]
  super(name)
end
            

Public Instance Methods

__destroy_hook__() click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 532
def __destroy_hook__
  Tk::BLT::Tree::Node::TreeNodeID_TBL.delete(@path)
  Tk::BLT::Tree::Tag::TreeTagID_TBL.delete(@path)
  Tk::BLT::Tree::Notify::NotifyID_TBL.delete(@path)
  Tk::BLT::Tree::Trace::TraceID_TBL.delete(@path)
end
            
__keyonly_optkeys() click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 480
def __keyonly_optkeys
  {
    # apply / find  command
    'invert'=>nil, 'leafonly'=>nil, 'nocase'=>nil,

    # apply / find / sort command
    'path'=>nil,

    # copy / restore / restorefile command
    'overwrite'=>nil,

    # copy command
    'recurse'=>nil, 'tags'=>nil,

    # sort command
    'ascii'=>nil, 'decreasing'=>nil, 'disctionary'=>nil, 
    'integer'=>nil, 'real'=>nil, 'recurse'=>nil, 'reorder'=>nil, 
  }
end
            
ancestor(node1, node2) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 555
def ancestor(node1, node2)
  Tk::BLT::Tree::Node.id2obj(self, tk_call('::blt::tree', 'ancestor', 
                                           tagid(node1), tagid(node2)))
end
            
ancestor?(node1, node2) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 658
def ancestor?(node1, node2)
  bool(tk_call('::blt::tree', 'is', 'ancestor', 
               tagid(node1), tagid(node2)))
end
            
apply(node, keys={}) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 560
def apply(node, keys={})
  tk_call('::blt::tree', 'apply', tagid(node), __conv_keyonly_opts(keys))
  self
end
            
attach(tree_obj) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 565
def attach(tree_obj)
  tk_call('::blt::tree', 'attach', tree_obj)
  self
end
            
before?(node1, node2) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 662
def before?(node1, node2)
  bool(tk_call('::blt::tree', 'is', 'before', 
               tagid(node1), tagid(node2)))
end
            
children(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 570
def children(node)
  simplelist(tk_call('::blt::tree', 'children', tagid(node))).collect{|n|
    Tk::BLT::Tree::Node.id2obj(self, n)
  }
end
            
copy(src, parent, keys={}) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 576
def copy(src, parent, keys={})
  id = tk_call('::blt::tree', 'copy', tagid(src), tagid(parent), 
               __conv_keyonly_opts(keys))
  Tk::BLT::Tree::Node.new(self, nil, 'node'=>id)
end
            
copy_to(src, dest_tree, parent, keys={}) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 581
def copy_to(src, dest_tree, parent, keys={})
  return copy(src, parent, keys={}) unless dest_tree

  id = tk_call('::blt::tree', 'copy', tagid(src), dest_tree, 
               tagid(parent), __conv_keyonly_opts(keys))
  Tk::BLT::Tree::Node.new(dest_tree, nil, 'node'=>id)
end
            
degree(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 589
def degree(node)
  number(tk_call('::blt::tree', 'degree', tagid(node)))
end
            
delete(*nodes) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 593
def delete(*nodes)
  tk_call('::blt::tree', 'delete', *(nodes.collect{|node| tagid(node)}))
  nodes.each{|node|
    if node.kind_of?(Tk::BLT::Tree::Node)
      Tk::BLT::Tree::Node::TreeNodeID_TBL[@path].delete(node.id)
    else
      Tk::BLT::Tree::Node::TreeNodeID_TBL[@path].delete(node.to_s)
    end
  }
  self
end
            
depth(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 605
def depth(node)
  number(tk_call('::blt::tree', 'depth', tagid(node)))
end
            
destroy() click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 550
def destroy()
  tk_call('::blt::tree', 'destroy', @id)
  self
end
            
dump(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 609
def dump(node)
  simplelist(tk_call('::blt::tree', 'dump', tagid(node))).collect{|n|
    simplelist(n)
  }
end
            
dump_to_file(node, file) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 615
def dump_to_file(node, file)
  tk_call('::blt::tree', 'dumpfile', tagid(node), file)
  self
end
            
exist?(node, key=None) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 620
def exist?(node, key=None)
  bool(tk_call('::blt::tree', 'exists', tagid(node), key))
end
            
find(node, keys={}) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 624
def find(node, keys={})
  simplelist(tk_call('::blt::tree', 'find', tagid(node), 
                     __conv_keyonly_opts(keys))).collect{|n|
    Tk::BLT::Tree::Node.id2obj(self, n)
  }
end
            
find_child(node, label) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 631
def find_child(node, label)
  ret = tk_call('::blt::tree', 'findchild', tagid(node), label)
  (ret == '-1')? nil: Tk::BLT::Tree::Node.id2obj(self, ret)
end
            
first_child(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 636
def first_child(node)
  ret = tk_call('::blt::tree', 'firstchild', tagid(node))
  (ret == '-1')? nil: Tk::BLT::Tree::Node.id2obj(self, ret)
end
            
fullpath(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 755
def fullpath(node)
  tk_call('::blt::tree', 'path', tagid(node))
end
            
get(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 641
def get(node)
  Hash[*simplelist(tk_call('::blt::tree', 'get', tagid(node)))]
end
            
get_value(node, key, default_val=None) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 644
def get_value(node, key, default_val=None)
  tk_call('::blt::tree', 'get', tagid(node), key, default_val)
end
            
index(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 648
def index(node)
  Tk::BLT::Tree::Node.id2obj(self, 
                             tk_call('::blt::tree', 'index', tagid(node)))
end
            
initialzie(name = nil) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 520
def initialzie(name = nil)
  if name
    @path = @id = name
  else
    @path = @id = Tree_ID.join(TkCore::INTERP._ip_id_)
    TreeID_TBL[@id] = self
    Tree_ID[1].succ!
  end
  TreeID_TBL[@id] = self
  tk_call('::blt::tree', 'create', @id)
end
            
insert(parent, keys={}) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 653
def insert(parent, keys={})
  id = tk_call('::blt::tree', 'insert', tagid(parent), keys)
  Tk::BLT::Tree::Node.new(self, nil, 'node'=>id)
end
            
keys(node, *nodes) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 676
def keys(node, *nodes)
  if nodes.empty?
    simplelist(tk_call('blt::tree', 'keys', tagid(node)))
  else
    simplelist(tk_call('blt::tree', 'keys', tagid(node), 
                       *(nodes.collect{|n| tagid(n)}))).collect{|lst|
      simplelist(lst)
    }
  end
end
            
label(node, text=nil) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 687
def label(node, text=nil)
  if text
    tk_call('::blt::tree', 'label', tagid(node), text)
    text
  else
    tk_call('::blt::tree', 'label', tagid(node))
  end
end
            
last_child(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 696
def last_child(node)
  ret = tk_call('::blt::tree', 'lastchild', tagid(node))
  (ret == '-1')? nil: Tk::BLT::Tree::Node.id2obj(self, ret)
end
            
leaf?(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 666
def leaf?(node)
  bool(tk_call('::blt::tree', 'is', 'leaf', tagid(node)))
end
            
move(node, dest, keys={}) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 707
def move(node, dest, keys={})
  tk_call('::blt::tree', 'move', tagid(node), tagid(dest), keys)
  self
end
            
next(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 712
def next(node)
  ret = tk_call('::blt::tree', 'next', tagid(node))
  (ret == '-1')? nil: Tk::BLT::Tree::Node.id2obj(self, ret)
end
            
next_sibling(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 717
def next_sibling(node)
  ret = tk_call('::blt::tree', 'nextsibling', tagid(node))
  (ret == '-1')? nil: Tk::BLT::Tree::Node.id2obj(self, ret)
end
            
notify_create(*args, &b) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 722
def notify_create(*args, &b)
  Tk::BLT::Tree::Notify.new(self, *args, &b)
end
            
notify_delete(id) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 726
def notify_delete(id)
  if id.kind_of?(Tk::BLT::Tree::Notify)
    id.delete
  else
    tk_call(@path, 'notify', 'delete', id)
    Tk::BLT::Tree::Notify::NotifyID_TBL[@path].delete(id.to_s)
  end
  self
end
            
notify_info(id) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 736
def notify_info(id)
  lst = simplelist(tk_call(@path, 'notify', 'info', tagid(id)))
  lst[0] = Tk::BLT::Tree::Notify.id2obj(self, lst[0])
  lst[1] = simplelist(lst[1]).collect{|flag| flag[1..-1]}
  lst[2] = tk_tcl2ruby(lst[2])
  lst
end
            
notify_names() click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 744
def notify_names()
  tk_call(@path, 'notify', 'names').collect{|id|
    Tk::BLT::Tree::Notify.id2obj(self, id)
  }
end
            
parent(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 750
def parent(node)
  ret = tk_call('::blt::tree', 'parent', tagid(node))
  (ret == '-1')? nil: Tk::BLT::Tree::Node.id2obj(self, ret)
end
            
position(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 759
def position(node)
  number(tk_call('::blt::tree', 'position', tagid(node)))
end
            
prev_sibling(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 768
def prev_sibling(node)
  ret = tk_call('::blt::tree', 'prevsibling', tagid(node))
  (ret == '-1')? nil: Tk::BLT::Tree::Node.id2obj(self, ret)
end
            
previous(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 763
def previous(node)
  ret = tk_call('::blt::tree', 'previous', tagid(node))
  (ret == '-1')? nil: Tk::BLT::Tree::Node.id2obj(self, ret)
end
            
restore(node, str, keys={}) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 773
def restore(node, str, keys={})
  tk_call('::blt::tree', 'restore', tagid(node), str, 
          __conv_keyonly_opts(keys))
  self
end
            
restore_from_file(node, file, keys={}) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 786
def restore_from_file(node, file, keys={})
  tk_call('::blt::tree', 'restorefile', tagid(node), file, 
          __conv_keyonly_opts(keys))
  self
end
            
restore_overwrite(node, str, keys={}) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 778
def restore_overwrite(node, str, keys={})
  keys = __conv_keyonly_opts(keys)
  keys.delete('overwrite')
  keys.delete(:overwrite)
  tk_call('::blt::tree', 'restore', tagid(node), str, '-overwrite', keys)
  self
end
            
restore_overwrite_from_file(node, file, keys={}) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 791
def restore_overwrite_from_file(node, file, keys={})
  keys = __conv_keyonly_opts(keys)
  keys.delete('overwrite')
  keys.delete(:overwrite)
  tk_call('::blt::tree', 'restorefile', tagid(node), file, 
          '-overwrite', keys)
  self
end
            
root(node=None) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 800
def root(node=None)
  Tk::BLT::Tree::Node.id2obj(self, tk_call('::blt::tree', 'root', 
                                           tagid(node)))
end
            
root?(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 672
def root?(node)
  bool(tk_call('::blt::tree', 'is', 'root', tagid(node)))
end
            
set(node, data) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 805
def set(node, data)
  unless data.kind_of?(Hash)
    fail ArgumentError, 'Hash is expected for data'
  end
  args = []
  data.each{|k, v|  args << k << v}
  tk_call('::blt::tree', 'set', tagid(node), *args)
  self
end
            
size(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 815
def size(node)
  number(tk_call('::blt::tree', 'size', tagid(node)))
end
            
sort(node, keys={}) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 819
def sort(node, keys={})
  tk_call('::blt::tree', 'sort', tagid(node), __conv_keyonly_opts(keys))
  self
end
            
tag_add(tag, *nodes) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 824
def tag_add(tag, *nodes)
  tk_call(@path, 'tag', 'add', tagid(tag), *(nodes.collect{|n| tagid(n)}))
  self
end
            
tag_delete(tag, *nodes) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 829
def tag_delete(tag, *nodes)
  tk_call(@path, 'tag', 'delete', tagid(tag), 
          *(nodes.collect{|n| tagid(n)}))
  self
end
            
tag_forget(tag) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 835
def tag_forget(tag)
  tag = tag.id if tag.kind_of?(Tk::BLT::Tree::Tag)
  tk_call(@path, 'tag', 'forget', tag)
  TreeTagID_TBL[@path].delete(tag)
  self
end
            
tag_get(node, *patterns) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 842
def tag_get(node, *patterns)
  simplelist(tk_call(@tpath, 'tag', 'get', tagid(node), 
                     *(patterns.collect{|pat| tagid(pat)}))).collect{|str|
    Tk::BLT::Tree::Tag.id2obj(self, str)
  }
end
            
tag_names(node = None) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 849
def tag_names(node = None)
  simplelist(tk_call(@tpath, 'tag', 'names', tagid(node))).collect{|str|
    Tk::BLT::Tree::Tag.id2obj(self, str)
  }
end
            
tag_nodes(tag) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 855
def tag_nodes(tag)
  simplelist(tk_call(@tpath, 'tag', 'nodes', tagid(tag))).collect{|node|
    Tk::BLT::Tree::Node.id2obj(self, node)
  }
end
            
tag_set(node, *tags) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 861
def tag_set(node, *tags)
  tk_call(@path, 'tag', 'set', tagid(node), *(tags.collect{|t| tagid(t)}))
  self
end
            
tag_unset(node, *tags) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 866
def tag_unset(node, *tags)
  tk_call(@path, 'tag', 'unset', tagid(node), 
          *(tags.collect{|t| tagid(t)}))
  self
end
            
tagid(tag) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 539
def tagid(tag)
  if tag.kind_of?(Tk::BLT::Tree::Node) ||
      tag.kind_of?(Tk::BLT::Tree::Tag) ||
      tag.kind_of?(Tk::BLT::Tree::Notify) ||
      tag.kind_of?(Tk::BLT::Tree::Trace)
    tag.id
  else
    tag  # maybe an Array of configure paramters
  end
end
            
trace_create(*args, &b) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 872
def trace_create(*args, &b)
  Tk::BLT::Tree::Trace.new(self, *args, &b)
end
            
trace_delete(*args) click to toggle source

begin

def trace_delete(*args)
  args.each{|id|
    if id.kind_of?(Tk::BLT::Tree::Trace)
      id.delete
    else
      tk_call(@path, 'trace', 'delete', id)
      Tk::BLT::Tree::Trace::TraceID_TBL[@path].delete(id.to_s)
    end
    self
  }
end

end

 
               # File tk/lib/tkextlib/blt/tree.rb, line 889
def trace_delete(*args)
  args = args.collect{|id| tagid(id)}
  tk_call(@path, 'trace', 'delete', *args)
  args.each{|id| Tk::BLT::Tree::Trace::TraceID_TBL[@path].delete(id.to_s)}
  self
end
            
trace_info(id) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 896
def trace_info(id)
  lst = simplelist(tk_call(@path, 'trace', 'info', tagid(id)))
  lst[0] = Tk::BLT::Tree::Trace.id2obj(self, lst[0])
  lst[2] = simplelist(lst[2])
  lst[3] = tk_tcl2ruby(lst[3])
  lst
end
            
trace_names() click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 904
def trace_names()
  tk_call(@path, 'trace', 'names').collect{|id|
    Tk::BLT::Tree::Trace.id2obj(self, id)
  }
end
            
type(node, key) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 910
def type(node, key)
  tk_call('::blt::tree', 'type', tagid(node), key)
end
            
unset(node, *keys) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 914
def unset(node, *keys)
  tk_call('::blt::tree', 'unset', tagid(node), *keys)
  self
end
            
values(node, key=None) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 919
def values(node, key=None)
  simplelist(tk_call('::blt::tree', 'values', tagid(node), key))
end