From 9dc2db4ff31331f5039b281970543ff91f3a8661 Mon Sep 17 00:00:00 2001 From: nagai Date: Sat, 10 May 2008 04:19:12 +0000 Subject: * ext/tk/lib/tk/pack.rb, ext/tk/lib/tk/grid.rb: increase parameter patterns of configure method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ ext/tk/lib/tk.rb | 2 +- ext/tk/lib/tk/grid.rb | 43 +++++++++++++++++++++++++++++++++++++++++++ ext/tk/lib/tk/pack.rb | 17 +++++++++++++++++ 4 files changed, 66 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 1f6f585f97..1d100a9f21 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sat May 10 13:17:56 2008 Hidetoshi NAGAI + + * ext/tk/lib/tk/pack.rb, ext/tk/lib/tk/grid.rb: increase parameter + patterns of configure method. + Sat May 10 09:16:13 2008 Yukihiro Matsumoto * util.c (ruby_strtod): backported from 1.9. a patch from Satoshi diff --git a/ext/tk/lib/tk.rb b/ext/tk/lib/tk.rb index 92ba00e7ed..58038e874e 100644 --- a/ext/tk/lib/tk.rb +++ b/ext/tk/lib/tk.rb @@ -5348,7 +5348,7 @@ TkWidget = TkWindow #Tk.freeze module Tk - RELEASE_DATE = '2008-05-09'.freeze + RELEASE_DATE = '2008-05-10'.freeze autoload :AUTO_PATH, 'tk/variable' autoload :TCL_PACKAGE_PATH, 'tk/variable' diff --git a/ext/tk/lib/tk/grid.rb b/ext/tk/lib/tk/grid.rb index c1bb6d2e65..dd253a65d7 100644 --- a/ext/tk/lib/tk/grid.rb +++ b/ext/tk/lib/tk/grid.rb @@ -22,6 +22,7 @@ module TkGrid list(tk_call_without_enc('grid', 'bbox', *args)) end +=begin def configure(win, *args) if args[-1].kind_of?(Hash) opts = args.pop @@ -53,6 +54,48 @@ module TkGrid tk_call_without_enc('grid', 'configure', *params) end end +=end + def configure(*args) + if args[-1].kind_of?(Hash) + opts = args.pop + else + opts = nil + end + fail ArgumentError, 'no widget is given' if args.empty? + params = [] + args.flatten(1).each{|win| + case win + when '-', ?- # RELATIVE PLACEMENT (increase columnspan) + params.push('-') + when /^-+$/ # RELATIVE PLACEMENT (increase columnspan) + params.concat(win.to_s.split(//)) + when '^', ?^ # RELATIVE PLACEMENT (increase rowspan) + params.push('^') + when /^\^+$/ # RELATIVE PLACEMENT (increase rowspan) + params.concat(win.to_s.split(//)) + when 'x', :x, ?x, nil, '' # RELATIVE PLACEMENT (empty column) + params.push('x') + when /^x+$/ # RELATIVE PLACEMENT (empty column) + params.concat(win.to_s.split(//)) + else + params.push(_epath(win)) + end + } + opts.each{|k, v| + params.push("-#{k}") + params.push(_epath(v)) # have to use 'epath' (hash_kv() is unavailable) + } + if Tk::TCL_MAJOR_VERSION < 8 || + (Tk::TCL_MAJOR_VERSION == 8 && Tk::TCL_MINOR_VERSION <= 3) + if params[0] == '-' || params[0] == 'x' || params[0] == '^' + tk_call_without_enc('grid', *params) + else + tk_call_without_enc('grid', 'configure', *params) + end + else + tk_call_without_enc('grid', 'configure', *params) + end + end alias grid configure def columnconfigure(master, index, args) diff --git a/ext/tk/lib/tk/pack.rb b/ext/tk/lib/tk/pack.rb index 8fab363121..1d50dc7440 100644 --- a/ext/tk/lib/tk/pack.rb +++ b/ext/tk/lib/tk/pack.rb @@ -9,6 +9,7 @@ module TkPack TkCommandNames = ['pack'.freeze].freeze +=begin def configure(win, *args) if args[-1].kind_of?(Hash) opts = args.pop @@ -29,6 +30,22 @@ module TkPack } tk_call_without_enc("pack", 'configure', *params) end +=end + def configure(*args) + if args[-1].kind_of?(Hash) + opts = args.pop + else + opts = nil + end + fail ArgumentError, 'no widget is given' if args.empty? + params = [] + args.flatten(1).each{|win| params.push(_epath(win))} + opts.each{|k, v| + params.push("-#{k}") + params.push(_epath(v)) # have to use 'epath' (hash_kv() is unavailable) + } + tk_call_without_enc("pack", 'configure', *params) + end alias pack configure def forget(*args) -- cgit v1.2.3