home *** CD-ROM | disk | FTP | other *** search
/ Australian Personal Computer 2004 July / APC0407D2.iso / workshop / apache / files / ActivePerl-5.6.1.638-MSWin32-x86.msi / _4a21aa136085750f449dde49e9e6732d < prev    next >
Encoding:
Text File  |  2004-04-13  |  3.8 KB  |  106 lines

  1. #ifndef _TKGLUE
  2. #define _TKGLUE
  3.  
  4. #ifndef BASEEXT
  5. #define BASEEXT "Tk"
  6. #endif
  7.  
  8. #ifndef _TKOPTION
  9. #include "pTk/tkOption.h"
  10. #include "pTk/tkOption_f.h"
  11. #endif
  12.  
  13. typedef struct EventAndKeySym
  14.  {XEvent event;
  15.   KeySym keySym;
  16.   Tcl_Interp  *interp;
  17.   Tk_Window   tkwin;
  18.   SV    *window;
  19.  } EventAndKeySym;
  20.  
  21. typedef struct Lang_CmdInfo
  22.  {Tcl_CmdInfo Tk;
  23.   Tcl_Interp  *interp;
  24.   Tk_Window   tkwin;
  25.   SV          *image;
  26.   Tk_Font     tkfont;
  27.  } Lang_CmdInfo;
  28.  
  29. #ifdef WIN32
  30. #define DECLARE_WIN32_VTABLES    \
  31. TkwinVtab *TkwinVptr;        \
  32. TkwinintVtab * TkwinintVptr;
  33. #else
  34. #define DECLARE_WIN32_VTABLES
  35. #endif
  36.  
  37. #define DECLARE_VTABLES        \
  38. TkoptionVtab   *TkoptionVptr;    \
  39. XlibVtab   *XlibVptr   ;    \
  40. TkVtab     *TkVptr     ;    \
  41. TkintVtab  *TkintVptr  ;    \
  42. LangVtab   *LangVptr   ;    \
  43. TkeventVtab *TkeventVptr   ;    \
  44. TkglueVtab *TkglueVptr
  45.  
  46. #ifdef WIN32
  47. #define IMPORT_WIN32_VTABLES                                                   \
  48. do {                                                                           \
  49.   TkwinVptr     =   (TkwinVtab *) SvIV(perl_get_sv("Tk::TkwinVtab",GV_ADDWARN|GV_ADD));        \
  50.   TkwinintVptr  =   (TkwinintVtab *) SvIV(perl_get_sv("Tk::TkwinintVtab",GV_ADDWARN|GV_ADD));  \
  51.  } while (0);
  52. #else
  53. #define IMPORT_WIN32_VTABLES
  54. #endif
  55.  
  56. #define IMPORT_VTABLES                                                         \
  57. do {                                                                           \
  58.   TkoptionVptr = (TkoptionVtab *) SvIV(perl_get_sv("Tk::TkoptionVtab",GV_ADDWARN|GV_ADD)); \
  59.   LangVptr     = (LangVtab *) SvIV(perl_get_sv("Tk::LangVtab",GV_ADDWARN|GV_ADD));         \
  60.   TkeventVptr  = (TkeventVtab *) SvIV(perl_get_sv("Tk::TkeventVtab",GV_ADDWARN|GV_ADD));   \
  61.   TkVptr       = (TkVtab *) SvIV(perl_get_sv("Tk::TkVtab",GV_ADDWARN|GV_ADD));             \
  62.   TkintVptr    = (TkintVtab *) SvIV(perl_get_sv("Tk::TkintVtab",GV_ADDWARN|GV_ADD));       \
  63.   TkglueVptr   = (TkglueVtab *) SvIV(perl_get_sv("Tk::TkglueVtab",GV_ADDWARN|GV_ADD));     \
  64.   XlibVptr     = (XlibVtab *) SvIV(perl_get_sv("Tk::XlibVtab",GV_ADDWARN|GV_ADD));         \
  65.  } while (0)
  66.  
  67. #define VTABLE_INIT() IMPORT_VTABLES
  68.  
  69. extern Lang_CmdInfo *WindowCommand _ANSI_ARGS_((SV *win,HV **hptr, int moan));
  70. extern Tk_Window SVtoWindow _ANSI_ARGS_((SV *win));
  71. extern Tk_Font SVtoFont _ANSI_ARGS_((SV *win));
  72. extern int Call_Tk _ANSI_ARGS_((Lang_CmdInfo *info,int argc, SV **args));
  73. extern HV *InterpHv _ANSI_ARGS_((Tcl_Interp *interp,int fatal));
  74. extern SV *WidgetRef _ANSI_ARGS_((Tcl_Interp *interp, char *path));
  75. extern SV *TkToWidget _ANSI_ARGS_((Tk_Window tkwin,Tcl_Interp **pinterp));
  76. extern SV *FindTkVarName _ANSI_ARGS_((char *varName,int flags));
  77. extern void EnterWidgetMethods _ANSI_ARGS_((char *package, ...));
  78. extern SV *MakeReference _ANSI_ARGS_((SV * sv));
  79. extern Tk_Window TkToMainWindow _ANSI_ARGS_((Tk_Window tkwin));
  80. extern void Lang_TkSubCommand _ANSI_ARGS_ ((char *name, Tcl_CmdProc *proc));
  81. extern void Lang_TkCommand _ANSI_ARGS_ ((char *name, Tcl_CmdProc *proc));
  82. extern SV *XEvent_Info _((EventAndKeySym *obj,char *s));
  83. extern EventAndKeySym *SVtoEventAndKeySym _((SV *arg));
  84. extern int XSTkCommand _ANSI_ARGS_((CV *cv, Tcl_CmdProc *proc, int items, SV **args));
  85.  
  86. extern XS(XStoWidget);
  87.  
  88. EXTERN void ClearErrorInfo _ANSI_ARGS_((SV *interp));
  89. EXTERN Tk_Window mainWindow;
  90. EXTERN void DumpStack _ANSI_ARGS_((void));
  91. EXTERN void  Boot_Glue _ANSI_ARGS_((void));
  92. EXTERN void  Boot_Tix  _ANSI_ARGS_((void));
  93. EXTERN void install_vtab _ANSI_ARGS_((char *name, void *table, size_t size));
  94. extern SV *TagIt _((SV *sv, char *type));
  95. extern void Font_DESTROY _((SV *sv));                
  96. struct pTkCheckChain;
  97. extern void Tk_CheckHash _((SV *sv,struct pTkCheckChain *chain));
  98.  
  99.  
  100. #ifndef WIN32
  101. #define HWND void *
  102. #endif
  103. EXTERN HWND SVtoHWND _ANSI_ARGS_((SV *win));
  104.  
  105. #endif
  106.