summaryrefslogtreecommitdiff
path: root/ext/tk/lib/tk/variable.rb
diff options
context:
space:
mode:
authorocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-08-06 03:44:00 +0000
committerocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-08-06 03:44:00 +0000
commitf2db02042b6922805858791f28b7f76a98e7cdd2 (patch)
treef09e56363548c6d7e9e465b9d6d383d8a775a7c2 /ext/tk/lib/tk/variable.rb
parent7d917b1f4d081115779d697746851b7d7142d4eb (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.rb28
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