# File tk/lib/tkextlib/blt/tree.rb, line 619 def self.destroy(*names) tk_call('::blt::tree', 'destroy', *(names.collect{|n| (n.kind_of?(Tk::BLT::Tree))? n.id: n }) ) end
# File tk/lib/tkextlib/blt/tree.rb, line 607 def self.id2obj(id) TreeID_TBL.mutex.synchronize{ TreeID_TBL[id]? TreeID_TBL[id]: id } end
# File tk/lib/tkextlib/blt/tree.rb, line 651 def __destroy_hook__ Tk::BLT::Tree::Node::TreeNodeID_TBL.mutex.synchronize{ Tk::BLT::Tree::Node::TreeNodeID_TBL.delete(@path) } Tk::BLT::Tree::Tag::TreeTagID_TBL.mutex.synchronize{ Tk::BLT::Tree::Tag::TreeTagID_TBL.delete(@path) } Tk::BLT::Tree::Notify::NotifyID_TBL.mutex.synchronize{ Tk::BLT::Tree::Notify::NotifyID_TBL.delete(@path) } Tk::BLT::Tree::Trace::TraceID_TBL.mutex.synchronize{ Tk::BLT::Tree::Trace::TraceID_TBL.delete(@path) } end
# File tk/lib/tkextlib/blt/tree.rb, line 587 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
# File tk/lib/tkextlib/blt/tree.rb, line 682 def ancestor(node1, node2) Tk::BLT::Tree::Node.id2obj(self, tk_call('::blt::tree', 'ancestor', tagid(node1), tagid(node2))) end
# File tk/lib/tkextlib/blt/tree.rb, line 787 def ancestor?(node1, node2) bool(tk_call('::blt::tree', 'is', 'ancestor', tagid(node1), tagid(node2))) end
# File tk/lib/tkextlib/blt/tree.rb, line 687 def apply(node, keys={}) tk_call('::blt::tree', 'apply', tagid(node), __conv_keyonly_opts(keys)) self end
# File tk/lib/tkextlib/blt/tree.rb, line 692 def attach(tree_obj) tk_call('::blt::tree', 'attach', tree_obj) self end
# File tk/lib/tkextlib/blt/tree.rb, line 791 def before?(node1, node2) bool(tk_call('::blt::tree', 'is', 'before', tagid(node1), tagid(node2))) end
# File tk/lib/tkextlib/blt/tree.rb, line 697 def children(node) simplelist(tk_call('::blt::tree', 'children', tagid(node))).collect{|n| Tk::BLT::Tree::Node.id2obj(self, n) } end
# File tk/lib/tkextlib/blt/tree.rb, line 703 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
# File tk/lib/tkextlib/blt/tree.rb, line 708 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
# File tk/lib/tkextlib/blt/tree.rb, line 716 def degree(node) number(tk_call('::blt::tree', 'degree', tagid(node))) end
# File tk/lib/tkextlib/blt/tree.rb, line 720 def delete(*nodes) tk_call('::blt::tree', 'delete', *(nodes.collect{|node| tagid(node)})) Tk::BLT::Tree::Node::TreeNodeID_TBL.mutex.synchronize{ 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
# File tk/lib/tkextlib/blt/tree.rb, line 734 def depth(node) number(tk_call('::blt::tree', 'depth', tagid(node))) end
# File tk/lib/tkextlib/blt/tree.rb, line 677 def destroy() tk_call('::blt::tree', 'destroy', @id) self end
# File tk/lib/tkextlib/blt/tree.rb, line 738 def dump(node) simplelist(tk_call('::blt::tree', 'dump', tagid(node))).collect{|n| simplelist(n) } end
# File tk/lib/tkextlib/blt/tree.rb, line 744 def dump_to_file(node, file) tk_call('::blt::tree', 'dumpfile', tagid(node), file) self end
# File tk/lib/tkextlib/blt/tree.rb, line 749 def exist?(node, key=None) bool(tk_call('::blt::tree', 'exists', tagid(node), key)) end
# File tk/lib/tkextlib/blt/tree.rb, line 753 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
# File tk/lib/tkextlib/blt/tree.rb, line 760 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
# File tk/lib/tkextlib/blt/tree.rb, line 765 def first_child(node) ret = tk_call('::blt::tree', 'firstchild', tagid(node)) (ret == '-1')? nil: Tk::BLT::Tree::Node.id2obj(self, ret) end
# File tk/lib/tkextlib/blt/tree.rb, line 886 def fullpath(node) tk_call('::blt::tree', 'path', tagid(node)) end
# File tk/lib/tkextlib/blt/tree.rb, line 770 def get(node) Hash[*simplelist(tk_call('::blt::tree', 'get', tagid(node)))] end
# File tk/lib/tkextlib/blt/tree.rb, line 773 def get_value(node, key, default_val=None) tk_call('::blt::tree', 'get', tagid(node), key, default_val) end
# File tk/lib/tkextlib/blt/tree.rb, line 777 def index(node) Tk::BLT::Tree::Node.id2obj(self, tk_call('::blt::tree', 'index', tagid(node))) end
# File tk/lib/tkextlib/blt/tree.rb, line 638 def initialzie(name = nil) if name @path = @id = name else Tree_ID.mutex.synchronize{ @path = @id = Tree_ID.join(TkCore::INTERP._ip_id_) Tree_ID[1].succ! } end tk_call('::blt::tree', 'create', @id) end
# File tk/lib/tkextlib/blt/tree.rb, line 782 def insert(parent, keys={}) id = tk_call('::blt::tree', 'insert', tagid(parent), keys) Tk::BLT::Tree::Node.new(self, nil, 'node'=>id) end
# File tk/lib/tkextlib/blt/tree.rb, line 805 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
# File tk/lib/tkextlib/blt/tree.rb, line 816 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
# File tk/lib/tkextlib/blt/tree.rb, line 825 def last_child(node) ret = tk_call('::blt::tree', 'lastchild', tagid(node)) (ret == '-1')? nil: Tk::BLT::Tree::Node.id2obj(self, ret) end
# File tk/lib/tkextlib/blt/tree.rb, line 795 def leaf?(node) bool(tk_call('::blt::tree', 'is', 'leaf', tagid(node))) end
# File tk/lib/tkextlib/blt/tree.rb, line 830 def link(parent, node, keys={}) ret = tk_call('::blt::tree', 'link', tagid(parent), tagid(node), __conv_keyonly_opts(keys)) (ret == '-1')? nil: Tk::BLT::Tree::Node.id2obj(self, ret) end
# File tk/lib/tkextlib/blt/tree.rb, line 798 def link?(node) bool(tk_call('::blt::tree', 'is', 'link', tagid(node))) end
# File tk/lib/tkextlib/blt/tree.rb, line 836 def move(node, dest, keys={}) tk_call('::blt::tree', 'move', tagid(node), tagid(dest), keys) self end
# File tk/lib/tkextlib/blt/tree.rb, line 841 def next(node) ret = tk_call('::blt::tree', 'next', tagid(node)) (ret == '-1')? nil: Tk::BLT::Tree::Node.id2obj(self, ret) end
# File tk/lib/tkextlib/blt/tree.rb, line 846 def next_sibling(node) ret = tk_call('::blt::tree', 'nextsibling', tagid(node)) (ret == '-1')? nil: Tk::BLT::Tree::Node.id2obj(self, ret) end
# File tk/lib/tkextlib/blt/tree.rb, line 851 def notify_create(*args, &b) Tk::BLT::Tree::Notify.new(self, *args, &b) end
# File tk/lib/tkextlib/blt/tree.rb, line 855 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.mutex.synchronize{ Tk::BLT::Tree::Notify::NotifyID_TBL[@path].delete(id.to_s) } end self end
# File tk/lib/tkextlib/blt/tree.rb, line 867 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
# File tk/lib/tkextlib/blt/tree.rb, line 875 def notify_names() tk_call(@path, 'notify', 'names').collect{|id| Tk::BLT::Tree::Notify.id2obj(self, id) } end
# File tk/lib/tkextlib/blt/tree.rb, line 881 def parent(node) ret = tk_call('::blt::tree', 'parent', tagid(node)) (ret == '-1')? nil: Tk::BLT::Tree::Node.id2obj(self, ret) end
# File tk/lib/tkextlib/blt/tree.rb, line 890 def position(node) number(tk_call('::blt::tree', 'position', tagid(node))) end
# File tk/lib/tkextlib/blt/tree.rb, line 899 def prev_sibling(node) ret = tk_call('::blt::tree', 'prevsibling', tagid(node)) (ret == '-1')? nil: Tk::BLT::Tree::Node.id2obj(self, ret) end
# File tk/lib/tkextlib/blt/tree.rb, line 894 def previous(node) ret = tk_call('::blt::tree', 'previous', tagid(node)) (ret == '-1')? nil: Tk::BLT::Tree::Node.id2obj(self, ret) end
# File tk/lib/tkextlib/blt/tree.rb, line 904 def restore(node, str, keys={}) tk_call('::blt::tree', 'restore', tagid(node), str, __conv_keyonly_opts(keys)) self end
# File tk/lib/tkextlib/blt/tree.rb, line 917 def restore_from_file(node, file, keys={}) tk_call('::blt::tree', 'restorefile', tagid(node), file, __conv_keyonly_opts(keys)) self end
# File tk/lib/tkextlib/blt/tree.rb, line 909 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
# File tk/lib/tkextlib/blt/tree.rb, line 922 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
# File tk/lib/tkextlib/blt/tree.rb, line 931 def root(node=None) Tk::BLT::Tree::Node.id2obj(self, tk_call('::blt::tree', 'root', tagid(node))) end
# File tk/lib/tkextlib/blt/tree.rb, line 801 def root?(node) bool(tk_call('::blt::tree', 'is', 'root', tagid(node))) end
# File tk/lib/tkextlib/blt/tree.rb, line 936 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
# File tk/lib/tkextlib/blt/tree.rb, line 946 def size(node) number(tk_call('::blt::tree', 'size', tagid(node))) end
# File tk/lib/tkextlib/blt/tree.rb, line 950 def sort(node, keys={}) tk_call('::blt::tree', 'sort', tagid(node), __conv_keyonly_opts(keys)) self end
# File tk/lib/tkextlib/blt/tree.rb, line 955 def tag_add(tag, *nodes) tk_call(@path, 'tag', 'add', tagid(tag), *(nodes.collect{|n| tagid(n)})) self end
# File tk/lib/tkextlib/blt/tree.rb, line 960 def tag_delete(tag, *nodes) tk_call(@path, 'tag', 'delete', tagid(tag), *(nodes.collect{|n| tagid(n)})) self end
# File tk/lib/tkextlib/blt/tree.rb, line 966 def tag_forget(tag) tag = tag.id if tag.kind_of?(Tk::BLT::Tree::Tag) tk_call(@path, 'tag', 'forget', tag) TreeTagID_TBL.mutex.synchronize{ TreeTagID_TBL[@path].delete(tag) } self end
# File tk/lib/tkextlib/blt/tree.rb, line 975 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
# File tk/lib/tkextlib/blt/tree.rb, line 982 def tag_names(node = None) simplelist(tk_call(@tpath, 'tag', 'names', tagid(node))).collect{|str| Tk::BLT::Tree::Tag.id2obj(self, str) } end
# File tk/lib/tkextlib/blt/tree.rb, line 988 def tag_nodes(tag) simplelist(tk_call(@tpath, 'tag', 'nodes', tagid(tag))).collect{|node| Tk::BLT::Tree::Node.id2obj(self, node) } end
# File tk/lib/tkextlib/blt/tree.rb, line 994 def tag_set(node, *tags) tk_call(@path, 'tag', 'set', tagid(node), *(tags.collect{|t| tagid(t)})) self end
# File tk/lib/tkextlib/blt/tree.rb, line 999 def tag_unset(node, *tags) tk_call(@path, 'tag', 'unset', tagid(node), *(tags.collect{|t| tagid(t)})) self end
# File tk/lib/tkextlib/blt/tree.rb, line 666 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
# File tk/lib/tkextlib/blt/tree.rb, line 1005 def trace_create(*args, &b) Tk::BLT::Tree::Trace.new(self, *args, &b) end
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
# File tk/lib/tkextlib/blt/tree.rb, line 1022 def trace_delete(*args) args = args.collect{|id| tagid(id)} tk_call(@path, 'trace', 'delete', *args) Tk::BLT::Tree::Trace::TraceID_TBL.mutex.synchronize{ args.each{|id| Tk::BLT::Tree::Trace::TraceID_TBL[@path].delete(id.to_s)} } self end
# File tk/lib/tkextlib/blt/tree.rb, line 1031 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
# File tk/lib/tkextlib/blt/tree.rb, line 1039 def trace_names() tk_call(@path, 'trace', 'names').collect{|id| Tk::BLT::Tree::Trace.id2obj(self, id) } end
# File tk/lib/tkextlib/blt/tree.rb, line 1045 def type(node, key) tk_call('::blt::tree', 'type', tagid(node), key) end
Commenting is here to help enhance the documentation. For example, sample code, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.