Safe Tk(n) Tk Built-In Commands Safe Tk(n)
loadTk - Load Tk into a safe interpreter.
::safe::loadTk slave ?-use windowId? ?-display displayName?
Safe Tk is based on Safe Tcl, which provides a mechanism that allows restricted and medi-
ated access to auto-loading and packages for safe interpreters. Safe Tk adds the ability
to configure the interpreter for safe Tk operations and load Tk into safe interpreters.
The ::safe::loadTk command initializes the required data structures in the named safe
interpreter and then loads Tk into it. The command returns the name of the safe inter-
preter. If -use is specified, the window identified by the specified system dependent
identifier windowId is used to contain the ``.'' window of the safe interpreter; it can
be any valid id, eventually referencing a window belonging to another application. As a
convenience, if the window you plan to use is a Tk Window of the application you can use
the window name (eg: .x.y) instead of its window Id ([winfo id .x.y]). When -use is not
specified, a new toplevel window is created for the ``.'' window of the safe interpreter.
On X11 if you want the embedded window to use another display than the default one, spec-
ify it with -display. See the SECURITY ISSUES section below for implementation details.
Please read the safe manual page for Tcl to learn about the basic security considerations
for Safe Tcl.
::safe::loadTk adds the value of tk_library taken from the master interpreter to the vir-
tual access path of the safe interpreter so that auto-loading will work in the safe inter-
Tk initialization is now safe with respect to not trusting the slave's state for startup.
::safe::loadTk registers the slave's name so when the Tk initialization (Tk_SafeInit) is
called and in turn calls the master's ::safe::InitTk it will return the desired argv
equivalent (-use windowId, correct -display, etc...).
When -use is not used, the new toplevel created is specially decorated so the user is
always aware that the user interface presented comes from a potentially unsafe code and
can easily delete the corresponding interpreter.
On X11, conflicting -use and -display are likely to generate a fatal X error.
safe(n), interp(n), library(n), load(n), package(n), source(n), unknown(n)
alias, auto-loading, auto_mkindex, load, master interpreter, safe interpreter, slave
Tk 8.0 Safe Tk(n)