Support for the Ruby 2.3 series has ended. See here for reference.

In Files

  • tk/lib/tcltk.rb

Parent

Class/Module Index [+]

Quicksearch

TclTkCallback

class TclTkCallback: tcl/tk callbacks

Public Class Methods

new(interp, pr, arg = nil) click to toggle source

initialize(interp, pr, arg):

interp: interpreter(TclTkInterpreter)
pr: callback procedure(Proc)
arg: string to pass as block parameters of pr
    bind command of tcl/tk uses % replacement for parameters
    pr can receive replaced data using block parameter
    its format is specified by arg string
    You should not specify arg for the command like
    scrollbar with -command option, which receives parameters
    without specifying any replacement
 
               # File tk/lib/tcltk.rb, line 316
def initialize(interp, pr, arg = nil)
  # auto-generate tcl/tk representation (variable name)
  exp = TclTk._newname("c_")
  # initialize TclTkObject
  super(interp._tcltkip(), exp)
  # save parameters
  @pr = pr
  @arg = arg
  # register in the module
  TclTk._addcallback(self)
end
            

Public Instance Methods

_call(arg) click to toggle source

_call(arg): invoke callback

arg: callback parameter
 
               # File tk/lib/tcltk.rb, line 342
def _call(arg)
  @pr.call(arg)
end
            
to_eval() click to toggle source

#to_eval(): returns string representation for @ip._eval_args

 
               # File tk/lib/tcltk.rb, line 329
def to_eval()
  if @arg
    # bind replaces %s before calling ruby_fmt, so %%s is used
    s = %Q/{ruby_fmt {TclTk._callcallback("#{to_s()}", "%%s")} #{@arg}}/
  else
    s = %Q/{ruby_fmt {TclTk._callcallback("#{to_s()}", "%s")}}/
  end

  return s
end