Module: TclTk

Module | TclTk
In: | tcltklib/lib/tcltk.rb

module TclTk: collection of tcl/tk utilities (supplies namespace.)

### Methods

_addcallback _callcallback _newname dcb deletecallbackkey mainloop

### Public Class methods

_addcallback(ca)

TclTk._addcallback(ca): register callback

      ca: callback(TclTkCallback)

[Source]

    # File tcltklib/lib/tcltk.rb, line 52
    def TclTk._addcallback(ca)
      print("_addcallback: ", ca.to_s(), "\n") if $DEBUG
      @callback[ca.to_s()] = ca
    end

_callcallback(key, arg)

TclTk._callcallback(key, arg): invoke registered callback

      key: key to select callback (to_s value of the TclTkCallback)
      arg: parameter from tcl/tk interpreter

[Source]

    # File tcltklib/lib/tcltk.rb, line 60
    def TclTk._callcallback(key, arg)
      print("_callcallback: ", @callback[key].inspect, "\n") if $DEBUG
      @callback[key]._call(arg)
      # throw out callback value
      # should return String to satisfy rb_eval_string()
      return ""
    end

_newname(prefix)

TclTk._newname(prefix): generate unique name(String)

      prefix: prefix of the unique name

[Source]

    # File tcltklib/lib/tcltk.rb, line 70
    def TclTk._newname(prefix)
      # generated name counter is stored in @namecnt
      if !@namecnt.key?(prefix)
        # first appearing prefix, initialize
        @namecnt[prefix] = 1
      else
        # already appeared prefix, generate next name
        @namecnt[prefix] += 1
      end
      return "#{prefix}#{@namecnt[prefix]}"
    end

dcb(ca, wid, w)

TclTk.dcb(ca, wid, W): call TclTk.deletecallbackkey() for each callbacks

        in an array.
        this is for callback for top-level <Destroy>
      ca: array of callbacks(TclTkCallback)
      wid: top-level widget(TclTkWidget)
      w: information about window given by %W(String)

[Source]

    # File tcltklib/lib/tcltk.rb, line 42
    def TclTk.dcb(ca, wid, w)
      if wid.to_s() == w
        ca.each{|i|
          TclTk.deletecallbackkey(i)
        }
      end
    end

deletecallbackkey(ca)

TclTk.deletecallbackkey(ca): remove callback from TclTk module

        this does not remove callbacks from tcl/tk interpreter
        without calling this method, TclTkInterpreter will not be GCed
      ca: callback(TclTkCallback)

[Source]

    # File tcltklib/lib/tcltk.rb, line 31
    def TclTk.deletecallbackkey(ca)
      print("deletecallbackkey: ", ca.to_s(), "\n") if $DEBUG
      @callback.delete(ca.to_s)
    end

mainloop()

TclTk.mainloop(): call TclTkLib.mainloop()

[Source]

    # File tcltklib/lib/tcltk.rb, line 21
    def TclTk.mainloop()
      print("mainloop: start\n") if $DEBUG
      TclTkLib.mainloop()
      print("mainloop: end\n") if $DEBUG
    end

[Validate]