1/* ----------------------------------------------------------------------------- 2 * See the LICENSE file for information on copyright, usage and redistribution 3 * of SWIG, and the README file for authors - http://www.swig.org/release.html. 4 * 5 * wish.i 6 * 7 * SWIG File for making wish 8 * ----------------------------------------------------------------------------- */ 9 10#ifdef AUTODOC 11%subsection "wish.i" 12%text %{ 13This module provides the Tk_AppInit() function needed to build a 14new version of the wish executable. Like tclsh.i, this file should 15not be used with dynamic loading. To make an interface file work with 16both static and dynamic loading, put something like this in your 17interface file : 18 19 #ifdef STATIC 20 %include <wish.i> 21 #endif 22 23A startup file may be specified by defining the symbol SWIG_RcFileName 24as follows (this should be included in a code-block) : 25 26 #define SWIG_RcFileName "~/.mywishrc" 27%} 28#endif 29 30%{ 31 32 33/* Initialization code for wish */ 34 35#include <tk.h> 36 37#ifndef SWIG_RcFileName 38char *SWIG_RcFileName = "~/.wishrc"; 39#endif 40 41#ifdef MAC_TCL 42extern int MacintoshInit _ANSI_ARGS_((void)); 43extern int SetupMainInterp _ANSI_ARGS_((Tcl_Interp *interp)); 44#endif 45 46/* 47 *---------------------------------------------------------------------- 48 * 49 * Tcl_AppInit -- 50 * 51 * This procedure performs application-specific initialization. 52 * Most applications, especially those that incorporate additional 53 * packages, will have their own version of this procedure. 54 * 55 * Results: 56 * Returns a standard Tcl completion code, and leaves an error 57 * message in interp->result if an error occurs. 58 * 59 * Side effects: 60 * Depends on the startup script. 61 * 62 *---------------------------------------------------------------------- 63 */ 64 65int Tcl_AppInit(Tcl_Interp *interp) 66{ 67#ifndef MAC_TCL 68 Tk_Window main; 69 main = Tk_MainWindow(interp); 70#endif 71 /* 72 * Call the init procedures for included packages. Each call should 73 * look like this: 74 * 75 * if (Mod_Init(interp) == TCL_ERROR) { 76 * return TCL_ERROR; 77 * } 78 * 79 * where "Mod" is the name of the module. 80 */ 81 82 if (Tcl_Init(interp) == TCL_ERROR) { 83 return TCL_ERROR; 84 } 85 86 if (Tk_Init(interp) == TCL_ERROR) { 87 return TCL_ERROR; 88 } 89 90 /* 91 * Call Tcl_CreateCommand for application-specific commands, if 92 * they weren't already created by the init procedures called above. 93 */ 94 95 if (SWIG_init(interp) == TCL_ERROR) { 96 return TCL_ERROR; 97 } 98 99#ifdef MAC_TCL 100 SetupMainInterp(interp); 101#endif 102 103 /* 104 * Specify a user-specific startup file to invoke if the application 105 * is run interactively. Typically the startup file is "~/.apprc" 106 * where "app" is the name of the application. If this line is deleted 107 * then no user-specific startup file will be run under any conditions. 108 */ 109 110#if TCL_MAJOR_VERSION >= 8 || TCL_MAJOR_VERSION == 7 && TCL_MINOR_VERSION >= 5 111 Tcl_SetVar(interp, (char *) "tcl_rcFileName",SWIG_RcFileName,TCL_GLOBAL_ONLY); 112#else 113 tcl_RcFileName = SWIG_RcFileName; 114#endif 115 116/* For Macintosh might also want this */ 117 118#ifdef MAC_TCL 119#ifdef SWIG_RcRsrcName 120 Tcl_SetVar(interp, (char *) "tcl_rcRsrcName",SWIG_RcRsrcName,TCL_GLOBAL_ONLY); 121#endif 122#endif 123 return TCL_OK; 124} 125 126#if TK_MAJOR_VERSION >= 4 127int main(int argc, char **argv) { 128 129#ifdef MAC_TCL 130 char *newArgv[2]; 131 if (MacintoshInit() != TCL_OK) { 132 Tcl_Exit(1); 133 } 134 argc = 1; 135 newArgv[0] = "Wish"; 136 newArgv[1] = NULL; 137 argv = newArgv; 138#endif 139 Tk_Main(argc, argv, Tcl_AppInit); 140 return(0); 141} 142#else 143extern int main(); 144#endif 145 146%} 147 148 149 150