In Files

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

Class/Module Index [+]

Quicksearch

Tk::BLT::Tree::Tag

Public Class Methods

id2obj(tree, id) click to toggle source
 
               # File 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) click to toggle source
 
               # File 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
            

Public Instance Methods

add(*nodes) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 330
def add(*nodes)
  tk_call(@tpath, 'tag', 'add', @id, *nodes)
  self
end
            
delete(*nodes) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 335
def delete(*nodes)
  tk_call(@tpath, 'tag', 'delete', @id, *nodes)
  self
end
            
forget() click to toggle source
 
               # File 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() click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 326
def id
  @id
end
            
mutex() click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 277
def mutex; @mutex; end
            
nodes() click to toggle source
 
               # File 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) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 354
def set(node)
  tk_call(@tpath, 'tag', 'set', node, @id)
  self
end
            
unset(node) click to toggle source
 
               # File tk/lib/tkextlib/blt/tree.rb, line 359
def unset(node)
  tk_call(@tpath, 'tag', 'unset', node, @id)
  self
end