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 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
TYPEMAP
# These are synonyms for Gtk::Gdk::Pixmap (which itself is a renamed Gtk::Gdk::Window)
Gtk::Gdk::Window T_SimpleVal
Gtk::Gdk::Bitmap T_SimpleVal
Gtk::Gdk::Cursor T_MISCPTROBJ
Gtk::Gdk::GC T_MISCPTROBJ
Gtk::Gdk::Image T_SimpleVal
Gtk::Gdk::GCValues T_MISCPTROBJ
Gtk::Gdk::Atom T_SimpleVal
Gtk::MenuFactory T_MISCPTROBJ
Gtk::SelectionData T_MISCPTROBJ
Gtk::Widget_Up T_GtkPTROBJUp
Gtk::Widget_Sink_Up T_GtkPTROBJSinkUp
Gtk::Gdk::Event T_SimpleVal
Gtk::Gdk::Region T_SimpleVal
Gtk::Gdk::Rectangle T_SimplePtr
Gtk::Gdk::Color T_SimpleVal
gfloat T_FLOAT
gboolean T_BOOL
guint T_IV
gint T_IV
glong T_IV
gulong T_IV
bool T_BOOL
INPUT
T_BOOL
$var = (int)SvIV($arg)
T_GtkPTROBJ
if (SvTRUE($arg)) {
$var = Cast$type(SvGtkObjectRef($arg, \"${ntype}\"));
} else
croak(\"$var is not of type ${ntype}\")
T_GtkPTROBJOrNULL
$var = SvTRUE($arg) ? Cast$type(SvGtkObjectRef($arg, \"" . ($foo=$ntype,$foo=~s/_OrNULL//,$foo). "\")) : 0
T_GtkPTROBJUp
$var = Cast$type(SvGtkObjectRef($arg, \"${ntype}\"))
T_GtkPTROBJSink
$var = Cast$type(SvGtkObjectRef($arg, \"${ntype}\"))
T_GtkPTROBJSinkUp
$var = Cast$type(SvGtkObjectRef($arg, \"${ntype}\"))
T_GtkPTRREF
$var = Cast$type(SvGtkObjectRef($arg, 0))
T_GtkPTRREF_Up
$var = Cast$type(SvGtkObjectRef($arg, 0))
T_MISCPTROBJ
$var = ($type)SvMiscRef($arg, \"${ntype}\")
T_MISCPTRREF
$var = ($type)SvMiscRef($arg, 0);
T_REFPTROBJ
$var = ($type)SvMiscRef($arg, \"${ntype}\")
T_REFPTRREF
$var = ($type)SvMiscRef($arg, 0);
T_SimpleVal
$var = Sv" . ($foo=$ntype, $foo=~s/://g, $foo=~s/^GtkGdk/Gdk/, $foo) . "($arg)
T_SimplePtr
$var = Sv" . ($foo=$ntype, $foo=~s/://g, $foo=~s/^GtkGdk/Gdk/, $foo) . "($arg,0)
OUTPUT
T_BOOL
$arg = boolSV($var);
T_GtkPTROBJ
if (!$var) {
croak("failed to return mandatory object of type $ntype");
}
sv_setsv($arg, newSVGtkObjectRef(GTK_OBJECT($var), \"${ntype}\"));
SvREFCNT_dec(SvRV($arg));
T_GtkPTROBJSink
if (!$var) {
croak("failed to return mandatory object of type @{[grep {s/_Sink//,1} $ntype]}");
}
sv_setsv($arg, newSVGtkObjectRef(GTK_OBJECT($var), \"@{[grep {s/_Sink//,1} $ntype]}\"));
gtk_object_sink(GTK_OBJECT($var));
SvREFCNT_dec(SvRV($arg));
T_GtkPTROBJOrNULL
if ($var) {
sv_setsv($arg, newSVGtkObjectRef(GTK_OBJECT($var), \"@{[grep {s/_OrNULL//,1} $ntype]}\"));
SvREFCNT_dec(SvRV($arg));
} else
sv_setsv($arg, newSVsv(&sv_undef));
T_GtkPTROBJUp
sv_setsv($arg, newSVGtkObjectRef(GTK_OBJECT($var), 0));
SvREFCNT_dec(SvRV($arg));
T_GtkPTROBJSinkUp
sv_setsv($arg, newSVGtkObjectRef(GTK_OBJECT($var), 0));
gtk_object_sink(GTK_OBJECT($var));
SvREFCNT_dec(SvRV($arg));
T_MISCPTROBJ
sv_setsv($arg, newSVMiscRef((void*)$var, \"${ntype}\", 0));
SvREFCNT_dec(SvRV($arg));
T_REFPTROBJ
{
int n;
sv_setsv($arg,newSVMiscRef((void*)$var, \"${ntype}\", &n));
SvREFCNT_dec(SvRV($arg));
if (n)
@{[grep {s/://g, s/^GtkGdk/Gdk/, s/([a-z])([A-Z]+)/$1_$2/g, tr/A-Z/a-z/, 1} $ntype]}_ref($var);
}
T_SimpleVal
sv_setsv($arg,sv_2mortal(newSV@{[grep {s/://g,s/^GtkGdk/Gdk/,1} $ntype]}($var)));
T_SimplePtr
sv_setsv($arg,sv_2mortal(newSV@{[grep {s/://g,s/^GtkGdk/Gdk/,1} $ntype]}($var)));
|