class Tk::BLT::Tree::Tag
Constants
- TreeTagID_TBL
- TreeTag_ID
Public Class Methods
id2obj(tree, id)
click to toggle source
# File lib/tkextlib/blt/tree.rb, line 282 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 lib/tkextlib/blt/tree.rb, line 309 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 lib/tkextlib/blt/tree.rb, line 331 def add(*nodes) tk_call(@tpath, 'tag', 'add', @id, *nodes) self end
delete(*nodes)
click to toggle source
# File lib/tkextlib/blt/tree.rb, line 336 def delete(*nodes) tk_call(@tpath, 'tag', 'delete', @id, *nodes) self end
forget()
click to toggle source
# File lib/tkextlib/blt/tree.rb, line 341 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 lib/tkextlib/blt/tree.rb, line 327 def id @id end
mutex()
click to toggle source
# File lib/tkextlib/blt/tree.rb, line 278 def mutex; @mutex; end
nodes()
click to toggle source
# File lib/tkextlib/blt/tree.rb, line 349 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 lib/tkextlib/blt/tree.rb, line 355 def set(node) tk_call(@tpath, 'tag', 'set', node, @id) self end
unset(node)
click to toggle source
# File lib/tkextlib/blt/tree.rb, line 360 def unset(node) tk_call(@tpath, 'tag', 'unset', node, @id) self end