# File tk/lib/tk/virtevent.rb, line 38
def TkVirtualEvent.getobj(event)
obj = TkVirtualEventTBL[event]
if obj
obj
else
if tk_call_without_enc('event', 'info').index("<#{event}>")
PreDefVirtEvent.new(event)
else
fail ArgumentError, "undefined virtual event '<#{event}>'"
end
end
end
# File tk/lib/tk/virtevent.rb, line 64
def add(*sequences)
if sequences != []
tk_call_without_enc('event', 'add', "<#{@id}>",
*(sequences.collect{|seq|
"<#{tk_event_sequence(seq)}>"
}) )
TkVirtualEventTBL[@id] = self
end
self
end
# File tk/lib/tk/virtevent.rb, line 75
def delete(*sequences)
if sequences == []
tk_call_without_enc('event', 'delete', "<#{@id}>")
TkVirtualEventTBL.delete(@id)
else
tk_call_without_enc('event', 'delete', "<#{@id}>",
*(sequences.collect{|seq|
"<#{tk_event_sequence(seq)}>"
}) )
TkVirtualEventTBL.delete(@id) if info == []
end
self
end
# File tk/lib/tk/virtevent.rb, line 89
def info
tk_call_without_enc('event','info',"<#{@id}>").split(/\s+/).collect!{|seq|
l = seq.scan(/<*[^<>]+>*/).collect!{|subseq|
case (subseq)
when /^<<[^<>]+>>$/
TkVirtualEvent.getobj(subseq[1..-2])
when /^<[^<>]+>$/
subseq[1..-2]
else
subseq.split('')
end
}.flatten
(l.size == 1) ? l[0] : l
}
end