event.rb

Path: tk/lib/tk/event.rb
Last Update: Fri Nov 12 16:09:37 GMT+10:00 2004

tk/event.rb - module for event

Required files

tkutil   tk  

Methods

Public Instance methods

[Source]

# File tk/lib/tk/event.rb, line 175
  def install_bind(cmd, *args)
    install_bind_for_event_class(TkEvent::Event, cmd, *args)
  end

[Source]

# File tk/lib/tk/event.rb, line 137
  def install_bind_for_event_class(klass, cmd, *args)
    extra_args_tbl = klass._get_extra_args_tbl

    if args.compact.size > 0
      args = args.join(' ')
      keys = klass._get_subst_key(args)

      if cmd.kind_of?(String)
        id = cmd
      elsif cmd.kind_of?(TkCallbackEntry)
        id = install_cmd(cmd)
      else
        id = install_cmd(proc{|*arg|
          ex_args = []
          extra_args_tbl.reverse_each{|conv| ex_args << conv.call(arg.pop)}
          TkUtil.eval_cmd(cmd, *(ex_args.concat(klass.scan_args(keys, arg))))
        })
      end
      id + ' ' + args
    else
      keys, args = klass._get_all_subst_keys

      if cmd.kind_of?(String)
        id = cmd
      elsif cmd.kind_of?(TkCallbackEntry)
        id = install_cmd(cmd)
      else
        id = install_cmd(proc{|*arg|
          ex_args = []
          extra_args_tbl.reverse_each{|conv| ex_args << conv.call(arg.pop)}
          TkUtil.eval_cmd(cmd, 
                          *(ex_args << klass.new(*klass.scan_args(keys, arg))))
        })
      end
      id + ' ' + args
    end
  end

[Validate]