head	1.10;
access;
symbols
	core-8-5-9:1.6
	core-8-5-8:1.6
	macosx-cocoa-merge:1.8
	macosx-cocoa-premerge:1.8
	macosx-carbon-freeze:1.8
	core-8-5-7:1.6
	core-8-5-6:1.6
	core-8-6-b1:1.8
	core-8-6-a3:1.7
	core-8-5-5:1.6
	core-8-6-a2:1.7
	core-8-5-4:1.6
	core-8-5-3:1.6
	core-8-6-a1:1.6
	core-8-4-19:1.2
	core-8-5-branch:1.6.0.2
	core-8-5-2:1.6
	core-8-4-18:1.2
	core-8-5-1:1.6
	core-8-4-17:1.2
	core-8-5-0:1.6
	core-8-5-b3:1.5
	core-8-5-b2:1.4
	core-8-4-16:1.2
	core-8-5-b1:1.2
	core-stablilizer-merge:1.2
	core-stabilizer-branch:1.2.0.32
	core-stabilizer-merge:1.6
	core-8-4-15:1.2
	core-8-5-a6:1.2
	core-8-5-a5:1.2
	core-8-4-14:1.2
	core-8-5-a4:1.2
	core-8-4-13:1.2
	core-8-4-12:1.2
	core-8-4-11:1.2
	core-8-5-a3:1.2
	core-8-4-10:1.2
	core-8-4-9-branch:1.2.0.30
	core-8-5-a2:1.2
	core-8-4-9:1.2
	core-8-4-8:1.2
	core-8-4-7:1.2
	core-8-5-a1:1.2
	core-8-4-6:1.2
	core-8-4-5:1.2
	mistachkin-dev-branch:1.2.0.28
	core-8-4-4:1.2
	core-8-4-3:1.2
	core-8-4-branch:1.2.0.26
	core-8-4-2:1.2
	core-8-4-1:1.2
	core-8-3-5:1.2
	core-8-4-0:1.2
	macosx-8-4-merge-2002-08-31-trunk:1.2
	macosx-8-4-premerge-2002-08-31-branch:1.2
	macosx-8-4-premerge-2002-08-31-trunk:1.2
	macosx-8-4-merge-2002-08-30-branch:1.2
	macosx-8-4-merge-2002-08-30-trunk:1.2
	macosx-8-4-merge-2002-08-20-branch:1.2
	macosx-8-4-merge-2002-08-20-trunk:1.2
	core-8-4-b2:1.2
	core-8-4-b1:1.2
	macosx-premerge-6-9-02:1.2
	core-8-4-a4:1.2
	core-8-3-4:1.2
	macosx-8-4-branch:1.2.0.24
	macosx-8-4-branchpoint:1.2
	core-8-4-a3:1.2
	core-8-3-3:1.2
	dgp-privates-into-namespace:1.2.0.22
	tclpro-1-5-0:1.2
	core-8-4-win-speedup:1.2.0.20
	core-8-4-a2:1.2
	tclpro-1-4-1:1.2
	tclpro-1-4-0:1.2
	core-8-3-2:1.2
	ajuba-ajuba2-2-1-base:1.2
	ajuba-ajuba2-2-0:1.2
	core-8-4-a1:1.2
	core-8-3-1-branch:1.2.0.18
	core-8-3-1:1.2
	scriptics-sc-2-0-b5:1.2
	scriptics-sc-2-0-fixed:1.2
	scriptics-sc-2-0-b2:1.2
	scriptics-sc-2-0-b1:1.2
	core-8-3-0:1.2
	core-8-3-b2:1.2
	core-8-3-b1:1.2
	scriptics-sc-1-1:1.2
	scriptics-sc-1-1-b1:1.2
	core-8-2-3:1.2
	scriptics-sc-1-1-branch:1.2.0.16
	scriptics-sc-1-1-base:1.2
	scriptics-sc-1-0:1.2
	scriptics-sc-1-0-branch:1.2.0.14
	scriptics-sc-1-0-base:1.2
	core-8-2-2:1.2
	core-8-2-1:1.2
	scriptics-bc-1-0-b1:1.2
	core-8-2-1-branch:1.2.0.12
	scriptics-tclpro-1-3-0:1.2
	core-8-2-0:1.2
	core-8-2-b3-branch:1.2.0.10
	core-8-2-b3-base:1.2
	scriptics-tclpro-1-3-b4:1.2
	core-8-2-b2:1.2
	scriptics-tclpro-1-3-b3:1.2
	core-8-2-b1:1.2
	scriptics-tclpro-1-3-b2:1.2
	merge-to-mainline-5/21/99:1.2
	scriptics-tclpro-1-3-b2-branch:1.2.0.8
	core-8-1-1:1.2
	scriptics-tclpro-1-3-b1:1.2
	core-8-1-1-base:1.2
	core-8-1-0:1.2
	merge-to-mainline-4-29-99:1.2
	merge-to-mainline-4-23-99:1.2
	core-8-1-branch-old:1.1.0.4
	core-8-0-6-branch:1.2.0.6
	core-8-0-6-base:1.2
	core-8-0-5:1.2
	core-8-1-b3:1.1.4.1
	core-8-1-b2:1.1.4.1
	dev-8-1-stubs-branch:1.1.4.1.0.2
	dev-stubs-branch:1.2.0.4
	scriptics-tclpro-1-2:1.2
	scriptics-tclpro-1-2-b2:1.2
	core-8-1-merge-2/10/99:1.2
	core-8-0-5-branch:1.2.0.2
	core-8-0-5-base:1.2
	scriptics-tclpro-1-2-b1:1.2
	scriptics-tclpro-1-2-a1:1.2
	core-8-1-b1:1.1.4.1
	core-8-0-4:1.2
	core-8-1-a2:1.1
	core-8-0-2:1.1
	core-8-0-3:1.2;
