Module TclTk
In: tcltklib/lib/tcltk.rb

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

Methods

Public Class methods

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

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

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

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

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

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]