diff options
author | ocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-08-06 03:44:00 +0000 |
---|---|---|
committer | ocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-08-06 03:44:00 +0000 |
commit | f2db02042b6922805858791f28b7f76a98e7cdd2 (patch) | |
tree | f09e56363548c6d7e9e465b9d6d383d8a775a7c2 /ext/tk/lib/tk/variable.rb | |
parent | 7d917b1f4d081115779d697746851b7d7142d4eb (diff) |
* ext/tk/lib/{tk.rb,tk/itemconfig.rb}: configure creates
TkVariable if key name is 'variable' or 'textvariable'
by default. [ruby-dev:26749]
* ext/tk/lib/tk/{label,radiobutton}.rb: removed its own
{variable,textvariable} function.
* ext/tk/lib/tk/variable.rb: retains backward conpatibility.
(written by Hidetoshi NAGAI)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk/lib/tk/variable.rb')
-rw-r--r-- | ext/tk/lib/tk/variable.rb | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/ext/tk/lib/tk/variable.rb b/ext/tk/lib/tk/variable.rb index 397489d982..1ea41b729b 100644 --- a/ext/tk/lib/tk/variable.rb +++ b/ext/tk/lib/tk/variable.rb @@ -1529,12 +1529,36 @@ end class TkVarAccess<TkVariable def self.new(name, *args) - return TkVar_ID_TBL[name] if TkVar_ID_TBL[name] + if name.kind_of?(TkVariable) + name.value = args[0] unless args.empty? + return name + end + + if v = TkVar_ID_TBL[name] + v.value = args[0] unless args.empty? + return v + end + super(name, *args) end def self.new_hash(name, *args) - return TkVar_ID_TBL[name] if TkVar_ID_TBL[name] + if name.kind_of?(TkVariable) + unless name.is_hash? + fail ArgumentError, "already exist as a scalar variable" + end + name.value = args[0] unless args.empty? + return name + end + + if v = TkVar_ID_TBL[name] + unless v.is_hash? + fail ArgumentError, "already exist as a scalar variable" + end + v.value = args[0] unless args.empty? + return v + end + INTERP._invoke_without_enc('global', name) if args.empty? && INTERP._invoke_without_enc('array', 'exist', name) == '0' self.new(name, {}) # force creating |