locks; strict;
comment	@# @;


1.10
date	2010.10.11.21.50.46;	author nijtmans;	state Exp;
branches;
next	1.9;

1.9
date	2010.01.13.13.27.50;	author dkf;	state Exp;
branches;
next	1.8;

1.8
date	2008.12.15.16.17.18;	author dgp;	state Exp;
branches;
next	1.7;

1.7
date	2008.06.30.22.57.02;	author dkf;	state Exp;
branches;
next	1.6;

1.6
date	2007.12.13.15.23.43;	author dgp;	state Exp;
branches;
next	1.5;

1.5
date	2007.10.29.16.04.13;	author dkf;	state Exp;
branches;
next	1.4;

1.4
date	2007.10.26.20.13.23;	author dgp;	state Exp;
branches;
next	1.3;

1.3
date	2007.10.24.14.32.57;	author dkf;	state Exp;
branches;
next	1.2;

1.2
date	98.09.14.18.22.54;	author stanton;	state Exp;
branches
	1.2.32.1;
next	1.1;

1.1
date	98.04.01.09.40.13;	author rjohnson;	state Exp;
branches
	1.1.4.1;
next	;

1.1.4.1
date	98.09.30.02.16.10;	author stanton;	state Exp;
branches;
next	;

1.2.32.1
date	2007.11.01.16.37.13;	author dgp;	state Exp;
branches;
next	;


desc
@@


1.10
log
@[FRQ 491789]: "setargv() doesn't support a unicode
cmdline" implemented for Tk on MSVC++
@
text
@'\"
'\" Copyright (c) 1994 The Regents of the University of California.
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\" 
'\" RCS: @@(#) $Id: Tk_Main.3,v 1.9 2010/01/13 13:27:50 dkf Exp $
'\" 
.so man.macros
.TH Tk_Main 3 4.0 Tk "Tk Library Procedures"
.BS
.SH NAME
Tk_Main \- main program for Tk-based applications
.SH SYNOPSIS
.nf
\fB#include <tk.h>\fR
.sp
\fBTk_Main\fR(\fIargc, argv, appInitProc\fR)
.SH ARGUMENTS
.AS Tcl_AppInitProc *appInitProc
.AP int argc in
Number of elements in \fIargv\fR.
.AP char *argv[] in
Array of strings containing command-line arguments. On Windows, when
using -DUNICODE, the parameter type changes to wchar_t *.
.AP Tcl_AppInitProc *appInitProc in
Address of an application-specific initialization procedure.
The value for this argument is usually \fBTcl_AppInit\fR.
.BE
.SH DESCRIPTION
.PP
\fBTk_Main\fR acts as the main program for most Tk-based applications.
Starting with Tk 4.0 it is not called \fBmain\fR anymore because it 
is part of the Tk library and having a function \fBmain\fR
in a library (particularly a shared library) causes problems on many
systems.
Having \fBmain\fR in the Tk library would also make it hard to use
Tk in C++ programs, since C++ programs must have special C++
\fBmain\fR functions.
.PP
Normally each application contains a small \fBmain\fR function that does
nothing but invoke \fBTk_Main\fR.
\fBTk_Main\fR then does all the work of creating and running a
\fBwish\fR-like application.
.PP
When it is has finished its own initialization, but before
it processes commands, \fBTk_Main\fR calls the procedure given by
the \fIappInitProc\fR argument.  This procedure provides a
.QW 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 \fBTcl_AppInitProc\fR:
.CS
typedef int \fBTcl_AppInitProc\fR(
        Tcl_Interp *\fIinterp\fR);
