tcldoc Tcl/Tk 9.0.4
/

HomeTk Library Procedures Tk

Tk_Init C API

Add Tk to an interpreter and make a new Tk application.

Also documents Tk_SafeInit

literal type exactly as shown argument replace with your value ?optional? may be omitted

Synopsis#

#include <tk.h>

int Tk_Init(interp)#

int Tk_SafeInit(interp)#

Arguments#

Tcl_Interp *interp (in)

Interpreter in which to load Tk. Tk should not already be loaded in this interpreter.

Description#

Tk_Init is the package initialization procedure for Tk. It is normally invoked by the Tcl_AppInit procedure for an application or by the load command. Tk_Init adds all of Tk's commands to interp and creates a new Tk application, including its main window. If the initialization is successful Tk_Init returns TCL_OK; if there is an error it returns TCL_ERROR. Tk_Init also leaves a result or error message in interpreter interp's result.

If there is a variable argv in interp, Tk_Init treats the contents of this variable as a list of options for the new Tk application. The options may have any of the forms documented for the wish application (in fact, wish uses Tk_Init to process its command-line arguments).

Tk_SafeInit is identical to Tk_Init except that it removes all Tk commands that are considered unsafe. Those commands and the reasons for their exclusion are:

bell#

Continuous ringing of the bell is a nuisance.

clipboard#

A malicious script could replace the contents of the clipboard with the string “rm -r *” and lead to surprises when the contents of the clipboard are pasted.

grab#

Grab can be used to block the user from using any other applications.

Menus can be used to cover the entire screen and to steal input from the user.

selection#

See clipboard.

send#

Send can be used to cause unsafe interpreters to execute commands.

tk#

The tk command recreates the send command, which is unsafe.

tkwait#

Tkwait can block the containing process forever

toplevel#

Toplevels can be used to cover the entire screen and to steal input from the user.

wm#

If toplevels are ever allowed, wm can be used to remove decorations, move windows around, etc.

Keywords#

safe · application · initialization · load · main window

Copyright#