home *** CD-ROM | disk | FTP | other *** search
- #ifndef _TKGLUE
- #define _TKGLUE
-
- #ifndef BASEEXT
- #define BASEEXT "Tk"
- #endif
-
- #ifndef _TKOPTION
- #include "pTk/tkOption.h"
- #include "pTk/tkOption_f.h"
- #endif
-
- typedef struct EventAndKeySym
- {XEvent event;
- KeySym keySym;
- Tcl_Interp *interp;
- Tk_Window tkwin;
- SV *window;
- } EventAndKeySym;
-
- typedef struct Lang_CmdInfo
- {Tcl_CmdInfo Tk;
- Tcl_Interp *interp;
- Tk_Window tkwin;
- SV *image;
- Tk_Font tkfont;
- } Lang_CmdInfo;
-
- #ifdef WIN32
- #define DECLARE_WIN32_VTABLES \
- TkwinVtab *TkwinVptr; \
- TkwinintVtab * TkwinintVptr;
- #else
- #define DECLARE_WIN32_VTABLES
- #endif
-
- #define DECLARE_VTABLES \
- TkoptionVtab *TkoptionVptr; \
- XlibVtab *XlibVptr ; \
- TkVtab *TkVptr ; \
- TkintVtab *TkintVptr ; \
- LangVtab *LangVptr ; \
- TkeventVtab *TkeventVptr ; \
- TkglueVtab *TkglueVptr
-
- #ifdef WIN32
- #define IMPORT_WIN32_VTABLES \
- do { \
- TkwinVptr = (TkwinVtab *) SvIV(perl_get_sv("Tk::TkwinVtab",GV_ADDWARN|GV_ADD)); \
- TkwinintVptr = (TkwinintVtab *) SvIV(perl_get_sv("Tk::TkwinintVtab",GV_ADDWARN|GV_ADD)); \
- } while (0);
- #else
- #define IMPORT_WIN32_VTABLES
- #endif
-
- #define IMPORT_VTABLES \
- do { \
- TkoptionVptr = (TkoptionVtab *) SvIV(perl_get_sv("Tk::TkoptionVtab",GV_ADDWARN|GV_ADD)); \
- LangVptr = (LangVtab *) SvIV(perl_get_sv("Tk::LangVtab",GV_ADDWARN|GV_ADD)); \
- TkeventVptr = (TkeventVtab *) SvIV(perl_get_sv("Tk::TkeventVtab",GV_ADDWARN|GV_ADD)); \
- TkVptr = (TkVtab *) SvIV(perl_get_sv("Tk::TkVtab",GV_ADDWARN|GV_ADD)); \
- TkintVptr = (TkintVtab *) SvIV(perl_get_sv("Tk::TkintVtab",GV_ADDWARN|GV_ADD)); \
- TkglueVptr = (TkglueVtab *) SvIV(perl_get_sv("Tk::TkglueVtab",GV_ADDWARN|GV_ADD)); \
- XlibVptr = (XlibVtab *) SvIV(perl_get_sv("Tk::XlibVtab",GV_ADDWARN|GV_ADD)); \
- } while (0)
-
- #define VTABLE_INIT() IMPORT_VTABLES
-
- extern Lang_CmdInfo *WindowCommand _ANSI_ARGS_((SV *win,HV **hptr, int moan));
- extern Tk_Window SVtoWindow _ANSI_ARGS_((SV *win));
- extern Tk_Font SVtoFont _ANSI_ARGS_((SV *win));
- extern int Call_Tk _ANSI_ARGS_((Lang_CmdInfo *info,int argc, SV **args));
- extern HV *InterpHv _ANSI_ARGS_((Tcl_Interp *interp,int fatal));
- extern SV *WidgetRef _ANSI_ARGS_((Tcl_Interp *interp, char *path));
- extern SV *TkToWidget _ANSI_ARGS_((Tk_Window tkwin,Tcl_Interp **pinterp));
- extern SV *FindTkVarName _ANSI_ARGS_((char *varName,int flags));
- extern void EnterWidgetMethods _ANSI_ARGS_((char *package, ...));
- extern SV *MakeReference _ANSI_ARGS_((SV * sv));
- extern Tk_Window TkToMainWindow _ANSI_ARGS_((Tk_Window tkwin));
- extern void Lang_TkSubCommand _ANSI_ARGS_ ((char *name, Tcl_CmdProc *proc));
- extern void Lang_TkCommand _ANSI_ARGS_ ((char *name, Tcl_CmdProc *proc));
- extern SV *XEvent_Info _((EventAndKeySym *obj,char *s));
- extern EventAndKeySym *SVtoEventAndKeySym _((SV *arg));
- extern int XSTkCommand _ANSI_ARGS_((CV *cv, Tcl_CmdProc *proc, int items, SV **args));
-
- extern XS(XStoWidget);
-
- EXTERN void ClearErrorInfo _ANSI_ARGS_((SV *interp));
- EXTERN Tk_Window mainWindow;
- EXTERN void DumpStack _ANSI_ARGS_((void));
- EXTERN void Boot_Glue _ANSI_ARGS_((void));
- EXTERN void Boot_Tix _ANSI_ARGS_((void));
- EXTERN void install_vtab _ANSI_ARGS_((char *name, void *table, size_t size));
- extern SV *TagIt _((SV *sv, char *type));
- extern void Font_DESTROY _((SV *sv));
- struct pTkCheckChain;
- extern void Tk_CheckHash _((SV *sv,struct pTkCheckChain *chain));
-
-
- #ifndef WIN32
- #define HWND void *
- #endif
- EXTERN HWND SVtoHWND _ANSI_ARGS_((SV *win));
-
- #endif
-