In Files

  • tk/lib/tk/virtevent.rb

Class/Module Index [+]

Quicksearch

VirtualEvent

Public Class Methods

getobj(event) click to toggle source
 
               # 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
            
info() click to toggle source
 
               # File tk/lib/tk/virtevent.rb, line 51
def TkVirtualEvent.info
  tk_call_without_enc('event', 'info').split(/\s+/).collect!{|seq|
    TkVirtualEvent.getobj(seq[1..-2])
  }
end
            
new(*sequences) click to toggle source
 
               # File tk/lib/tk/virtevent.rb, line 57
def initialize(*sequences)
  # @path = @id = '<' + TkVirtualEventID.join('') + '>'
  @path = @id = '<' + TkVirtualEventID.join(TkCore::INTERP._ip_id_) + '>'
  TkVirtualEventID[1].succ!
  add(*sequences)
end
            

Public Instance Methods

add(*sequences) click to toggle source
 
               # 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
            
delete(*sequences) click to toggle source
 
               # 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
            
info() click to toggle source
 
               # 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