1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
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 (%\"UVuf\") for $var $type (%\"UVuf\")\",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));
|