class Tk::BLT::Tree::Trace
Constants
- TraceID_TBL
Public Class Methods
id2obj(tree, id)
click to toggle source
# File lib/tkextlib/blt/tree.rb, line 479 def self.id2obj(tree, id) tpath = tree.path TraceID_TBL.mutex.synchronize{ if TraceID_TBL[tpath] if TraceID_TBL[tpath][id] TraceID_TBL[tpath][id] else begin # self.new([tree, id]) (obj = self.allocate).instance_eval{ @parent = @tree = tree @tpath = @parent.path @path = @id = node # == traceID TraceID_TBL[@tpath] ||= {} TraceID_TBL[@tpath][@id] = self } obj rescue id end end else id end } end
new(tree, *args, &b)
click to toggle source
# File lib/tkextlib/blt/tree.rb, line 506 def self.new(tree, *args, &b) TraceID_TBL.mutex.synchronize{ if tree.kind_of?(Array) # not create tpath = tree[0].path TraceID_TBL[tpath] ||= {} unless (obj = TraceID_TBL[tpath][tree[1]]) (TraceID_TBL[tpath][tree[1]] = obj = self.allocate).instance_eval{ @parent = @tree = tree @tpath = @parent.path @path = @id = tree[1] # == traceID } end return obj end # super(true, tree, *args, &b) (obj = self.allocate).instance_eval{ initialize(tree, *args, &b) TraceID_TBL[@tpath] ||= {} TraceID_TBL[@tpath][@id] = self } return obj } end
new(tree, node, key, opts, cmd=nil, &b)
click to toggle source
# File lib/tkextlib/blt/tree.rb, line 533 def initialize(tree, node, key, opts, cmd=nil, &b) @parent = @tree = tree @tpath = @parent.path if !cmd if b cmd = b else fail ArgumentError, "lack of 'command' argument" end end @path = @id = tk_call(@tpath, 'trace', 'create', node, key, opts, proc{|t, id, k, ops| tobj = Tk::BLT::Tree.id2obj(t) if tobj.kind_of?(Tk::BLT::Tree) nobj = Tk::BLT::Tree::Node.id2obj(tobj, id) else nobj = id end cmd.call(tobj, nobj, k, ops) }) end
Public Instance Methods
delete()
click to toggle source
# File lib/tkextlib/blt/tree.rb, line 561 def delete() tk_call(@tpath, 'trace', 'delete', @id) TraceID_TBL.mutex.synchronize{ TraceID_TBL[tpath].delete(@id) } self end
id()
click to toggle source
# File lib/tkextlib/blt/tree.rb, line 557 def id @id end
info()
click to toggle source
# File lib/tkextlib/blt/tree.rb, line 569 def info() lst = simplelist(tk_call(@tpath, 'trace', 'info', id)) lst[0] = Tk::BLT::Tree::Trace.id2obj(@tree, lst[0]) lst[2] = simplelist(lst[2]) lst[3] = tk_tcl2ruby(lst[3]) lst end