Methods
A
D
F
I
M
N
S
U
Constants
TreeTagID_TBL = TkCore::INTERP.create_table
 
TreeTag_ID = ['blt_tree_tag'.freeze, TkUtil.untrust('00000')]).instance_eval{ @mutex = Mutex.new
 
Class Public methods
id2obj(tree, id)
# File ext/tk/lib/tkextlib/blt/tree.rb, line 281
def self.id2obj(tree, id)
  tpath = tree.path
  TreeTagID_TBL.mutex.synchronize{
    if TreeTagID_TBL[tpath]
      if TreeTagID_TBL[tpath][id]
        TreeTagID_TBL[tpath][id]
      else
        begin
          # self.new(tree, id)
          (obj = self.allocate).instance_eval{
            @parent = @tree = tree
            @tpath = @parent.path
            @path = @id = id.dup.freeze if id
            TreeTagID_TBL[@tpath] = {} unless TreeTagID_TBL[@tpath]
            TreeTagID_TBL[@tpath][@id] = self
          }
          obj
        rescue
          id
        end
      end
    else
      id
    end
  }
end
new(tree, tag_str = nil)
# File ext/tk/lib/tkextlib/blt/tree.rb, line 308
def initialize(tree, tag_str = nil)
  @parent = @tree = tree
  @tpath = @parent.path

  if tag_str
    @path = @id = tag_str.dup.freeze
  else
    TreeTag_ID.mutex.synchronize{
      @path = @id = TreeTag_ID.join(TkCore::INTERP._ip_id_)
      TreeTag_ID[1].succ!
    }
  end
  TreeTagID_TBL.mutex.synchronize{
    TreeTagID_TBL[@tpath] = {} unless TreeTagID_TBL[@tpath]
    TreeTagID_TBL[@tpath][@id] = self
  }
end
Instance Public methods
add(*nodes)
# File ext/tk/lib/tkextlib/blt/tree.rb, line 330
def add(*nodes)
  tk_call(@tpath, 'tag', 'add', @id, *nodes)
  self
end
delete(*nodes)
# File ext/tk/lib/tkextlib/blt/tree.rb, line 335
def delete(*nodes)
  tk_call(@tpath, 'tag', 'delete', @id, *nodes)
  self
end
forget()
# File ext/tk/lib/tkextlib/blt/tree.rb, line 340
def forget()
  tk_call(@tpath, 'tag', 'forget', @id)
  TreeTagID_TBL.mutex.synchronize{
    TreeTagID_TBL[@tpath].delete(@id)
  }
  self
end
id()
# File ext/tk/lib/tkextlib/blt/tree.rb, line 326
def id
  @id
end
mutex()
# File ext/tk/lib/tkextlib/blt/tree.rb, line 277
def mutex; @mutex; end
nodes()
# File ext/tk/lib/tkextlib/blt/tree.rb, line 348
def nodes()
  simplelist(tk_call(@tpath, 'tag', 'nodes', @id)).collect{|node|
    Tk::BLT::Tree::Node.id2obj(@path, node)
  }
end
set(node)
# File ext/tk/lib/tkextlib/blt/tree.rb, line 354
def set(node)
  tk_call(@tpath, 'tag', 'set', node, @id)
  self
end
unset(node)
# File ext/tk/lib/tkextlib/blt/tree.rb, line 359
def unset(node)
  tk_call(@tpath, 'tag', 'unset', node, @id)
  self
end