ruby-cvs:23650
From: nagai ruby-lang.org
Date: Wed, 14 May 2008 09:54:32 +0900 (JST)
Subject: [ruby-cvs:23650] Ruby:r16410 (ruby_1_8): * ext/tk/tkutil/tkutil.c: improve handling callback-subst-keys.
nagai 2008-05-14 09:54:31 +0900 (Wed, 14 May 2008)
New Revision: 16410
Modified files:
branches/ruby_1_8/ChangeLog
branches/ruby_1_8/ext/tk/lib/tk/event.rb
branches/ruby_1_8/ext/tk/lib/tk/spinbox.rb
branches/ruby_1_8/ext/tk/lib/tk/validation.rb
branches/ruby_1_8/ext/tk/lib/tk.rb
branches/ruby_1_8/ext/tk/lib/tkextlib/blt/dragdrop.rb
branches/ruby_1_8/ext/tk/lib/tkextlib/blt/treeview.rb
branches/ruby_1_8/ext/tk/lib/tkextlib/iwidgets/calendar.rb
branches/ruby_1_8/ext/tk/lib/tkextlib/iwidgets/entryfield.rb
branches/ruby_1_8/ext/tk/lib/tkextlib/iwidgets/hierarchy.rb
branches/ruby_1_8/ext/tk/lib/tkextlib/iwidgets/spinner.rb
branches/ruby_1_8/ext/tk/lib/tkextlib/tkDND/tkdnd.rb
branches/ruby_1_8/ext/tk/lib/tkextlib/tktable/tktable.rb
branches/ruby_1_8/ext/tk/lib/tkextlib/treectrl/tktreectrl.rb
branches/ruby_1_8/ext/tk/lib/tkextlib/version.rb
branches/ruby_1_8/ext/tk/lib/tkextlib/winico/winico.rb
branches/ruby_1_8/ext/tk/tkutil/tkutil.c
Log:
* ext/tk/tkutil/tkutil.c: improve handling callback-subst-keys.
Now, support longnam-keys (e.g. '%CTT' on tkdnd-2.0; however, still
not support tkdnd-2.0 on tkextlib), and symbols of parameters (e.g.
:widget=>'%W', :keycode=>'%k', '%x'=>:x, '%X'=>:root_x, and so on;
those are attributes of event object). It means that Ruby/Tk accepts
not only "widget.bind(ev, '%W', '%k', ...){|w, k, ...| ... }", but
also "widget.bind(ev, :widget, :keycode, ...){|w, k, ...| ... }".
It is potentially incompatible, when user passes symbols to the
arguments of the callback block (the block receives the symbols as
strings). I think that is very rare case (probably, used by Ruby/Tk
experts only). When causes such trouble, please give strings instead
of such symbol parameters (e.g. call Symbol#to_s method).
* ext/tk/lib/tk/event.rb, ext/tk/lib/tk/validation.rb,
ext/tk/lib/tkextlib/blt/treeview.rb,
ext/tk/lib/tkextlib/winico/winico.rb: ditto.
* ext/tk/tkutil/tkutil.c: strings are available on subst_tables on
TkUtil::CallbackSubst class (it is useful on Ruby 1.9).
* ext/tk/lib/tk/spinbox.rb, ext/tk/lib/tkextlib/iwidgets/hierarchy.rb,
ext/tk/lib/tkextlib/iwidgets/spinner.rb,
ext/tk/lib/tkextlib/iwidgets/entryfield.rb,
ext/tk/lib/tkextlib/iwidgets/calendar.rb,
ext/tk/lib/tkextlib/blt/dragdrop.rb,
ext/tk/lib/tkextlib/tkDND/tkdnd.rb,
ext/tk/lib/tkextlib/treectrl/tktreectrl.rb,
ext/tk/lib/tkextlib/tktable/tktable.rb: disable code piece became
unnecessary by reason of the changes of ext/tk/tkutil/tkutil.c.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/lib/tkextlib/blt/dragdrop.rb?r1=16410&r2=16409&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/lib/tk/validation.rb?r1=16410&r2=16409&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/lib/tkextlib/iwidgets/calendar.rb?r1=16410&r2=16409&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=16410&r2=16409&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/lib/tkextlib/treectrl/tktreectrl.rb?r1=16410&r2=16409&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/lib/tkextlib/iwidgets/spinner.rb?r1=16410&r2=16409&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/lib/tkextlib/winico/winico.rb?r1=16410&r2=16409&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/lib/tkextlib/blt/treeview.rb?r1=16410&r2=16409&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/lib/tk/spinbox.rb?r1=16410&r2=16409&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/lib/tkextlib/version.rb?r1=16410&r2=16409&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/lib/tkextlib/iwidgets/entryfield.rb?r1=16410&r2=16409&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/lib/tkextlib/tkDND/tkdnd.rb?r1=16410&r2=16409&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/lib/tkextlib/iwidgets/hierarchy.rb?r1=16410&r2=16409&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/lib/tk.rb?r1=16410&r2=16409&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/lib/tk/event.rb?r1=16410&r2=16409&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/tkutil/tkutil.c?r1=16410&r2=16409&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ext/tk/lib/tkextlib/tktable/tktable.rb?r1=16410&r2=16409&diff_format=u