/* appinit.c -- Tcl and Tk application initialization.The function Tcl_AppInit() below initializes various Tcl packages.It is called for each Tcl interpreter created by _tkinter.create().It needs to be compiled with -DWITH_<package> flags for each packagethat you are statically linking with. You may have to add sectionsfor packages not yet listed below.Note that those packages for which Tcl_StaticPackage() is called witha NULL first argument are known as "static loadable" packages toTcl but not actually initialized. To use these, you have to loadit explicitly, e.g. tkapp.eval("load {} Blt").*/#include <string.h>#include <tcl.h>#include <tk.h>intTcl_AppInit(Tcl_Interp *interp){Tk_Window main_window;const char * _tkinter_skip_tk_init;#ifdef TK_AQUA#ifndef MAX_PATH_LEN#define MAX_PATH_LEN 1024#endifchar tclLibPath[MAX_PATH_LEN], tkLibPath[MAX_PATH_LEN];Tcl_Obj* pathPtr;/* pre- Tcl_Init code copied from tkMacOSXAppInit.c */Tk_MacOSXOpenBundleResources (interp, "com.tcltk.tcllibrary",tclLibPath, MAX_PATH_LEN, 0);if (tclLibPath[0] != '0円') {Tcl_SetVar(interp, "tcl_library", tclLibPath, TCL_GLOBAL_ONLY);Tcl_SetVar(interp, "tclDefaultLibrary", tclLibPath, TCL_GLOBAL_ONLY);Tcl_SetVar(interp, "tcl_pkgPath", tclLibPath, TCL_GLOBAL_ONLY);}if (tclLibPath[0] != '0円') {Tcl_SetVar(interp, "tcl_library", tclLibPath, TCL_GLOBAL_ONLY);Tcl_SetVar(interp, "tclDefaultLibrary", tclLibPath, TCL_GLOBAL_ONLY);Tcl_SetVar(interp, "tcl_pkgPath", tclLibPath, TCL_GLOBAL_ONLY);}#endifif (Tcl_Init (interp) == TCL_ERROR)return TCL_ERROR;#ifdef TK_AQUA/* pre- Tk_Init code copied from tkMacOSXAppInit.c */Tk_MacOSXOpenBundleResources (interp, "com.tcltk.tklibrary",tkLibPath, MAX_PATH_LEN, 1);if (tclLibPath[0] != '0円') {pathPtr = Tcl_NewStringObj(tclLibPath, -1);} else {Tcl_Obj *pathPtr = TclGetLibraryPath();}if (tkLibPath[0] != '0円') {Tcl_Obj *objPtr;Tcl_SetVar(interp, "tk_library", tkLibPath, TCL_GLOBAL_ONLY);objPtr = Tcl_NewStringObj(tkLibPath, -1);Tcl_ListObjAppendElement(NULL, pathPtr, objPtr);}TclSetLibraryPath(pathPtr);#endif#ifdef WITH_XXX/* Initialize modules that don't require Tk */#endif_tkinter_skip_tk_init = Tcl_GetVar(interp, "_tkinter_skip_tk_init", TCL_GLOBAL_ONLY);if (_tkinter_skip_tk_init != NULL && strcmp(_tkinter_skip_tk_init, "1") == 0) {return TCL_OK;}if (Tk_Init(interp) == TCL_ERROR)return TCL_ERROR;main_window = Tk_MainWindow(interp);#ifdef TK_AQUATkMacOSXInitAppleEvents(interp);TkMacOSXInitMenus(interp);#endif#ifdef WITH_MOREBUTTONS{extern Tcl_CmdProc studButtonCmd;extern Tcl_CmdProc triButtonCmd;Tcl_CreateCommand(interp, "studbutton", studButtonCmd,(ClientData) main_window, NULL);Tcl_CreateCommand(interp, "tributton", triButtonCmd,(ClientData) main_window, NULL);}#endif#ifdef WITH_PIL /* 0.2b5 and later -- not yet released as of May 14 */{extern void TkImaging_Init(Tcl_Interp *);TkImaging_Init(interp);/* XXX TkImaging_Init() doesn't have the right return type *//*Tcl_StaticPackage(interp, "Imaging", TkImaging_Init, NULL);*/}#endif#ifdef WITH_PIL_OLD /* 0.2b4 and earlier */{extern void TkImaging_Init(void);/* XXX TkImaging_Init() doesn't have the right prototype *//*Tcl_StaticPackage(interp, "Imaging", TkImaging_Init, NULL);*/}#endif#ifdef WITH_TIX{extern int Tix_Init(Tcl_Interp *interp);extern int Tix_SafeInit(Tcl_Interp *interp);Tcl_StaticPackage(NULL, "Tix", Tix_Init, Tix_SafeInit);}#endif#ifdef WITH_BLT{extern int Blt_Init(Tcl_Interp *);extern int Blt_SafeInit(Tcl_Interp *);Tcl_StaticPackage(NULL, "Blt", Blt_Init, Blt_SafeInit);}#endif#ifdef WITH_TOGL{/* XXX I've heard rumors that this doesn't work */extern int Togl_Init(Tcl_Interp *);/* XXX Is there no Togl_SafeInit? */Tcl_StaticPackage(NULL, "Togl", Togl_Init, NULL);}#endif#ifdef WITH_XXX#endifreturn TCL_OK;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。