Sha256: b80d08543d66fd7c2125edfba0573f9c7e1994c8e34d4c79daab8a70fc532cba

Contents?: true

Size: 1.88 KB

Versions: 72

Compression:

Stored size: 1.88 KB

Contents

module Fox

  class FXApp

    alias addInputOrig addInput # :nodoc:

    #
    # Add a file descriptor _fileDesc_ to be watched for activity as determined
    # by _mode_, where _mode_ is a bitwise OR (+INPUT_READ+, +INPUT_WRITE+, +INPUT_EXCEPT+).
    # A message of type +SEL_IO_READ+, +SEL_IO_WRITE+, or +SEL_IO_EXCEPT+ will be sent
    # to the target when the specified activity is detected on the file descriptor.
    #
    # There are several forms for #addInput; the original form (from FOX)
    # takes four arguments:
    #
    #   anApp.addInput(fileDesc, mode, anObject, aMessageId)
    #
    # A second form takes three arguments:
    #
    #   anApp.addInput(fileDesc, mode, aMethod)
    #
    # For this form, _aMethod_ should have the standard argument list
    # for a FOX message handler. That is, the method should take three
    # arguments, for the message _sender_ (an FXObject), the message _selector_,
    # and the message _data_ (if any).
    #
    # The last form of #addInput takes a block:
    #
    #   anApp.addInput(fileDesc, mode) { |sender, sel, data|
    #     ... handle the I/O event ...
    #   }
    #

    def addInput(fd, mode, *args, &block)
      params = {}
      params = args.pop if args.last.is_a? Hash
      tgt, sel = nil, 0
      if args.length > 0
        if args[0].respond_to? :call
          tgt = FXPseudoTarget.new
          tgt.pconnect(SEL_IO_READ, args[0], params)
          tgt.pconnect(SEL_IO_WRITE, args[0], params)
          tgt.pconnect(SEL_IO_EXCEPT, args[0], params)
        else # it's some other kind of object
          tgt = args[0]
          sel = args[1]
        end
      else
        tgt = FXPseudoTarget.new
        tgt.pconnect(SEL_IO_READ, block, params)
        tgt.pconnect(SEL_IO_WRITE, block, params)
        tgt.pconnect(SEL_IO_EXCEPT, block, params)
      end
      addInputOrig(fd, mode, tgt, sel)
    end

  end # class FXApp

end # module Fox

Version data entries

72 entries across 72 versions & 1 rubygems

Version Path
fxruby-1.6.40-x86-mingw32 lib/fox16/input.rb
fxruby-1.6.40-x64-mingw32 lib/fox16/input.rb
fxruby-1.6.40 lib/fox16/input.rb
fxruby-1.6.39 lib/fox16/input.rb
fxruby-1.6.39-x64-mingw32 lib/fox16/input.rb
fxruby-1.6.39-x86-mingw32 lib/fox16/input.rb
fxruby-1.6.38 lib/fox16/input.rb
fxruby-1.6.38-x64-mingw32 lib/fox16/input.rb
fxruby-1.6.38-x86-mingw32 lib/fox16/input.rb
fxruby-1.6.38.pre1 lib/fox16/input.rb
fxruby-1.6.37 lib/fox16/input.rb
fxruby-1.6.37-x64-mingw32 lib/fox16/input.rb
fxruby-1.6.37-x86-mingw32 lib/fox16/input.rb
fxruby-1.6.37.rc1 lib/fox16/input.rb
fxruby-1.6.37.rc1-x64-mingw32 lib/fox16/input.rb
fxruby-1.6.37.rc1-x86-mingw32 lib/fox16/input.rb
fxruby-1.6.36 lib/fox16/input.rb
fxruby-1.6.36-x64-mingw32 lib/fox16/input.rb
fxruby-1.6.36-x86-mingw32 lib/fox16/input.rb
fxruby-1.6.35-x86-mingw32 lib/fox16/input.rb