| Path: | tk/lib/tk/event.rb |
| Last Update: | Fri Nov 12 16:09:37 GMT+10:00 2004 |
tk/event.rb - module for event
# File tk/lib/tk/event.rb, line 175 def install_bind(cmd, *args) install_bind_for_event_class(TkEvent::Event, cmd, *args) end
# 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