Class | TclTkCallback
In: | tcltklib/lib/tcltk.rb
Parent: | TclTkObject

class TclTkCallback: tcl/tk callbacks

### Methods

_call new to_eval

### Public Class methods

new(interp, pr, arg = nil)

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

[Source]

    # File tcltklib/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)

_call(arg): invoke callback

      arg: callback parameter

[Source]

    # File tcltklib/lib/tcltk.rb, line 342
      def _call(arg)
        @pr.call(arg)
      end

to_eval()

to_eval(): retuens string representation for @ip._eval_args

[Source]

    # File tcltklib/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

[Validate]