TYPEMAP Tk_Window T_TK_WINDOW Tk_Image T_TK_IMAGE TkWindow * T_TKWINDOW Display * T_IVOBJ Screen * T_IVOBJ Visual * T_IVOBJ Window T_IVOBJ Colormap T_IVOBJ GC T_IVOBJ Font T_IVOBJ Atom T_IV HANDLE T_IV BOOL T_IV HWND T_TK_HWND FILE * T_NIO hash_ptr * T_PTR Tk_3DBorder T_IVOBJ Tk_Uid T_TK_UID Tcl_Interp * T_TK_INTERP Tk_Font T_TK_FONT EventAndKeySym * T_TK_XEVENT LangCallback * T_TK_CALLBACK LangFontInfo * T_PVOBJ const char * T_PV INPUT T_PVOBJ if (sv_isobject($arg)) { STRLEN sz; $var = ($type) SvPV((SV*)SvRV($arg),sz); if (sz != sizeof(*$var)) croak(\"$arg too small (%d) for $var $type (%d)\",sz,sizeof(*$var)); } else croak(\"$var is not an object\") T_TK_WINDOW $var = SVtoWindow($arg) T_TK_CALLBACK $var = LangMakeCallback($arg) T_TK_HWND $var = SVtoHWND($arg) T_TK_XEVENT $var = SVtoEventAndKeySym($arg) T_TK_FONT $var = SVtoFont($arg) T_TK_IMAGE $var = SVtoImage($arg) T_TKWINDOW $var = (TkWindow *) SVtoWindow($arg) T_TK_INTERP $var = WindowCommand($arg,NULL,1)->interp T_TK_UID $var = Tk_GetUid(SvPV($arg,na)) T_IVOBJ if (sv_isa($arg, \"${ntype}\")) { $var = INT2PTR($type, SvIV(SvRV($arg))); } else { $var = ($type) NULL; croak(\"$var is not of type ${ntype}\"); } T_NIO if (sv_isa($arg, \"${Package}\")) { $var = IoIFP(sv_2io(SvRV($arg))); } else croak(\"$var is not of type ${Package}\") OUTPUT T_IVOBJ sv_setref_iv($arg, \"${ntype}\", PTR2IV($var)); T_TK_UID sv_setpv($arg,$var); T_TK_WINDOW SvSetMagicSV($arg,TkToWidget($var,NULL)); T_TKWINDOW SvSetMagicSV($arg,TkToWidget((Tk_Window) $var,NULL));