Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

Tk_Main (3tk)

Name

Tk_Main - based applications

Synopsis

#include <tk.h>

Tk_Main(argc, argv, appInitProc)

Description

Tk_Main(3tk)                 Tk Library Procedures                Tk_Main(3tk)



______________________________________________________________________________

NAME
       Tk_Main - main program for Tk-based applications

SYNOPSIS
       #include <tk.h>

       Tk_Main(argc, argv, appInitProc)

ARGUMENTS
       int argc (in)                              Number of elements in argv.

       char *argv[] (in)                          Array  of strings containing
                                                  command-line  arguments.  On
                                                  Windows,  when  using -DUNI-
                                                  CODE,  the  parameter   type
                                                  changes to wchar_t *.

       Tcl_AppInitProc *appInitProc (in)          Address  of  an application-
                                                  specific initialization pro-
                                                  cedure.   The value for this
                                                  argument     is      usually
                                                  Tcl_AppInit.
______________________________________________________________________________

DESCRIPTION
       Tk_Main  acts  as  the  main  program  for  most Tk-based applications.
       Starting with Tk 4.0 it is not called main anymore because it  is  part
       of the Tk library and having a function main in a library (particularly
       a shared library) causes problems on many systems.  Having main in  the
       Tk library would also make it hard to use Tk in C++ programs, since C++
       programs must have special C++ main functions.

       Normally each application contains a  small  main  function  that  does
       nothing but invoke Tk_Main.  Tk_Main then does all the work of creating
       and running a wish-like application.

       When it is has finished its own initialization, but before it processes
       commands,  Tk_Main  calls  the procedure given by the appInitProc argu-
       ment.  This procedure provides a "hook" for the application to  perform
       its own initialization, such as defining application-specific commands.
       The procedure must have an interface that matches the type Tcl_AppInit-
       Proc:
              typedef int Tcl_AppInitProc(
                      Tcl_Interp *interp);
       AppInitProc is almost always a pointer to Tcl_AppInit; for more details
       on this procedure, see the documentation for Tcl_AppInit.

       Tk_Main functions much the same as Tcl_Main.   In  particular,  Tk_Main
       supports  both  an interactive mode and a startup script mode, with the
       file name and encoding of a startup script under  the  control  of  the
       Tcl_SetStartupScript  and  Tcl_GetStartupScript  routines.  However  it
       calls Tk_MainLoop after processing any supplied script, and in interac-
       tive  uses events registered with Tcl_CreateFileHandler to process user
       input.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | runtime/tk-8     |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+

SEE ALSO
       Tcl_DoOneEvent(3)

KEYWORDS
       application-specific initialization, command-line arguments, main  pro-
       gram



NOTES
       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source        was        downloaded        from         https://source-
       forge.net/projects/tcl/files/Tcl/8.6.7/tk8.6.7-src.tar.gz/download.

       Further information about this software can be found on the open source
       community website at https://www.tcl.tk/.



Tk                                    4.0                         Tk_Main(3tk)