Class | TkVirtualEvent
In: | tk/lib/tk/virtevent.rb
Parent: | TkObject

### Methods

add delete getobj info info new

### Classes and Modules

Class TkVirtualEvent::PreDefVirtEvent

### Constants

TkCommandNames | = | ['event'.freeze].freeze
TkVirtualEventID | = | ["VirtEvent".freeze, "00000".taint].freeze
TkVirtualEventTBL | = | TkCore::INTERP.create_table

### Public Class methods

getobj(event)

[Source]

    # File tk/lib/tk/virtevent.rb, line 25
      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()

[Source]

    # File tk/lib/tk/virtevent.rb, line 38
      def TkVirtualEvent.info
        tk_call_without_enc('event', 'info').split(/\s+/).collect!{|seq|
          TkVirtualEvent.getobj(seq[1..-2])
        }
      end

new(*sequences)

[Source]

    # File tk/lib/tk/virtevent.rb, line 44
      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)

[Source]

    # File tk/lib/tk/virtevent.rb, line 51
      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)

[Source]

    # File tk/lib/tk/virtevent.rb, line 62
      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()

[Source]

    # File tk/lib/tk/virtevent.rb, line 76
      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

[Validate]