.CE
\fIAppInitProc\fR is almost always a pointer to \fBTcl_AppInit\fR;
for more details on this procedure, see the documentation
for \fBTcl_AppInit\fR.
.PP
\fBTk_Main\fR functions much the same as \fBTcl_Main\fR.  In particular,
\fBTk_Main\fR 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 \fBTcl_SetStartupScript\fR and \fBTcl_GetStartupScript\fR
routines. However it calls \fBTk_MainLoop\fR after processing any
supplied script, and in interactive uses events registered with
\fBTcl_CreateFileHandler\fR to process user input.
.SH "SEE ALSO"
Tcl_DoOneEvent(3)
.SH KEYWORDS
application-specific initialization, command-line arguments, main program
@


1.9
log
@Small doc improvements to improve cross-links.
@
text
@d8 1
a8 1
'\" RCS: @@(#) $Id: Tk_Main.3,v 1.8 2008/12/15 16:17:18 dgp Exp $
d25 2
a26 1
Array of strings containing command-line arguments.
@


1.8
log
@        TIP #338 IMPLEMENTATION

        * doc/Tk_Main.c:        Removed the last two '#include "tclInt.h"'.
        * generic/tkMain.c:     Tk is now limited to Tcl's public interface.
        * macosx/tkMacOSXInit.c:
@
text
@d8 1
a8 1
'\" RCS: @@(#) $Id: Tk_Main.3,v 1.7 2008/06/30 22:57:02 dkf Exp $
d65 5
a69 1
routines.
@


1.7
log
@Minor doc updates (removing out of date changebars, improving typedef formatting,
 etc.)
@
text
@d8 1
a8 1
'\" RCS: @@(#) $Id: Tk_Main.3,v 1.6 2007/12/13 15:23:43 dgp Exp $
d60 6
@


1.6
log
@merge stable branch onto HEAD
@
text
@d8 1
a8 1
'\" RCS: @@(#) $Id: Tk_Main.3,v 1.2.32.1 2007/11/01 16:37:13 dgp Exp $
a29 1

d54 2
a55 1
typedef int Tcl_AppInitProc(Tcl_Interp *\fIinterp\fR);
a59 1

@


1.5
log
@Lots more GOOBE stuff. Now works with 'make html'!
@
text
@d8 1
a8 1
'\" RCS: @@(#) $Id: Tk_Main.3,v 1.4 2007/10/26 20:13:23 dgp Exp $
@


1.4
log
@        * doc/*.1:              Revert doc changes that broke
        * doc/*.3:              `make html` so we can get the release
        * doc/*.n:              out the door.
@
text
@d8 1
a8 1
'\" RCS: @@(#) $Id: Tk_Main.3,v 1.2 1998/09/14 18:22:54 stanton Exp $
d49 2
a50 1
the \fIappInitProc\fR argument.  This procedure provides a ``hook''
@


1.3
log
@Lots of improvements to look and feel of manual pages
@
text
@d49 1
a49 2
the \fIappInitProc\fR argument.  This procedure provides a
.QW hook
@


1.2
log
@Replaced SCCS strings, fixed binary files
@
text
@d8 1
a8 1
'\" RCS: @@(#) $Id$
d49 2
a50 1
the \fIappInitProc\fR argument.  This procedure provides a ``hook''
@


1.2.32.1
log
@merge updates from HEAD
@
text
@d8 1
a8 1
'\" RCS: @@(#) $Id: Tk_Main.3,v 1.2 1998/09/14 18:22:54 stanton Exp $
d49 1
a49 2
the \fIappInitProc\fR argument.  This procedure provides a
.QW hook
@


1.1
log
@Initial revision
@
text
@d8 1
a8 1
'\" SCCS: @@(#) Tk_Main.3 1.7 96/03/26 18:19:21
@


1.1.4.1
log
@Merged 8.0.3 changes into 8.1
@
text
@d8 1
a8 1
'\" RCS: @@(#) $Id: Tk_Main.3,v 1.2 1998/09/14 18:22:54 stanton Exp $
@


