Tk_Init manual page - Tk Library Procedures

## Tcl8.6.1/Tk8.6.1 Documentation > Tk C API, version 8.6.1 > Tk_Init

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    Tk_Init, Tk_SafeInit — add Tk to an interpreter and make a new Tk application.
  SYNOPSIS
    #include <tk8.6/tk.h>
    int
    Tk_Init(interp)
    int
    Tk_SafeInit(interp)
  ARGUMENTS
  DESCRIPTION
    bell
    clipboard
    grab
    menu
    selection
    send
    tk
    tkwait
    toplevel
    wm
  KEYWORDS

### NAME

Tk_Init, Tk_SafeInit — add Tk to an interpreter and make a new Tk application.

### SYNOPSIS

#include <tk8.6/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.

menu
  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 © 1995-1996 Sun Microsystems, Inc.