summaryrefslogtreecommitdiff
path: root/ext/tk/lib/tk/radiobutton.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ext/tk/lib/tk/radiobutton.rb')
-rw-r--r--ext/tk/lib/tk/radiobutton.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/ext/tk/lib/tk/radiobutton.rb b/ext/tk/lib/tk/radiobutton.rb
index 697c021283..8ee67bde68 100644
--- a/ext/tk/lib/tk/radiobutton.rb
+++ b/ext/tk/lib/tk/radiobutton.rb
@@ -28,5 +28,24 @@ class TkRadioButton<TkButton
def variable(v)
configure 'variable', tk_trace_variable(v)
end
+
+ def value
+ var = tk_send_without_enc('cget', '-variable')
+ if TkVariable::USE_TCLs_SET_VARIABLE_FUNCTIONS
+ _fromUTF8(INTERP._get_global_var(var))
+ else
+ INTERP._eval(Kernel.format('global %s; set %s', var, var))
+ end
+ end
+
+ def value=(val)
+ var = tk_send_without_enc('cget', '-variable')
+ if TkVariable::USE_TCLs_SET_VARIABLE_FUNCTIONS
+ _fromUTF8(INTERP._set_global_var(var, _get_eval_string(val, true)))
+ else
+ s = '"' + _get_eval_string(val).gsub(/[\[\]$"\\]/, '\\\\\&') + '"'
+ INTERP._eval(Kernel.format('global %s; set %s %s', var, var, s))
+ end
+ end
end
TkRadiobutton = TkRadioButton